使用说明

项目简介

PostgreSQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专门用于连接 PostgreSQL 数据库。它旨在为大型语言模型 (LLM) 应用提供结构化的数据库上下文访问能力。通过此服务器,LLM 客户端可以安全、便捷地查询数据库信息、执行 SQL 操作,并利用预定义的 Prompt 模板与数据库进行更智能的交互。

主要功能点

  • 资源 (Resources)
    • 提供数据库信息、模式列表、表列表以及表结构的访问接口。
    • 允许 LLM 客户端通过标准 URI 获取数据库的元数据信息。
  • 工具 (Tools)
    • 支持执行 SQL 查询(SELECT、INSERT、UPDATE、DELETE)。
    • 提供数据库分析工具,例如表数据分析、表关系查找、SQL 查询验证和执行计划分析等。
    • 允许 LLM 客户端调用预定义工具来执行数据库操作和分析任务。
  • Prompt 模板 (Prompts)
    • 内置 Prompt 模板,用于生成数据分析 SQL、模式设计建议和自然语言到 SQL 的转换。
    • 支持 LLM 客户端使用 Prompt 模板,以更结构化和引导性的方式与数据库交互。

安装步骤

  1. 克隆仓库 在你的本地环境中,使用 Git 克隆仓库:

    git clone https://github.com/dwarvesf/mcp-pg.git
    cd mcp-pg
  2. 安装依赖 确保你已安装 Node.js 和 npm。在项目根目录下运行以下命令安装项目依赖:

    npm install
  3. 构建项目 运行以下命令构建项目,生成可执行的服务器代码:

    npm run build

服务器配置

MCP 服务器需要配置 PostgreSQL 数据库连接信息。你需要在项目根目录下创建 '.env' 文件,并填入以下环境变量:

# PostgreSQL Connection
PGHOST=localhost          # PostgreSQL 主机地址
PGPORT=5432             # PostgreSQL 端口
PGDATABASE=your_database    # 数据库名称
PGUSER=your_username      # 数据库用户名
PGPASSWORD=your_password  # 数据库用户密码

# Server Configuration
SERVER_NAME=mcp-postgres-server # 服务器名称
SERVER_VERSION=1.0.0        # 服务器版本
MAX_QUERY_ROWS=1000         # 查询结果最大行数限制
QUERY_TIMEOUT_MS=30000      # 查询超时时间 (毫秒)

# Security
ENABLE_WRITE_OPERATIONS=false # 是否启用写入操作 (true/false)

MCP 客户端配置

对于 MCP 客户端(例如 Claude for Desktop),你需要配置服务器的启动命令和参数。以下是一个配置示例,你需要根据你的实际环境调整 '/path/to/mcp-pg' 为你本地仓库的路径。

{
  "mcpServers": {
    "postgres": {
      "command": "node",
      "args": ["/path/to/mcp-pg/build/server.js"],
      "env": {
        "PGHOST": "localhost",        // PostgreSQL 主机地址
        "PGPORT": "5432",           // PostgreSQL 端口
        "PGDATABASE": "your_database",   // 数据库名称
        "PGUSER": "your_username",     // 数据库用户名
        "PGPASSWORD": "your_password", // 数据库用户密码
        "ENABLE_WRITE_OPERATIONS": "false" // 是否启用写入操作 (true/false)
      }
    }
  }
}

基本使用方法

  1. 启动服务器 在项目根目录下,运行以下命令启动 MCP 服务器:

    npm start

    服务器将通过标准输入/输出 (stdio) 协议与 MCP 客户端通信。

  2. 连接 MCP 客户端 配置你的 MCP 客户端(如 Claude for Desktop),使其连接到本服务器。你需要提供服务器的启动命令和必要的环境变量(如数据库连接信息)。

  3. 使用 LLM 应用 现在你可以使用支持 MCP 协议的 LLM 应用,通过配置的 MCP 服务器访问 PostgreSQL 数据库。你可以利用 LLM 应用的功能,结合服务器提供的资源、工具和 Prompt 模板,实现数据库的智能查询、分析和操作。

资源 URI 示例:

  • 'postgres://info':获取数据库基本信息。
  • 'postgres://schemas':列出所有数据库模式。
  • 'postgres://schemas/{schema}/tables':列出指定模式下的所有表。
  • 'postgres://schemas/{schema}/tables/{table}/schema':获取指定表的结构信息。

工具名称示例:

  • 'execute_select':执行 SELECT 查询。
  • 'analyze_table':分析表数据。
  • 'find_relationships':查找表关系。

Prompt 名称示例:

  • 'analyze_data':生成数据分析 SQL。
  • 'schema_design':获取模式设计建议。
  • 'generate_query':根据自然语言描述生成 SQL 查询。

信息

分类

数据库与文件