项目简介
PostgreSQL MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在让 LLM 客户端(如 Claude Desktop)能够与 PostgreSQL 数据库进行交互。此仓库基于 modelcontextprotocol/servers 的 PostgreSQL MCP Server 进行了扩展,增加了创建表、插入数据、更新数据、删除数据和删除表的功能,从而为 LLM 提供了更全面的数据库操作能力。
主要功能点
- 查询 (query): 执行只读 SQL 查询,从数据库中检索数据。
- 创建表 (create_table): 动态创建新的数据库表,需要指定表名和列定义。
- 插入数据 (insert_entry): 向指定表中插入新的数据记录。
- 更新数据 (update_entry): 根据条件更新表中已有的数据记录。
- 删除数据 (delete_entry): 根据条件删除表中的数据记录。
- 删除表 (delete_table): 删除数据库中已有的表。
- 资源 (Table Schemas): 提供数据库中表的结构信息(schema),LLM 可以获取表的列名和数据类型等元数据。
安装步骤
- 安装 Docker 和 Claude Desktop: 确保你的系统上已安装 Docker 和 Claude Desktop 应用。
- 克隆仓库: 使用 'git clone https://github.com/vignesh-codes/ai-agents-mcp-pg.git' 命令克隆仓库到本地。
- 运行 PostgreSQL Docker 容器: 执行以下命令启动 PostgreSQL Docker 容器。这将创建一个名为 'postgres-container' 的容器,并暴露 5432 端口。
docker run --name postgres-container -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin_password -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres:latest - 构建 MCP 服务器 Docker 镜像: 进入克隆的仓库目录,执行以下命令构建 MCP 服务器的 Docker 镜像。
docker build -t mcp/postgres -f src/Dockerfile . - 配置 Claude Desktop: 打开 Claude Desktop 的配置文件 'claude_desktop_config.json',在 'mcpServers' 字段中添加以下配置以连接到 PostgreSQL MCP 服务器。
服务器配置
以下 JSON 配置信息用于配置 Claude Desktop 连接到 PostgreSQL MCP 服务器。你需要将此配置添加到 Claude Desktop 的 'claude_desktop_config.json' 文件中的 'mcpServers' 字段下。
{ "mcpServers": { "postgres": { // 服务器名称,可以自定义 "command": "docker", // 启动服务器的命令,这里使用 Docker "args": [ // 传递给命令的参数 "run", "-i", // 以交互模式运行容器 "--rm", // 容器退出后自动删除 "mcp/postgres", // 使用之前构建的 mcp/postgres 镜像 "postgresql://username:[email protected]:5432/mydatabase" // PostgreSQL 数据库连接 URL,需要替换为你的数据库连接信息 // username: 数据库用户名 // password: 数据库密码 // host.docker.internal: Docker 容器连接宿主机 PostgreSQL 服务的地址 (macOS Docker 特殊域名,Linux 和 Windows Docker 可能需要使用 127.0.0.1 或 localhost) // 5432: PostgreSQL 默认端口 // mydatabase: 数据库名称,与 Docker 启动命令中设置的 POSTGRES_DB 环境变量一致 ] } } }
注意:
- 请根据你的 PostgreSQL 数据库实际配置,修改连接 URL 中的 'username', 'password', 'host', 'port' 和 'mydatabase'。
- 如果在 macOS 上使用 Docker,并且 PostgreSQL 服务运行在宿主机上,请使用 'host.docker.internal' 作为 host。在 Linux 或 Windows 上,可能需要使用 '127.0.0.1' 或 'localhost'。
- 配置完成后,请重启 Claude Desktop 应用以使配置生效。
基本使用方法
配置完成后,在 Claude Desktop 中,你可以通过自然语言指令指示 LLM 使用 PostgreSQL MCP Server 进行数据库操作。例如:
- 查询数据: "查询 users 表中所有用户的姓名和邮箱"
- 创建表: "创建一个名为 products 的表,包含 id (整数类型,主键), name (文本类型), price (浮点数类型) 三列"
- 插入数据: "向 products 表中插入一条数据,name 为 '笔记本电脑', price 为 1200.50"
- 更新数据: "将 products 表中 name 为 '笔记本电脑' 的 price 更新为 1250.00"
- 删除数据: "删除 products 表中 id 为 1 的数据"
- 删除表: "删除 products 表"
LLM 会将这些自然语言指令转换为 MCP 协议的请求,发送给 PostgreSQL MCP Server 执行,并将结果返回给你。 你可以参考仓库 README.md 文件中的 Sample 和 DB ENTRIES 部分,了解更详细的输入输出示例。
信息
分类
数据库与文件