mcpField
P
PgSQL MCP Server

PgSQL MCP Server

本地服务
github.com/twn39数据库635 周前更新

关于 PgSQL MCP Server

PgSQL MCP Server 是通过 MCP 访问 PostgreSQL 数据库的 Python 服务,提供异步执行、结构检查及 SQL 操作,并在出错时回滚事务。

主要功能

  1. 01异步 PostgreSQL 操作
  2. 02检查模式、表、列、索引和键
  3. 03执行 DQL、DML、DDL 和 DCL
  4. 04事务执行与错误回滚
  5. 05通过命令行启动

适用场景

  1. 01检查 PostgreSQL 模式与表结构
  2. 02通过 MCP 执行查询和数据库变更
  3. 03在错误时回滚数据库变更

MCP 相关

向 MCP 客户端提供 PostgreSQL 检查和查询工具,支持 DQL、DML、DDL 与 DCL 操作。客户端通过配置的数据库 DSN 连接服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PgSQL MCP 服务

PyPI - Version PyPI - Python Version Maintainability

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

🤝 参与贡献

欢迎贡献!如果你有改进建议、功能请求或发现任何错误,请随时:

  1. 打开 Issue 进行讨论。
  2. Fork 此仓库并创建功能分支(git checkout -b feature/AmazingFeature)。
  3. 提交更改(git commit -m 'Add some AmazingFeature')。
  4. 推送到该分支(git push origin feature/AmazingFeature)。
  5. 提交 Pull Request。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。