mcpField
P
PostgreSQL Model Context Protocol (PG-MCP) Server

PostgreSQL Model Context Protocol (PG-MCP) Server

本地服务
github.com/stuzero数据库54059 周前更新

关于 PostgreSQL Model Context Protocol (PG-MCP) Server

面向 PostgreSQL 数据库的 MCP 服务,供 AI Agent 发现、连接、查询和理解数据库结构。它支持多数据库连接,并从目录中提取表和列的描述信息,默认以只读模式运行。

主要功能

  1. 01注册连接并返回不透明的连接 ID
  2. 02只读 SQL 查询工具 pg_query
  3. 03pg_explain 查询执行计划分析
  4. 04带描述的模式、表、列与索引资源
  5. 05PostGIS 与 pgvector 的扩展上下文

适用场景

  1. 01让 AI Agent 探索陌生数据库的表结构和关系
  2. 02在只读模式下查询数据库并获取分析结果
  3. 03分析慢查询的执行计划

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露连接、查询、执行计划分析等工具,以及模式和数据访问相关资源。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

PostgreSQL Model Context Protocol(PG-MCP)服务

一个面向 PostgreSQL 数据库的 Model Context Protocol(MCP)服务,为 AI Agent 提供增强功能。

有关 pg-mcp 项目的更多信息,请访问:

https://stuzero.github.io/pg-mcp/

概述

PG-MCP 是面向 PostgreSQL 数据库的 Model Context Protocol 服务实现。它基于 MCP 面向资源的架构,为 AI Agent 提供全面的 API,用于发现、连接、查询和了解 PostgreSQL 数据库。

此实现基于并扩展了 Postgres MCP 参考实现,并进行了多项重要增强:

  1. 完整的服务实现:构建为完整的服务,采用 SSE 传输,可用于生产环境
  2. 多数据库支持:可同时连接多个 PostgreSQL 数据库
  3. 丰富的目录信息:从数据库目录中提取并公开表和列的说明
  4. 扩展上下文:提供有关 PostGIS 和 pgvector 等 PostgreSQL 扩展的详细 YAML 知识
  5. 查询解释:包含专用工具,用于分析查询执行计划
  6. 可靠的连接管理:为数据库连接提供适当的生命周期管理,并安全处理连接 ID

功能

连接管理
  • 连接工具:注册 PostgreSQL 连接字符串并获取安全的连接 ID
  • 断开连接工具:使用完毕后显式关闭数据库连接
  • 连接池:通过连接池高效管理连接
查询工具
  • pg_query:使用连接 ID 执行只读 SQL 查询
  • pg_explain:以 JSON 格式分析查询执行计划
架构发现资源
  • 列出带有说明的架构
  • 列出带有说明和行数的表
  • 获取包含数据类型和说明的列详情
  • 查看表约束和索引
  • 探索数据库扩展
数据访问资源
  • 获取表数据样本(支持分页)
  • 获取近似行数
扩展上下文

内置 PostgreSQL 扩展的上下文信息,例如:

  • PostGIS:空间数据类型、函数和示例
  • pgvector:向量相似性搜索函数和最佳实践

可通过 YAML 配置文件轻松添加其他扩展。

安装

先决条件
  • Python 3.13+
  • PostgreSQL 数据库
使用 Docker
# Clone the repository
git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp-server

# Build and run with Docker Compose
docker-compose up -d
手动安装
# Clone the repository
git clone https://github.com/stuzero/pg-mcp-server.git
cd pg-mcp-server

# Install dependencies and create a virtual environment ( .venv )
uv sync

# Activate the virtual environment
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Run the server
python -m server.app

使用方法

测试服务

代码仓库包含用于验证服务功能的测试脚本:

# Basic server functionality test
python test.py "postgresql://username:password@hostname:port/database"

# Claude-powered natural language to SQL conversion
python example-clients/claude_cli.py "Show me the top 5 customers by total sales"

claude_cli.py 脚本需要以下环境变量:

# .env file
DATABASE_URL=postgresql://username:password@hostname:port/database
ANTHROPIC_API_KEY=your-anthropic-api-key
PG_MCP_URL=http://localhost:8000/sse
面向 AI Agent

与 Agent 配合使用的提示词示例:

Use the PostgreSQL MCP server to analyze the database. 
Available tools:
- connect: Register a database connection string and get a connection ID
- disconnect: Close a database connection
- pg_query: Execute SQL queries using a connection ID
- pg_explain: Get query execution plans

You can explore schema resources via:
pgmcp://{conn_id}/schemas
pgmcp://{conn_id}/schemas/{schema}/tables
pgmcp://{conn_id}/schemas/{schema}/tables/{table}/columns

A comprehensive database description is available at this resource:
pgmcp://{conn_id}/

架构

此服务基于:

  • MCP:Model Context Protocol 基础
  • FastMCP:用于 MCP 的 Python 库
  • asyncpg:异步 PostgreSQL 客户端
  • YAML:用于扩展上下文信息

安全注意事项

  • 服务默认以只读模式运行(通过事务设置强制执行)
  • 连接详情不会公开在资源 URL 中,仅使用不透明的连接 ID
  • 数据库凭据只需在初始连接时发送一次

贡献

欢迎贡献!可扩展的方向包括:

  • 更多 PostgreSQL 扩展上下文文件
  • 更多架构内省资源
  • 查询优化建议

评论

支持 Markdown

第一次接触 MCP?

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

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