使用说明
项目简介
本项目实现了一个MCP服务器,允许LLM客户端通过标准的MCP协议与PostgreSQL数据库进行交互。它提供资源管理和工具调用功能,使得LLM可以获取数据库的表结构信息,并执行SQL查询来获取数据。
主要功能点
- 资源发现: LLM可以列出PostgreSQL数据库中的所有表,并将每个表视为一个资源。
- Schema读取: LLM可以读取表的schema信息(列名和数据类型),用于理解数据结构。
- SQL查询工具: 提供 "query" 工具执行只读SQL查询,以及 "execute" 工具执行可修改数据的SQL命令。
- 数据访问: LLM可以通过执行SQL查询,获取数据库中的数据内容。
安装步骤
- 安装Docker: 确保你的机器上已安装 Docker 和 Docker Compose (如果需要,根据实际情况判断是否需要Docker Compose)。
- 克隆仓库: 从 GitHub 克隆 'ai-agents' 仓库到本地。
git clone https://github.com/quickbooks2018/ai-agents cd ai-agents - 构建Docker镜像: 进入 PostgreSQL 服务器代码目录,并构建 Docker 镜像。假设 Dockerfile 位于 'docker/database/postgres/ReadWrite/postgres' 目录(如果仓库中没有 Dockerfile,则需要自行创建,根据 'index.ts' 文件内容,可能需要 Node.js 环境和 'pg' 包,并参考 'modelcontextprotocol/servers' 仓库中类似服务的 Dockerfile)。
cd docker/database/postgres/ReadWrite/postgres docker build -t postgres-mcp-server . cd ../../../.. # 返回仓库根目录 - 准备数据库连接: 你需要一个可访问的 PostgreSQL 数据库,并获取数据库连接 URL。
服务器配置
在 MCP 客户端(如 VSCode, Claude, Cursor, Codium Windsurf 等)的 MCP 服务器配置中,添加以下配置信息。请将 '<database_url>' 替换为你的 PostgreSQL 数据库连接 URL。
{ "postgres-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "postgres-mcp-server", "<database_url>" // <database_url>: 你的PostgreSQL数据库连接URL,例如 "postgresql://用户名:密码@主机:端口/数据库名" ] } }
参数说明:
- 'postgres-mcp': 服务器名称,可以自定义。
- 'command': 启动服务器的命令,这里使用 'docker' 运行容器。
- 'args': 传递给 'docker run' 命令的参数列表:
- 'run -i --rm --init -e DOCKER_CONTAINER=true': Docker 运行参数,保持不变。
- 'postgres-mcp-server': Docker 镜像名称,与构建镜像时 '-t' 参数指定的名称一致。
- '<database_url>': 重要参数,PostgreSQL 数据库的连接 URL,需要替换为实际的数据库连接信息。
基本使用方法
- 启动服务器: 在 MCP 客户端中配置并启动名为 'postgres-mcp' 的服务器。
- 客户端交互: 在 MCP 客户端中,可以使用以下方式与 PostgreSQL MCP 服务器交互:
- 列出资源: 客户端可以请求列出可用的资源,服务器会返回数据库中的表列表。
- 读取资源: 客户端可以请求读取特定表的资源,服务器会返回该表的 schema 信息(JSON 格式)。
- 调用工具: 客户端可以调用 "query" 工具执行只读 SQL 查询,或调用 "execute" 工具执行 SQL 命令,并通过参数 'sql' 传递 SQL 查询语句。服务器会执行 SQL 并将结果返回给客户端。
注意:
- 请确保数据库连接 URL 的安全性,避免泄露敏感信息。
- "execute" 工具允许执行修改数据的 SQL 命令,请谨慎使用,并确保 LLM 的指令是安全可靠的。
信息
分类
数据库与文件