Token导航 LogoToken导航TokenDH.com
PostgreSQL MCP AllAccess logo
数据服务stdio官方级别未说明来源级核验

PostgreSQL MCP AllAccess

MCP Server

PostgreSQL MCP AllAccess是一个生产就绪的PostgreSQL连接池服务,提供全局连接池管理、PgBouncer集成和AWS RDS自动密码轮换功能。

工具数

12

提示词数

0

GitHub Stars

0

资源数

0
数据分析PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

yty-build

提供方

yty-build

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 deploy_with_aws_secrets.py

详细介绍

PostgreSQL MCP 全访问权限

适用于生产的PostgreSQL MCP服务器,具备全局连接池、PgBouncer集成以及AWS RDS自动密码轮换功能。

快速入门(2分钟)

使用 AWS Secrets Manager

# 1. Set AWS credentials
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret
export AWS_REGION=us-west-2

# 2. Deploy (fetches DB credentials from AWS)
python3 deploy_with_aws_secrets.py

# 3. Restart Claude Code to connect
# The deploy script shows the URL - it's http://localhost:3000/sse

搞定!MCP服务器现已启动,Claude Code 将自动检测到它。

可选: 设置自定义的AWS密钥名称:

export AWS_SECRET_NAME=your/secret/name
export AWS_PASSWORD_SECRET_NAME=rds!your-password-id
python3 deploy_with_aws_secrets.py

不使用AWS(简单凭证)

# 1. Copy .env.example and fill in your database credentials
cd /path/to/postgres_mcp_allaccess
cp .env.example .env
# Edit .env and fill in the REQUIRED fields (first 5 lines)

# 2. Deploy (docker-compose reads .env automatically)
docker-compose up -d

# 3. Restart Claude Code to connect
# MCP server is at http://localhost:3000/sse

你将获得

全局连接池 - 最多15个到PostgreSQL的连接(可配置) ✅ 自动密码轮换 - AWS轮换密码时无停机时间 ✅ 事务级池化 - 在所有查询中高效重用连接 ✅ 已准备好投入生产 - 内置健康检查、日志记录、监控功能

它是如何工作的

Multiple Claude Sessions → MCP Server → PgBouncer → PostgreSQL
   (90+ clients)          (max 15)     (max 15)    (sees ≤15 connections)
  • PgBouncer 强制限制最大 15 个连接 到您的 PostgreSQL 数据库
  • 自动排队 - 额外请求暂存,待连接空闲时处理
  • 无需配置 - 默认设置适用于大多数使用场景

常见任务

检查它是否正在运行

curl http://localhost:3000/health
# Should show: "OK - Pool: 2/15 connections"

查看日志

docker-compose logs -f

停止服务器

docker-compose down

更改连接限制

编辑 pgbouncer/pgbouncer.ini:

default_pool_size = 10      # Max connections to PostgreSQL

然后重新部署: docker-compose up -d --build

可用工具(在Claude中使用)

查询执行:

  • list_tables - 列出模式中的表
  • execute_query - 运行任何SQL查询
  • describe_table - 查看表结构
  • execute_file - 从文件运行SQL

模式操作:

  • list_schemas - 列出所有模式
  • search_tables - 按名称模式查找表
  • get_database_context - 数据库结构概述

分析:

  • explain_query - 获取查询执行计划
  • analyze_query - 性能分析
  • suggest_indexes - 索引建议

会议/会话:

  • get_session_info - 当前会话状态
  • get_query_history - 查看查询历史

故障排除

克劳德·科德无法连接

解决方案: 部署MCP服务器后,重启Claude代码。

“池未初始化”错误

解决方案: 首先运行任何查询 - 连接池在首次使用时初始化。

容器无法启动

# Check what went wrong
docker-compose logs

# Common fixes:
# 1. Port 3000 in use: Change MCP_SSE_PORT in .env
# 2. Bad credentials: Check .env file or AWS secrets
# 3. Build cache issue: docker-compose up -d --build --force-recreate

连接超时

