使用说明
项目简介
本项目是一个基于Model Context Protocol (MCP) 的服务器实现,专门为大型语言模型(LLM)提供PostgreSQL数据库的上下文信息。它允许LLM安全地访问和查询PostgreSQL数据库,特别增强了对多Schema数据库的支持。通过此服务器,LLM可以发现数据库中的表结构信息,并执行只读SQL查询,从而更好地理解和利用数据库中的数据。
主要功能点
- 多Schema支持: 可以配置服务器连接到PostgreSQL数据库的多个Schema,并允许LLM同时访问这些Schema中的数据。
- Schema隔离: 严格限制LLM只能访问在服务器启动时指定的Schema,保证数据安全。
- 跨Schema发现: LLM可以统一查看多个Schema下的表信息,方便进行跨Schema的数据分析。
- 元数据安全: 服务器只暴露用户定义的表信息,过滤系统表,提高安全性。
- 只读查询: 所有SQL查询都在只读事务中执行,防止LLM误操作修改数据库数据。
- 表结构资源: 以JSON格式提供数据库表的结构信息,包括列名、数据类型等。
- SQL查询工具: 提供名为 'query' 的工具,允许LLM执行SQL查询。
安装步骤
由于该项目基于Node.js,你需要先安装Node.js和npm (或 npx)。
-
安装 Node.js 和 npm: 如果你的电脑上还没有安装 Node.js,请先安装。你可以从 Node.js 官网 下载并安装。npm (或 npx) 通常会 साथ ही Node.js 一起安装。
-
使用 npx 运行: 本项目无需手动下载和安装,可以直接使用 'npx' 命令运行。'npx' 会自动下载并运行 'mcp-server-postgres-multi-schema' 包。
服务器配置
MCP客户端(例如 Claude Desktop)需要配置MCP服务器的启动命令才能连接。以下是针对本项目的 'claude_desktop_config.json' 配置示例:
{ "mcpServers": { "postgres": { "command": "npx", "args": [ "-y", "mcp-server-postgres-multi-schema", "postgresql://[数据库地址]/[数据库名]", "[需要暴露的Schema,多个Schema用逗号分隔]" ] } } }
配置参数说明:
- '"postgres"': 服务器名称,可以自定义,用于在Claude Desktop中标识这个MCP服务器连接。
- '"command": "npx"': 启动服务器的命令,这里使用 'npx'。
- '"args"': 传递给 'npx' 命令的参数列表,包括:
- '"-y"': 'npx' 参数,表示自动同意安装 'mcp-server-postgres-multi-schema' 包。
- '"mcp-server-postgres-multi-schema"': 要运行的 npm 包名,即本项目。
- '"postgresql://[数据库地址]/[数据库名]"': [请替换为你的 PostgreSQL 数据库连接字符串],例如 'postgresql://localhost/mydb'。你需要将 '[数据库地址]' 和 '[数据库名]' 替换为你的实际数据库连接信息。
- '"[需要暴露的Schema,多个Schema用逗号分隔]"': [可选,请替换为你想要暴露给LLM访问的Schema列表],例如 '"public,analytics,staging"'。如果省略此参数,默认只暴露 'public' Schema。多个Schema之间用逗号分隔,不要包含空格。
重要提示:
- 请务必将 'postgresql://[数据库地址]/[数据库名]' 和 '[需要暴露的Schema,多个Schema用逗号分隔]' 替换为你的实际配置信息。
- 数据库连接字符串中可能包含用户名和密码等敏感信息,请根据你的实际情况进行配置,并注意安全。
基本使用方法
-
启动 MCP 服务器: 配置好 'claude_desktop_config.json' 后,启动你的 MCP 客户端 (例如 Claude Desktop)。客户端会自动根据配置启动 MCP 服务器。
-
在 LLM 中使用: 在支持 MCP 协议的 LLM 应用中,你可以配置并连接到名为 '"postgres"' (或你在 'claude_desktop_config.json' 中配置的服务器名称) 的 MCP 服务器。
-
资源发现: LLM 可以通过 MCP 协议的资源发现功能,获取数据库中表的结构信息。服务器会将允许访问的 Schema 下的表作为资源暴露给 LLM。
-
使用 'query' 工具: LLM 可以调用名为 'query' 的工具来执行 SQL 查询。你需要提供 SQL 查询语句作为工具的输入参数。服务器会执行查询并将结果返回给 LLM。
示例: 在 Claude Desktop 中,你可以指示 Claude 使用 "postgres" MCP 服务器连接的数据库,并使用 'query' 工具查询数据,例如:
请使用 "postgres" MCP 服务器,执行 SQL 查询 "SELECT * FROM users LIMIT 10"。
LLM 应该能够调用 'query' 工具,执行 SQL 并返回结果,从而实现与 PostgreSQL 数据库的交互。
信息
分类
数据库与文件