mcpField
P
pgEdge MCP Server for Postgres

pgEdge MCP Server for Postgres

本地服务
github.com/pgedge数据库2414 周前更新

关于 pgEdge MCP Server for Postgres

pgEdge Postgres MCP Server 让 MCP 兼容客户端对 PostgreSQL 数据库执行 SQL 查询,并附带自然语言 Agent 以辅助生成 SQL。适合内部工具、开发者工作流等所有用户都可信的环境,不适用于面向公众的应用。

主要功能

  1. 01默认在只读事务中执行查询
  2. 02提供数据库统计等资源与查询、schema 分析等工具
  3. 03混合检索(BM25+MMR)与嵌入生成
  4. 04提供 Web 界面、Go 命令行客户端及 HTTP 模式
  5. 05用户与 API 令牌认证,支持 TLS
  6. 06支持 PostgreSQL 14 及以上版本

适用场景

  1. 01开发者通过 Claude Desktop 或 Cursor 查询数据库
  2. 02用自然语言生成并执行 SQL 查询
  3. 03团队内部通过 Web 界面探索数据库结构

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 PostgreSQL 的查询工具、统计资源与提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pgedge-postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/pgedge/postgres-mcp:latest"
]
}
}
}
启动命令docker run -i --rm ghcr.io/pgedge/postgres-mcp:latest

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/pgedge/postgres-mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

pgEdge Postgres MCP 服务和自然语言 Agent

CI - MCP 服务 CI - 命令行客户端 CI - Web 客户端 CI - Docker CI - 文档

支持的版本: PostgreSQL 14 及更高版本。

不适用于面向公众的应用程序:此 MCP 服务会向大模型提供对整个数据库架构和数据的只读访问权限。 它仅应在内部工具、开发工作流或所有用户都可信的环境中使用。对于面向公众的 应用程序,请考虑改用 pgEdge RAG Server。 详情请参阅 选择合适的解决方案指南。

快速入门

快速入门指南介绍了所有受支持客户端的安装和设置:

客户端传输方式适用场景
CLI(Stdio)Stdio本地单用户开发
CLI(HTTP)HTTP多用户或远程访问
Web UIHTTP基于浏览器的聊天界面
Claude CodeStdioAnthropic CLI Agent
Claude DesktopStdioAnthropic 桌面应用
CursorStdioAI 代码编辑器
WindsurfStdioCodeium 代码编辑器
VS Code CopilotStdioGitHub Copilot Agent

如需使用示例数据进行引导式演示,请参阅 Northwind 快速入门演示。

主要功能

  • 只读保护 - 默认情况下,所有查询都在只读事务中运行
  • 资源 - 访问 PostgreSQL 统计信息等
  • 工具 - 查询执行、架构分析、高级混合搜索(BM25+MMR)、嵌入生成、资源读取等
  • 提示词 - 语义搜索设置、数据库探索、查询诊断等引导式工作流
  • 生产级聊天客户端 - 功能齐全的 Go 客户端,支持 Anthropic 提示词缓存(降低 90% 成本)
  • HTTP/HTTPS 模式 - 通过用户和令牌身份验证直接访问 API
  • Web 界面 - 现代化的 React 界面,提供 AI 驱动的聊天功能,可通过自然语言与数据库交互
  • Docker 支持 - 在 GitHub Container Registry 上提供预构建镜像,并支持使用 Docker Compose 部署
  • 安全 - 支持 TLS、用户和令牌身份验证,并强制只读
  • 热重载 - 无需重启服务即可自动重新加载身份验证文件

开发

先决条件
  • Go 1.21 或更高版本
  • PostgreSQL 14 或更高版本(用于测试)
  • golangci-lint v1.x(用于代码检查)
设置代码检查工具

项目使用 golangci-lint v1.x。使用以下命令安装:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

注意:配置文件 .golangci.yml 兼容 golangci-lint v1.x(不兼容 v2)。

构建
git clone https://github.com/pgEdge/pgedge-postgres-mcp.git
cd pgedge-postgres-mcp
make build
测试
# Run all tests
make test

# Run server tests with a database
export TEST_PGEDGE_POSTGRES_CONNECTION_STRING=\
  "postgres://localhost/postgres?sslmode=disable"
go test ./...

# Run with coverage
go test -v -cover ./...

# Run linting
make lint
Web UI 测试

Web UI 有一套全面的测试。详情请参阅 web/TEST_SUMMARY.md。

cd web
npm test                # Run all tests
npm run test:watch      # Watch mode
npm run test:coverage   # With coverage

安全

  • 强制使用只读事务(可按数据库配置)
  • 用户和 API 令牌身份验证,并支持过期时间
  • TLS/HTTPS 支持
  • SHA256 令牌哈希
  • 强制文件权限(0600)
  • 输入验证和清理

如需完整的安全文档,请参阅安全指南。

故障排除

Claude Desktop 中看不到工具?

  • 在配置中使用绝对路径
  • 完全重启 Claude Desktop
  • 检查 JSON 语法

数据库连接错误?

  • 确保在启动服务前已配置数据库连接(通过配置文件、环境变量或命令行标志)
  • 确认 PostgreSQL 正在运行:pg_isready
  • 检查连接参数是否正确

如需详细解决方案,请参阅故障排除指南。

支持

如需报告软件问题,请访问: GitHub Issues

如需了解更多信息,请访问 docs.pgedge.com

本项目采用 PostgreSQL License 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。