使用说明
项目简介
PG-MCP PostgreSQL服务器是一个实现了 Model Context Protocol (MCP) 协议的服务端应用,专为PostgreSQL数据库设计。它旨在为AI Agent提供一个标准化的接口,使其能够安全、高效地访问和理解PostgreSQL数据库中的数据和结构信息。通过资源和工具的模式,PG-MCP服务器允许AI Agent动态发现数据库Schema、执行SQL查询、获取数据样本,并利用PostgreSQL扩展的上下文信息,从而更好地与数据库进行交互。
主要功能点
- 连接管理工具: 提供连接和断开PostgreSQL数据库的功能,支持连接池管理,安全可靠。
- 查询工具: 支持执行SQL查询和分析查询执行计划,帮助AI Agent理解和操作数据。
- Schema发现资源: 允许AI Agent浏览数据库的Schema信息,包括Schema列表、表列表、列详细信息、索引和约束等,方便Agent理解数据库结构。
- 数据访问资源: 提供获取表数据样本和近似行数的功能,帮助Agent快速了解数据内容。
- 扩展上下文: 内置对PostGIS和pgvector等PostgreSQL扩展的上下文信息支持,可以通过YAML配置文件轻松扩展更多扩展的支持。
- SSE传输: 使用Server-Sent Events (SSE) 作为传输协议,构建完整的生产可用服务器。
- 多数据库支持: 可以同时连接和管理多个PostgreSQL数据库。
总而言之,PG-MCP服务器旨在简化AI Agent与PostgreSQL数据库的集成,提供全面的数据库上下文信息和操作能力。
安装步骤
前提条件:
- Python 3.13+
- PostgreSQL 数据库服务
方式一:使用 Docker (推荐)
- 克隆仓库到本地:
git clone https://github.com/stuzero/pg-mcp.git cd pg-mcp - 使用 Docker Compose 启动服务:
服务默认将在 'http://localhost:8000/sse' 启动。docker-compose up -d
方式二:手动安装
- 克隆仓库到本地:
git clone https://github.com/stuzero/pg-mcp.git cd pg-mcp - 创建并激活 Python 虚拟环境:
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows - 使用 'uv' 安装项目依赖:
uv sync --frozen - 启动服务器:
服务默认将在 'http://localhost:8000/sse' 启动。python -m server.app
服务器配置 (MCP客户端)
MCP客户端需要配置连接PG-MCP服务器的信息。以下是一个典型的 JSON 格式配置示例,用于告知MCP客户端如何连接到PG-MCP服务器:
{ "server_name": "pg-mcp-server", "command": "python -m server.app", "args": [], "transports": [ { "type": "sse", "url": "http://localhost:8000/sse" } ] }
配置参数说明:
- 'server_name': 服务器的名称,可以自定义,用于在客户端标识服务器。例如: "pg-mcp-server"。
- 'command': 启动 PG-MCP 服务器的命令。这里配置为 'python -m server.app',表示执行 'server/app.py' 文件来启动服务器。
- 'args': 启动命令的参数列表。在本例中,PG-MCP服务器无需额外启动参数,所以配置为空数组 '[]'。
- 'transports': 定义服务器支持的传输协议列表。
- 'type': 传输协议类型,这里配置为 'sse',表示使用 Server-Sent Events 协议。
- 'url': 服务器 SSE 协议的端点 URL。这里配置为 'http://localhost:8000/sse',与默认服务器启动地址一致。
注意:
- 确保 PostgreSQL 数据库服务已启动并可访问。
- 如果手动安装,请先激活虚拟环境再启动服务器。
- 可以根据实际情况修改服务器启动端口和地址。
基本使用方法
- 启动 PG-MCP 服务器 (按照上述安装步骤)。
- 配置 MCP 客户端,使其能够连接到 PG-MCP 服务器的 'http://localhost:8000/sse' 端点。
- 使用 'test.py' 脚本验证服务器功能 (需要提供 PostgreSQL 数据库连接字符串作为参数):
此脚本将测试连接、工具调用、资源读取等基本功能。python test.py "postgresql://用户名:密码@主机名:端口/数据库名" - 使用 'client/claude_cli.py' 脚本进行自然语言查询测试 (需要配置 '.env' 文件,包含数据库连接信息 'DATABASE_URL' 和 Anthropic API 密钥 'ANTHROPIC_API_KEY'):
此脚本演示了如何使用 AI 模型 (Claude) 和 PG-MCP 服务器,将自然语言查询转换为 SQL 并执行。python client/claude_cli.py "你的自然语言查询" - 在 AI Agent 中集成 PG-MCP 服务器。参考 'README.md' 中 "For AI Agents" 部分的 Prompt 示例,利用 'connect', 'disconnect', 'pg_query', 'pg_explain' 等工具,以及 Schema 资源,构建能够理解和操作 PostgreSQL 数据库的 AI 应用。
信息
分类
数据库与文件