Postgres Query MCP
A read-only PostgreSQL MCP server that translates natural language queries into SQL, enforcing database routing, table/column whitelists, and safety checks. It offers schema inspection and query tools with optional output as SQL or results.
README
Postgres Query MCP
一个面向本地开发的、只读 PostgreSQL MCP Server。它把自然语言转换为 SQL,并在服务端强制执行数据库路由、表列白名单、危险 SQL 拦截、执行前 EXPLAIN、超时和限流。
快速开始
cp .env.example .env
uv sync --all-groups
uv run python -m pgmcp.main
默认策略已连接到本机正在运行的 Postgres 15.18:
postgresql://postgres:postgres@127.0.0.1:5432/db_query_demo
它包含 users 和 orders 表。服务层会拦截写操作及 users.email;在生产环境应改用独立只读账号。若需要启动仓库自带的隔离演示数据库,执行 docker compose up -d,再将连接串改为 postgresql://pgmcp_reader:pgmcp_reader@127.0.0.1:5433/db_query_demo。
配置 MCP 客户端时,使用:
{
"mcpServers": {
"postgres-query": {
"command": "uv",
"args": ["run", "python", "-m", "pgmcp.main"],
"cwd": "/absolute/path/to/pgmcp"
}
}
}
未设置 PGMCP_OPENAI_API_KEY 时,服务仍可启动和提供 Schema 工具;调用 query 会返回明确的配置错误。服务兼容 OpenAI 格式的 API。使用 DeepSeek 时,在 MCP 环境变量中设置:
PGMCP_OPENAI_API_KEY=<你的 DeepSeek API Key>
PGMCP_OPENAI_BASE_URL=https://api.deepseek.com
PGMCP_OPENAI_MODEL=deepseek-v4-flash
MCP 工具
list_databases:可查询数据库列表。describe_table:读取受允许的表结构。refresh_schema:刷新目标数据库的内存 Schema 缓存。query:自然语言查询,output_mode可选sql或result。
验证
uv run pytest
uv run ruff check .
Prometheus 指标默认暴露在 http://127.0.0.1:9464/metrics。详细范围和阶段说明见 项目计划。
多数据库端到端测试
隔离 Docker 环境会创建 db_query_demo 和 reporting_demo 两个数据库。它们使用同一个只读角色,但策略允许访问的表完全不同。
docker compose up -d
PGMCP_RUN_INTEGRATION=1 uv run pytest -m integration -q
测试会验证两个数据库的正常查询、跨库对象访问被拒绝,以及未知数据库被拒绝;固定 SQL 生成器让这些测试不依赖 OpenAI API Key。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。