增加连接池超时时间(默认30秒):

export POSTGRES_POOL_TIMEOUT=60
python3 deploy_with_aws_secrets.py  # or docker-compose up -d

连接到 PostgreSQL 的连接数过多

检查你的限额:

docker exec -e PGPASSWORD='your_pass' postgres-mcp-allaccess \
  psql -h localhost -p 6432 -U your_user -d your_db \
  -c "SELECT count(*) FROM pg_stat_activity WHERE usename='your_user'"

应显示2-15个连接(不会超过 default_pool_size)。

配置

连接池设置

环境变量 (在部署前设置):

POSTGRES_MAX_CONNECTIONS=15     # MCP pool size
POSTGRES_MIN_CONNECTIONS=2      # Warm connections
POSTGRES_POOL_TIMEOUT=30        # Queue wait time (seconds)

PgBouncer 限制 (编辑 pgbouncer/pgbouncer.ini):

default_pool_size = 15          # MAX connections to PostgreSQL
min_pool_size = 2               # MIN kept alive
pool_mode = transaction         # Release after each transaction

了解这个水池

问题: 如果同时查询90个Claude会话,PostgreSQL会看到90个连接吗?

答案: 不! PostgreSQL 最多看到 15 个连接(或你设置的任意数量) default_pool_size)。

  • 自动释放连接 每次查询后
  • 额外请求队列 当连接释放时进行处理
  • 无需会话管理 - 一切都是自动的

自动密码轮换

当AWS更换您的密码时:

  1. 下一个查询因认证错误而失败
  2. MCP 从 AWS Secrets Manager 获取新密码
  3. 更新MCP池和PgBouncer
  4. 重试查询 - 成功!

零停机时间。 无需重启。

要求:

  • 使用(某工具/方法)进行部署 deploy_with_aws_secrets.py (AWS 凭据可用)
  • 已配置AWS密钥名称(自动完成)

安全

永远不要承诺:

  • .env 文件
  • *.log 文件
  • config/postgres_config.ini

可以放心提交:

  • AWS 密钥 名字 (例如,“postgres/dev/db”)
  • 数据库 主机名 (例如,“mydb.rds.amazonaws.com”)

所有敏感数据都会自动被Git忽略。

高级的

项目结构

postgres_mcp_allaccess/
├── deploy_with_aws_secrets.py   # AWS deployment script
├── docker-compose.yml            # Container orchestration
├── Dockerfile                    # Single container (MCP + PgBouncer)
├── docker-entrypoint.sh          # Startup script
├── pgbouncer/pgbouncer.ini       # Connection pool config
└── src/postgres_mcp_allaccess/
    ├── server.py                 # MCP server
    ├── database.py               # Global pool + auto rotation
    ├── pgbouncer_manager.py      # PgBouncer control
    └── transports/sse_transport.py  # HTTP/SSE transport

健康监测

# Health check endpoint
curl http://localhost:3000/health

# Check PgBouncer process
docker exec postgres-mcp-allaccess ps aux | grep pgbouncer

# View all environment variables
docker exec postgres-mcp-allaccess env | grep -E "POSTGRES|AWS|PGBOUNCER"

手动刷新密码

# Force refresh from AWS (if auto-rotation fails)
docker-compose restart

许可证

Apache许可证2.0 - 详见 许可证 文件中有详细信息。

支持

  • 问题: https://github.com/yty-build/postgres_mcp_allaccess/issues 翻译为中文是:“https://github.com/yty-build/postgres_mcp_allaccess/issues(GitHub上的问题页面链接)”。不过,通常在中文语境下,我们不会直接翻译网址,而是说明其含义,即“这是GitHub上yty-build用户或组织的postgres_mcp_allaccess项目的问题跟踪页面”
  • 讨论: https://github.com/yty-build/postgres_mcp_allaccess/讨论区(或“讨论版”)
  • 安全: 通过(以下方式)私下举报:

目录标签

目录标签

数据分析PythonClaudePostgreSQL本地部署连接池PgBouncerAWSRDS数据库管理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP