Token导航 LogoToken导航

MCP Server · 数据服务

Pg Python MCP

一个基于Python的PostgreSQL MCP服务器,提供安全的数据库操作,包括内置安全检查、AST-based SQL解析和JSON输出。

stdio官方级别未说明来源级核验工具 4
数据分析PythonClaudeClaude Desktop

快速开始

作者 / 组织
hexonal
提供方
hexonal
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Pg Python MCP 属于数据服务类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uvx --from git+https://github.com/hexonal/pg-python-mcp-.git pg-python-mcp

客户端配置示例

{
  "mcpServers": {
    "pg-python-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/hexonal/pg-python-mcp-.git",
        "pg-python-mcp"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PostgreSQL Python MCP服务器

中文文档 |英语

一个基于Python的PostgreSQL MCP服务器,提供安全的数据库操作,内置安全检查和基于AST的SQL解析。

特性

  • 🔍 数据库列表:列出PostgreSQL实例中的所有数据库
  • 📋 表列表:查看已配置数据库中的所有表
  • 🔍 表描述:详细的表结构信息
  • 📊 安全查询:执行SQL查询(默认情况下仅限SELECT)
  • 🛡️ 安全边界:配置的数据库内有严格的操作限制
  • ⚙️ 可配置的:支持通过环境变量启用其他操作
  • 📋 JSON输出:针对AI消费优化的结构化JSON响应
  • 🌳 基于AST的安全:使用抽象语法树进行高级SQL解析,准确率达到100%

安全特性

默认安全模式

  • 只允许 SELECT, SHOW, DESCRIBE, EXPLAIN 查询
  • 阻止所有 WITH 语句,因为它们可以包装写操作
  • 阻止危险操作,如 DROP, DELETE, UPDATE, INSERT
  • 将操作严格限制在配置的数据库范围内
  • 使用基于AST的分析防止SQL注入攻击
  • 检测嵌套的危险操作和基于UNION的攻击

高级模式(可选)

设置环境变量 PG_ALLOW_DANGEROUS=true 以启用:

  • 完整的CRUD操作
  • 扩展数据库管理功能

配置

环境变量

变量描述必填
PG_HOSTPostgreSQL主机地址和端口(格式:主机:端口或主机)是
PG_USERPostgreSQL用户名是
PG_PASSWORDPostgreSQL密码是
PG_DATABASE目标数据库名称是
PG_ALLOW_DANGEROUS允许危险操作(true/false)否(默认值:false)

Claude桌面配置示例

添加到您的Claude Desktop配置文件中:

{
  "mcpServers": {
    "postgresql": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/hexonal/pg-python-mcp-.git",
        "pg-python-mcp"
      ],
      "env": {
        "PG_HOST": "your-postgres-host:5432",
        "PG_USER": "your-username",
        "PG_PASSWORD": "your-password",
        "PG_DATABASE": "your-database"
      }
    }
  }
}

可用工具

1.列表_数据库

列出PostgreSQL实例中的所有数据库(突出显示当前配置的数据库)。

2.列表表

列出当前配置的数据库中的所有表。

3.描述表

描述指定表的结构,包括列名、类型、空约束和键信息。

参数:

  • table_name (string):要描述的表的名称

4.execute_query

执行SQL查询语句并以JSON格式返回结果。

参数:

  • query (string):要执行的SQL语句

安全约束:

  • 默认模式只允许查询操作(SELECT、SHOW、DESCRIBE、EXPLAIN)
  • WITH 在安全模式下,语句总是被拒绝
  • 使用AST解析自动检测和阻止危险操作
  • 操作仅限于配置的数据库范围
  • 检测SQL注入尝试的准确率为100%

JSON输出格式:

{
  "status": "success",
  "message": "Query executed successfully, returned 2 rows",
  "columns": ["id", "name", "email"],
  "data": [
    {
      "id": 1,
      "name": "User 1", 
      "email": "user1@example.com"
    },
    {
      "id": 2,
      "name": "User 2",
      "email": "user2@example.com"
    }
  ]
}

安装和使用

使用uvx(推荐)

# Install from Git
uvx --from git+https://github.com/hexonal/pg-python-mcp-.git pg-python-mcp

# Or for local development
uvx pg-python-mcp

手动安装

# Clone repository
git clone https://github.com/hexonal/pg-python-mcp-.git
cd pg-python-mcp

# Install dependencies
pip install -e .

# Run server
python -m pg_mcp

使用示例

列出所有数据库

Tool: list_databases

列出当前数据库中的表

Tool: list_tables

描述表格结构

Tool: describe_table
Parameters: {"table_name": "users"}

执行查询

Tool: execute_query  
Parameters: {"query": "SELECT * FROM users LIMIT 10"}

发展

项目结构

pg-python-mcp/
├── pg_mcp/
│   ├── __init__.py          # Main MCP server entry point
│   ├── __main__.py          # Run script
│   └── pg_handler.py        # PostgreSQL handler with AST security
├── test_ast_security.py     # AST security validation tests
├── test_stdio.py           # MCP protocol testing
├── pyproject.toml          # Project configuration
├── README.md               # English documentation
└── README_zh.md            # Chinese documentation

本地开发

# Clone project
git clone https://github.com/hexonal/pg-python-mcp-.git
cd pg-python-mcp

# Install development dependencies
pip install -e ".[dev]"

# Run security tests
python test_ast_security.py

# Test MCP protocol
python test_stdio.py

# Code formatting
black pg_mcp/
isort pg_mcp/

# Type checking
mypy pg_mcp/

技术栈

  • FastMCP 2.0:具有基于装饰器的工具注册的现代MCP框架
  • asyncpg:异步PostgreSQL数据库操作
  • SQL解析:用于安全分析的SQL抽象语法树解析
  • Python 3.8+:广泛的兼容性支持

安全实施

基于AST的SQL分析

服务器使用抽象语法树解析来实现SQL安全检查的100%准确率:

def is_query_safe(self, query: str) -> tuple[bool, str]:
    """Check query safety using AST parsing"""
    try:
        parsed = sqlparse.parse(query)
        for statement in parsed:
            is_safe, error_msg = self._check_statement_safety(statement)
            if not is_safe:
                return False, error_msg
        return True, ""

安全测试结果

  • ✅ 安全查询:8/8(100%)
  • 🛡️ 被阻止的危险查询:10/10(100%)
  • 🎯 总体准确度: 100%

许可证

MIT许可证

安全通告

⚠️ 重要安全指南:

  • 所有环境变量都是必需的,没有不安全的默认值
  • 确保生产环境中PostgreSQL用户的最低权限
  • 定期轮换数据库密码
  • 避免在配置中使用管理数据库用户
  • 在隔离环境中运行此MCP服务器
  • 默认安全模式提供基本保护,但不能取代全面的安全策略

故障排除

常见问题

  1. 连接失败:检查PostgreSQL服务是否正在运行和网络连接
  2. 环境变量错误:验证所有必需的环境变量是否已正确设置
  3. 权限错误:确认PostgreSQL用户有访问指定数据库的权限
  4. 查询被拒绝:检查查询是否包含禁止的关键字,或考虑启用高级模式
  5. MCP协议问题:确保您使用的是与FastMCP 2.0兼容的配置

获取帮助

  • 检查 中文文档 有关更多详细信息
  • 查看测试文件以获取使用示例
  • 检查AST安全测试是否支持查询模式

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

数据库管理Python本地部署SQL安全PostgreSQLAST解析

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pg Python MCP

MCP World · 本页

4stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pg Python MCP 怎么安装?

公开资料给出的安装命令是 uvx --from git+https://github.com/hexonal/pg-python-mcp-.git pg-python-mcp,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Pg Python MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Pg Python MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pg Python MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Pg Python MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP