关于 PgSQL MCP Server
PgSQL MCP Server 是通过 MCP 访问 PostgreSQL 数据库的 Python 服务,提供异步执行、结构检查及 SQL 操作,并在出错时回滚事务。
主要功能
- 01异步 PostgreSQL 操作
- 02检查模式、表、列、索引和键
- 03执行 DQL、DML、DDL 和 DCL
- 04事务执行与错误回滚
- 05通过命令行启动
适用场景
- 01检查 PostgreSQL 模式与表结构
- 02通过 MCP 执行查询和数据库变更
- 03在错误时回滚数据库变更
MCP 相关
向 MCP 客户端提供 PostgreSQL 检查和查询工具,支持 DQL、DML、DDL 与 DCL 操作。客户端通过配置的数据库 DSN 连接服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PgSQL MCP 服务
English | 简体中文
一款基于模型上下文协议(MCP)的强大工具服务,可通过 MCP 调用与 PostgreSQL 数据库交互。
🚀 概述
本项目基于 FastMCP 框架构建,并利用 SQLAlchemy 和 asyncpg 库实现高性能异步数据库操作,确保处理数据库请求时的效率和响应能力。
✨ 主要功能
- 异步且高效: 基于
asyncio完全异步实现,并利用asyncpg作为高性能异步 PostgreSQL 驱动程序。 - 事务安全: DDL、DML 和 DCL 操作均在事务中执行,并配备错误处理和回滚机制。
- 轻松部署: 使用简单的命令行界面启动服务。
📦 安装
请确保已安装 Python 3.10+。推荐使用:
使用 uv(推荐)
uv tool install pgsql-mcp-server
然后运行:
pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"
或者无需安装,直接运行:
uvx pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"
使用 pip
pip install pgsql-mcp-server
🛠️ 可用工具
该服务提供以下数据库交互工具:
get_schema_names:列出数据库中的所有模式。get_tables:列出指定模式中的所有表(默认为public)。get_columns:获取指定表的详细列信息。get_indexes:获取指定表的索引详情。get_foreign_keys:获取指定表的外键约束。run_dql_query:执行SELECT、SHOW、EXPLAIN等数据查询语言(DQL)语句。run_dml_query:执行INSERT、UPDATE、DELETE等数据操作语言(DML)语句。run_ddl_query:执行CREATE、ALTER、DROP等数据定义语言(DDL)语句。run_dcl_query:执行GRANT、REVOKE等数据控制语言(DCL)语句。
🔍 预览与调试
你可以使用官方 MCP Inspector 工具,以可视化方式查看此服务提供的工具、参数和描述,并直接进行测试调用。
npx @modelcontextprotocol/inspector uvx pgsql-mcp-server --dsn "postgresql://user:password@host:port/database"
这将启动一个本地 Web 服务。在浏览器中打开提供的 URL 即可开始调试。
🧪 测试
本项目使用 pytest 进行测试。
运行所有测试
uv run pytest
仅运行单元测试
uv run pytest tests/test_app.py
仅运行集成测试
集成测试需要本地 PostgreSQL 实例。默认连接到 localhost:5432/postgres。
uv run pytest tests/test_integration.py
🤝 参与贡献
欢迎贡献!如果你有改进建议、功能请求或发现任何错误,请随时:
- 打开 Issue 进行讨论。
- Fork 此仓库并创建功能分支(
git checkout -b feature/AmazingFeature)。 - 提交更改(
git commit -m 'Add some AmazingFeature')。 - 推送到该分支(
git push origin feature/AmazingFeature)。 - 提交 Pull Request。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。