项目简介
PostgreSQL数据库MCP服务器是一个基于Model Context Protocol (MCP) 的后端应用,旨在为AI助手提供与PostgreSQL数据库交互的能力。通过此服务器,AI助手可以执行SQL查询、创建表格以及列出数据库中的表格,从而扩展AI在数据处理和分析方面的应用场景。
主要功能点
- 执行SQL查询: 支持AI助手通过 'read_query' 工具执行 'SELECT' 查询,从数据库中检索数据。
- 执行SQL写入操作: 支持AI助手通过 'write_query' 工具执行 'INSERT', 'UPDATE', 'DELETE' 等写入操作,修改数据库数据。
- 创建数据库表: 支持AI助手通过 'create_table' 工具在数据库中创建新的表格。
- 列出数据库表: 支持AI助手通过 'list_tables' 工具列出数据库中现有的用户表格,并支持按schema过滤。
安装步骤
-
环境准备:
- 确保已安装 Go 1.23 或更高版本。
- 确保已安装并运行 PostgreSQL 数据库服务器。
-
克隆仓库: 打开终端,执行以下命令克隆仓库到本地:
git clone https://github.com/leixiaotian1/pgsql-mcp-server.git cd pgsql-mcp-server -
安装依赖: 在仓库根目录下,执行以下命令下载所需的 Go 依赖包:
go mod download -
编译服务器: 执行以下命令编译 Go 代码,生成可执行文件 'pgsql-mcp-server':
go build -o pgsql-mcp-server
服务器配置
此MCP服务器需要通过环境变量配置 PostgreSQL 数据库连接信息。你需要在项目根目录下创建一个 '.env' 文件,并填入以下配置信息,根据你的PostgreSQL数据库实际情况修改:
DB_HOST=localhost # PostgreSQL 服务器地址 DB_PORT=5432 # PostgreSQL 服务器端口 DB_NAME=postgres # 数据库名称 DB_USER=your_username # 数据库用户名 DB_PASSWORD=your_password # 数据库用户密码 DB_SSLMODE=disable # SSL 模式 (disable, require, verify-ca, verify-full)
MCP客户端配置
为了让MCP客户端(例如AI助手)能够连接到此服务器,需要在客户端的MCP配置中添加以下JSON配置。请注意将 'command' 字段的值 '/path/to/pgsql-mcp-server' 替换为 pgsql-mcp-server 可执行文件在你机器上的实际路径。
{ "mcpServers": { "pgsql-mcp-server": { // 服务器名称,客户端使用此名称来调用工具 "command": "/path/to/pgsql-mcp-server", // pgsql-mcp-server 可执行文件的绝对路径 "args": [], // 启动参数,本服务器无需启动参数,保持为空数组即可 "env": { // 环境变量,用于配置数据库连接,与 .env 文件中的配置相同 "DB_HOST": "localhost", "DB_PORT": "5432", "DB_NAME": "postgres", "DB_USER": "your_username", "DB_PASSWORD": "your_password", "DB_SSLMODE": "disable" }, "disabled": false, // 是否禁用此服务器,false 表示启用 "autoApprove": [] // 自动批准的工具列表,留空表示需要用户手动批准 } } }
基本使用方法
-
启动服务器: 在终端中,导航到 'pgsql-mcp-server' 仓库根目录,并执行以下命令启动服务器:
./pgsql-mcp-server服务器成功启动后,会输出 "Successfully connected to database" 的日志信息。
-
通过MCP客户端调用工具: 在你的MCP客户端中,可以使用以下JSON格式的消息来调用服务器提供的工具。你需要将 'server_name' 设置为 '"pgsql-mcp-server"', 'tool_name' 设置为你想调用的工具名称(例如 'list_tables', 'create_table', 'read_query', 'write_query'),并在 'arguments' 中提供工具所需的参数。
示例:列出所有表格
{ "server_name": "pgsql-mcp-server", "tool_name": "list_tables", "arguments": {} }示例:执行 SELECT 查询
{ "server_name": "pgsql-mcp-server", "tool_name": "read_query", "arguments": { "query": "SELECT * FROM users LIMIT 10" } }示例:执行 INSERT 写入
{ "server_name": "pgsql-mcp-server", "tool_name": "write_query", "arguments": { "query": "INSERT INTO users (name, email) VALUES ('New User', '[email protected]')" } }示例:创建表格
{ "server_name": "pgsql-mcp-server", "tool_name": "create_table", "arguments": { "schema": "CREATE TABLE products (id SERIAL PRIMARY KEY, name VARCHAR(100), price DECIMAL)" } }请参考仓库 README.md 文件中 "Tool Examples" 部分获取更多工具的使用示例和参数说明。
信息
分类
数据库与文件