PostgreSQL Model Context Protocol (PG-MCP) Server

PostgreSQL Model Context Protocol (PG-MCP) Server

site icon
2025.04.18 434
Python数据库服务AI代理支持数据库
PostgreSQL Model Context Protocol (PG-MCP) Server 是一个为PostgreSQL数据库设计的MCP服务器,专为AI代理提供增强功能。它通过MCP的资源导向架构,为AI代理提供发现、连接、查询和理解PostgreSQL数据库的全面API。该服务器扩展了参考Postgres MCP实现,增加了多数据库支持、丰富的目录信息、扩展上下文、查询解释等关键功能。
View on GitHub

Overview

基本能力

产品定位

PG-MCP Server 是一个专为PostgreSQL数据库设计的MCP服务器,旨在为AI代理提供数据库连接、查询和理解的增强功能。

核心功能

  1. 连接管理:包括连接工具、断开工具和连接池。
  2. 查询工具:支持执行SQL查询和分析查询执行计划。
  3. 模式发现资源:列出模式、表、列、约束和索引的详细信息。
  4. 数据访问资源:提供表数据样本和近似行计数。
  5. 扩展上下文:内置PostGIS和pgvector等扩展的上下文信息。

适用场景

  1. AI代理需要与PostgreSQL数据库交互的场景。
  2. 需要多数据库同时连接和管理的场景。
  3. 需要丰富数据库目录信息和扩展上下文的场景。

工具列表

  1. connect:注册PostgreSQL连接字符串并获取安全连接ID。
  2. disconnect:显式关闭数据库连接。
  3. pg_query:使用连接ID执行只读SQL查询。
  4. pg_explain:以JSON格式分析查询执行计划。

常见问题解答

  1. 安全性:服务器默认以只读模式运行,连接详细信息不会在资源URL中暴露。
  2. 扩展性:可以通过YAML配置文件轻松添加更多扩展上下文。

使用教程

使用依赖

  • Python 3.13+
  • PostgreSQL数据库

安装教程

使用Docker

git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp
docker-compose up -d

手动安装

git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp-server
uv sync
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
python -m server.app

调试方式

python test.py "postgresql://username:password@hostname:port/database"
python example-clients/claude_cli.py "Show me the top 5 customers by total sales"

.env文件示例:

DATABASE_URL=postgresql://username:password@hostname:port/database
ANTHROPIC_API_KEY=your-anthropic-api-key
PG_MCP_URL=http://localhost:8000/sse

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。