详细介绍
PG-MCP(PostgreSQL Model Context Protocol Server)是一个专为PostgreSQL数据库设计的服务器,基于Model Context Protocol(MCP)协议,为AI代理提供数据库连接、查询和模式发现功能。它通过API和SSE接口,帮助AI系统更好地理解、操作和优化PostgreSQL数据库,适用于自然语言转SQL、数据库模式分析、智能数据探索等场景。
核心功能
PG-MCP具备多项核心功能,使其成为PostgreSQL数据库操作的强大工具:
- 多数据库连接管理:支持同时连接多个PostgreSQL数据库,提供连接池和生命周期管理。
- 查询执行与解释:支持SQL查询执行,并提供查询执行计划的分析功能,帮助优化查询性能。
- 模式发现:自动发现数据库中的模式、表、列及其描述信息,便于AI理解数据库结构。
- 扩展上下文支持:内置对PostGIS、pgvector等PostgreSQL扩展的支持,提供专业知识和最佳实践。
- 安全连接机制:使用一次性连接ID替代真实凭据,增强安全性。
- API与SSE接口:提供RESTful API和SSE接口,便于与AI代理集成。
安装方法
PG-MCP可以通过Docker或手动方式安装,以下是两种安装方式的详细步骤:
使用Docker安装
git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp-server
docker-compose up -d手动安装
git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp-server
uv sync
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m server.app安装完成后,可以通过访问 http://localhost:8000/docs 查看交互式API文档。
使用方法
PG-MCP提供了多种命令行工具和API接口,便于用户与数据库进行交互。
连接数据库
connect postgresql://user:pass@host:port/db执行SQL查询
pg_query SELECT * FROM customers LIMIT 10分析查询执行计划
pg_explain SELECT COUNT(*) FROM orders;访问数据库模式信息
pgmcp://{conn_id}/schemas使用示例
以下是几个PG-MCP的典型使用场景和示例:
数据库模式分析
让AI代理了解数据库结构和关系。
pgmcp://{conn_id}/schemas返回包含表名、行数和描述的表格。
自然语言转SQL
将用户自然语言问题转换为SQL查询。
pg_query SELECT customer_id, SUM(amount) FROM sales GROUP BY customer_id ORDER BY SUM(amount) DESC LIMIT 5生成并执行SQL查询。
查询优化
分析查询性能并提供优化建议。
pg_explain SELECT * FROM orders WHERE customer_id=123返回查询计划并建议在customer_id上创建索引。
使用场景
PG-MCP适用于多种AI与数据库交互的场景,包括:
- 自然语言转SQL查询
- 数据库模式分析与可视化
- 智能数据探索与查询优化
- AI代理与PostgreSQL数据库的集成
注意事项
在使用PG-MCP时,需要注意以下几点:
- 目前仅支持PostgreSQL数据库。
- 默认为只读模式,如需写操作需额外配置。
- 需要Python 3.13+环境。
- 建议在安全网络环境中使用,以确保数据库连接的安全。
PG-MCP通过提供丰富的数据库连接、查询和模式发现功能,为AI代理与PostgreSQL数据库的交互提供了强大的支持,是数据库智能操作的理想工具。