使用说明

项目简介

本项目 'simple-psql-mcp' 是一个基于Python开发的、实现了Model Context Protocol (MCP) 的服务器示例,专注于PostgreSQL数据库的集成。它旨在帮助开发者快速构建自己的MCP服务器,以便将PostgreSQL数据库的数据和功能以标准化的方式提供给LLM应用使用。

主要功能点

  • 工具 (Tools):
    • 'execute_query': 执行SQL查询语句,从数据库中检索数据。注意,出于安全考虑,仅支持SELECT查询。
    • 'test_connection': 测试与PostgreSQL数据库的连接是否正常。
  • 资源 (Resources):
    • 提供数据库中所有表的列表,方便LLM了解数据库结构。
    • 提供指定表的Schema信息,包括列名、数据类型、是否允许为空等,帮助LLM理解表结构。
  • Prompt 模板 (Prompts):
    • 'generate_select_query': 根据表名生成一个结构良好、符合PostgreSQL最佳实践的SELECT查询Prompt,用于引导LLM生成查询语句。
    • 'generate_analytical_query': 根据表名生成一个用于分析查询的Prompt,包含聚合、分组等分析性SQL的最佳实践。

安装步骤

  1. 安装Python环境: 确保你的系统中已安装 Python 3.8 或更高版本。
  2. 安装 'uv': 按照仓库 'README.md' 推荐,使用 'uv' 管理Python包,可以更快速地安装依赖。参考 uv GitHub仓库 安装 'uv'。
  3. 创建虚拟环境并安装依赖: 打开终端,进入仓库根目录 'simple-psql-mcp',运行以下命令:
    uv venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate  # Windows
    uv pip install -r requirements.txt
  4. 安装 'npx' (如果未安装): 'npx' 通常随 Node.js 一起安装。如果你的系统中没有 'npx',请先安装 Node.js。

服务器配置

MCP客户端需要配置以下JSON格式信息才能连接到此MCP服务器。以下配置信息已根据仓库内容生成,可以直接复制使用。

{
  "mcpServers": {
    "postgres": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/path/to/simple-psql-mcp",
        "run",
        "postgres"
      ],
      "env": {
        "DSN": "postgresql://username:password@localhost:5432/database",
        "SCHEMA": "public"
      }
    }
  }
}

配置参数说明:

  • '"postgres"': 服务器名称,可以自定义,用于在MCP客户端中标识该服务器连接。
  • '"command"': 启动服务器的命令。这里假设 'uv' 命令在你的系统 'PATH' 环境变量中,如果不在,请填写 'uv' 的完整路径。
  • '"args"': 传递给 'uv' 命令的参数列表。
    • '"–directory"': 指定MCP服务器代码所在的目录,这里是 '/path/to/simple-psql-mcp',需要替换为 'simple-psql-mcp' 仓库在您本地的绝对路径
    • '"run"': 'uv' 的子命令,用于运行Python脚本。
    • '"postgres"': 指定运行 'pyproject.toml' 中 '[project.scripts]' 下定义的 'postgres' 脚本,对应 'src/postgres/server.py' 中的 'main' 函数。
  • '"env"': 设置MCP服务器运行时的环境变量。
    • '"DSN"': PostgreSQL数据库的连接字符串 (Data Source Name),需要替换为你的实际数据库连接信息,例如 'postgresql://用户名:密码@主机名:端口/数据库名'。
    • '"SCHEMA"': PostgreSQL数据库的Schema名称,默认为 'public',如果你的表在其他Schema下,请修改为相应的Schema名称。

注意: 请务必将上述配置中的 '/path/to/simple-psql-mcp' 替换为 'simple-psql-mcp' 仓库在您本地文件系统中的绝对路径。同时,根据你的PostgreSQL数据库实际连接信息修改 'DSN' 和 'SCHEMA' 环境变量。

基本使用方法

  1. 启动MCP Inspector (可选,但推荐): 可以使用官方提供的 MCP Inspector 工具来测试和验证 MCP 服务器的功能。按照仓库 'README.md' 的 "Quick Setup" 步骤启动 Inspector,并连接到运行中的 'simple-psql-mcp' 服务器。
    npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=你的DSN连接字符串 -e SCHEMA=你的Schema名称
    将 '你的DSN连接字符串' 和 '你的Schema名称' 替换为实际值。
  2. 配置MCP客户端: 在支持MCP协议的LLM客户端 (如 Claude Desktop) 中,配置上述生成的JSON格式的服务器连接信息。
  3. 使用LLM与数据库交互: 在LLM客户端中,你可以指示LLM使用配置的MCP服务器来访问PostgreSQL数据库。例如,你可以询问:
    • "数据库里有哪些表?" (LLM可能会调用 'list_tables' 资源)
    • "查询 'users' 表的所有列名和数据类型。" (LLM可能会调用 'get_table_schema' 资源)
    • "查询所有用户的姓名和邮箱。" (LLM可能会调用 'execute_query' 工具,并生成相应的SQL查询语句)
    • "帮我生成一个查询订单总金额的SQL。" (LLM可能会调用 'generate_analytical_query' Prompt,并基于Prompt模板生成SQL查询指令)

请参考仓库 'README.md' 和 Model Context Protocol 官方文档 获取更详细的使用说明和高级用法。

信息

分类

数据库与文件