使用说明
项目简介
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 模板,以更结构化和引导性的方式与数据库交互。
安装步骤
-
克隆仓库 在你的本地环境中,使用 Git 克隆仓库:
git clone https://github.com/dwarvesf/mcp-pg.git cd mcp-pg -
安装依赖 确保你已安装 Node.js 和 npm。在项目根目录下运行以下命令安装项目依赖:
npm install -
构建项目 运行以下命令构建项目,生成可执行的服务器代码:
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) } } } }
基本使用方法
-
启动服务器 在项目根目录下,运行以下命令启动 MCP 服务器:
npm start服务器将通过标准输入/输出 (stdio) 协议与 MCP 客户端通信。
-
连接 MCP 客户端 配置你的 MCP 客户端(如 Claude for Desktop),使其连接到本服务器。你需要提供服务器的启动命令和必要的环境变量(如数据库连接信息)。
-
使用 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 查询。
信息
分类
数据库与文件