PgSQL MCP服务器
](https://pypi.org/project/pgsql-mcp-server/)

英语 | 简体中文
基于模型上下文协议(MCP)的强大工具服务器,通过MCP调用实现与PostgreSQL数据库的交互。
______________________________________________________________________
🚀 概述
该项目建立在 FastMCP 框架并利用 SQLAlchemy 和 asyncpg 库提供高性能异步数据库操作,确保处理数据库请求时的效率和响应能力。
✨ 主要特点
- 异步高效: 基于的完全异步实现
asyncio,利用asyncpg用于高性能异步PostgreSQL驱动程序。 - 交易安全: DDL、DML和DCL操作在具有错误处理和回滚机制的事务中执行。
- 易于部署: 使用简单的命令行界面启动服务器。
📦 安装
请确保您已安装Python 3.10+。建议:
使用紫外线(推荐)
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:执行数据查询语言(DQL)语句,如SELECT,SHOW,EXPLAIN.run_dml_query:执行数据操作语言(DML)语句,如INSERT,UPDATE,DELETE.run_ddl_query:执行数据定义语言(DDL)语句,如CREATE,ALTER,DROP.run_dcl_query:执行数据控制语言(DCL)语句,如GRANT,REVOKE.
🔍 预览和调试
您可以使用官方的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🤝 贡献
欢迎投稿!如果您有改进建议、功能请求或发现任何错误,请随时:
