用途
PGMCP(PostgreSQL Model Context Protocol Server)用于将 AI 助手连接到任意现有 PostgreSQL 数据库,让用户通过自然语言查询数据库,并获得结构化的 SQL 结果。它适用于需要以对话方式探索数据、执行只读查询的场景,并支持与 Cursor、Claude Desktop、VS Code 扩展以及任何兼容 MCP 的客户端集成。
主要能力
- 自然语言转 SQL:用日常英语提问,系统生成 SQL 查询。
- 自动流式传输:自动处理大型结果集。
- 安全只读访问:阻止任何写操作。
- 文本搜索:在所有文本列中搜索。
- 多种输出格式:支持表格、JSON 和 CSV。
- PostgreSQL 大小写敏感处理:正确处理混合大小写的表名。
- 通用兼容性:适用于任何 PostgreSQL 数据库。
- 错误处理:当 AI 生成错误 SQL 时,系统不会崩溃,而是提供有用反馈并继续运行。
使用方式
需具备环境变量:
DATABASE_URL:指向现有数据库的 PostgreSQL 连接字符串。OPENAI_API_KEY:用于 AI 驱动 SQL 生成的 OpenAI API 密钥(可选)。OPENAI_MODEL:使用的模型(默认 "gpt-4o-mini")。HTTP_ADDR:服务器地址(默认 ":8080")。HTTP_PATH:MCP 端点路径(默认 "/mcp")。AUTH_BEARER:用于认证的 Bearer 令牌。
可以通过下载预编译二进制文件(Linux、macOS、Windows)运行,或使用 Docker/Kubernetes 部署。项目包含两个示例数据库模式:schema.sql 提供完整的类亚马逊市场,含 5,000+ 条记录;schema_minimal.sql 提供最小测试模式,包含混合大小写的 "Categories" 表,用于测试大小写敏感性。也支持连接用户自己的数据库。
集成方面,可将配置添加到 Cursor 设置或 Claude Desktop 的 ~/.config/claude-desktop/claude_desktop_config.json 中。MCP 提供三个核心工具:ask(自然语言问题转 SQL 查询并自动流式传输)、search(跨所有数据库文本列的自由文本搜索)、stream(针对超大结果集的高级流式传输与分页)。
适用场景
- 数据分析师或开发者通过自然语言快速查询 PostgreSQL 数据库。
- 在 AI 编程助手(如 Cursor、Claude Desktop)中直接访问数据库进行只读探索。
- 需要安全只读访问、避免误写操作的场景。
- 处理大数据集时利用自动流式传输和分页。
限制
- 仅支持只读操作,禁止 INSERT、UPDATE、DELETE 等写操作。
- 需要有现有的 PostgreSQL 数据库。
- AI 生成 SQL 功能需要 OpenAI API 密钥(可选,未提供时可能仅支持基础查询?原文未明确无密钥时的行为)。
- 项目采用 Apache 2.0 许可证。