使用说明
项目简介
本项目 '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的最佳实践。
安装步骤
- 安装Python环境: 确保你的系统中已安装 Python 3.8 或更高版本。
- 安装 'uv': 按照仓库 'README.md' 推荐,使用 'uv' 管理Python包,可以更快速地安装依赖。参考 uv GitHub仓库 安装 'uv'。
- 创建虚拟环境并安装依赖:
打开终端,进入仓库根目录 'simple-psql-mcp',运行以下命令:
uv venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows uv pip install -r requirements.txt - 安装 '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' 环境变量。
基本使用方法
- 启动MCP Inspector (可选,但推荐): 可以使用官方提供的 MCP Inspector 工具来测试和验证 MCP 服务器的功能。按照仓库 'README.md' 的 "Quick Setup" 步骤启动 Inspector,并连接到运行中的 'simple-psql-mcp' 服务器。
将 '你的DSN连接字符串' 和 '你的Schema名称' 替换为实际值。npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=你的DSN连接字符串 -e SCHEMA=你的Schema名称 - 配置MCP客户端: 在支持MCP协议的LLM客户端 (如 Claude Desktop) 中,配置上述生成的JSON格式的服务器连接信息。
- 使用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 官方文档 获取更详细的使用说明和高级用法。
信息
分类
数据库与文件