使用说明

项目简介

PG-MCP PostgreSQL服务器是一个实现了 Model Context Protocol (MCP) 协议的服务端应用,专为PostgreSQL数据库设计。它旨在为AI Agent提供一个标准化的接口,使其能够安全、高效地访问和理解PostgreSQL数据库中的数据和结构信息。通过资源和工具的模式,PG-MCP服务器允许AI Agent动态发现数据库Schema、执行SQL查询、获取数据样本,并利用PostgreSQL扩展的上下文信息,从而更好地与数据库进行交互。

主要功能点

  • 连接管理工具: 提供连接和断开PostgreSQL数据库的功能,支持连接池管理,安全可靠。
  • 查询工具: 支持执行SQL查询和分析查询执行计划,帮助AI Agent理解和操作数据。
  • Schema发现资源: 允许AI Agent浏览数据库的Schema信息,包括Schema列表、表列表、列详细信息、索引和约束等,方便Agent理解数据库结构。
  • 数据访问资源: 提供获取表数据样本和近似行数的功能,帮助Agent快速了解数据内容。
  • 扩展上下文: 内置对PostGIS和pgvector等PostgreSQL扩展的上下文信息支持,可以通过YAML配置文件轻松扩展更多扩展的支持。
  • SSE传输: 使用Server-Sent Events (SSE) 作为传输协议,构建完整的生产可用服务器。
  • 多数据库支持: 可以同时连接和管理多个PostgreSQL数据库。

总而言之,PG-MCP服务器旨在简化AI Agent与PostgreSQL数据库的集成,提供全面的数据库上下文信息和操作能力。

安装步骤

前提条件:

  • Python 3.13+
  • PostgreSQL 数据库服务

方式一:使用 Docker (推荐)

  1. 克隆仓库到本地:
    git clone https://github.com/stuzero/pg-mcp.git
    cd pg-mcp
  2. 使用 Docker Compose 启动服务:
    docker-compose up -d
    服务默认将在 'http://localhost:8000/sse' 启动。

方式二:手动安装

  1. 克隆仓库到本地:
    git clone https://github.com/stuzero/pg-mcp.git
    cd pg-mcp
  2. 创建并激活 Python 虚拟环境:
    python -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    .venv\Scripts\activate  # Windows
  3. 使用 'uv' 安装项目依赖:
    uv sync --frozen
  4. 启动服务器:
    python -m server.app
    服务默认将在 'http://localhost:8000/sse' 启动。

服务器配置 (MCP客户端)

MCP客户端需要配置连接PG-MCP服务器的信息。以下是一个典型的 JSON 格式配置示例,用于告知MCP客户端如何连接到PG-MCP服务器:

{
  "server_name": "pg-mcp-server",
  "command": "python -m server.app",
  "args": [],
  "transports": [
    {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  ]
}

配置参数说明:

  • 'server_name': 服务器的名称,可以自定义,用于在客户端标识服务器。例如: "pg-mcp-server"。
  • 'command': 启动 PG-MCP 服务器的命令。这里配置为 'python -m server.app',表示执行 'server/app.py' 文件来启动服务器。
  • 'args': 启动命令的参数列表。在本例中,PG-MCP服务器无需额外启动参数,所以配置为空数组 '[]'。
  • 'transports': 定义服务器支持的传输协议列表。
    • 'type': 传输协议类型,这里配置为 'sse',表示使用 Server-Sent Events 协议。
    • 'url': 服务器 SSE 协议的端点 URL。这里配置为 'http://localhost:8000/sse',与默认服务器启动地址一致。

注意:

  • 确保 PostgreSQL 数据库服务已启动并可访问。
  • 如果手动安装,请先激活虚拟环境再启动服务器。
  • 可以根据实际情况修改服务器启动端口和地址。

基本使用方法

  1. 启动 PG-MCP 服务器 (按照上述安装步骤)。
  2. 配置 MCP 客户端,使其能够连接到 PG-MCP 服务器的 'http://localhost:8000/sse' 端点。
  3. 使用 'test.py' 脚本验证服务器功能 (需要提供 PostgreSQL 数据库连接字符串作为参数):
    python test.py "postgresql://用户名:密码@主机名:端口/数据库名"
    此脚本将测试连接、工具调用、资源读取等基本功能。
  4. 使用 'client/claude_cli.py' 脚本进行自然语言查询测试 (需要配置 '.env' 文件,包含数据库连接信息 'DATABASE_URL' 和 Anthropic API 密钥 'ANTHROPIC_API_KEY'):
    python client/claude_cli.py "你的自然语言查询"
    此脚本演示了如何使用 AI 模型 (Claude) 和 PG-MCP 服务器,将自然语言查询转换为 SQL 并执行。
  5. 在 AI Agent 中集成 PG-MCP 服务器。参考 'README.md' 中 "For AI Agents" 部分的 Prompt 示例,利用 'connect', 'disconnect', 'pg_query', 'pg_explain' 等工具,以及 Schema 资源,构建能够理解和操作 PostgreSQL 数据库的 AI 应用。

信息

分类

数据库与文件