项目简介
go-mcp-postgres 是一个基于 Go 语言开发的 Model Context Protocol (MCP) 服务器,它允许大型语言模型 (LLM) 客户端通过标准化的 MCP 协议与 PostgreSQL 数据库进行交互。该服务器提供了一系列工具,使 LLM 能够执行数据库查询、数据增删改查等操作,从而扩展 LLM 的上下文处理能力和功能。
主要功能点
- PostgreSQL 数据库连接: 支持连接 PostgreSQL 数据库,作为 LLM 获取上下文数据的来源。
- CRUD 操作工具: 提供了创建表、修改表、读取数据、写入数据、更新数据和删除数据等工具,方便 LLM 对数据库进行各种操作。
- 只读模式: 支持只读模式,在该模式下仅允许执行读取操作,保障数据安全。
- 查询计划检查: 可选的查询计划检查功能,在执行 SQL 查询前先通过 'EXPLAIN' 语句检查查询计划,确保查询效率和安全性。
- 标准 MCP 协议: 遵循 MCP 协议,能够与任何兼容 MCP 协议的 LLM 客户端进行通信。
安装步骤
-
下载预编译二进制文件: 访问 release 页面,下载适用于您操作系统的最新版本的预编译二进制文件。将下载后的文件放置到您的 '$PATH' 环境变量包含的目录中,或者任何方便访问的位置。
-
或者,从源代码编译: 如果您已安装 Go 语言环境,可以使用以下命令从源代码编译并安装:
go install -v github.com/guoling2008/go-mcp-postgres@latest
服务器配置
要将 'go-mcp-postgres' 配置为 MCP 服务器,您需要在 MCP 客户端的配置文件中指定服务器的启动命令和参数。以下是一个 JSON 格式的配置示例:
{ "mcpServers": { "postgres": { // 服务器名称,可以自定义 "command": "go-mcp-postgres", // 启动服务器的命令,如果 go-mcp-postgres 不在 $PATH 中,请使用完整路径 "args": [ "--dsn", "postgresql://user:password@host:port/database" // PostgreSQL 连接字符串,请替换为您的数据库连接信息 // "--read-only", // 可选参数:启用只读模式 // "--with-explain-check" // 可选参数:启用查询计划检查 ] } } }
参数说明:
- '--dsn': PostgreSQL 数据库连接字符串 (Data Source Name),用于指定数据库的连接信息,例如 'postgresql://user:password@host:port/database'。
- '--read-only': 可选参数,启用只读模式。启用后,仅允许执行 'list_database', 'list_table', 'read_query', 'desc_table' 等只读工具。
- '--with-explain-check': 可选参数,启用查询计划检查。启用后,服务器在执行 CRUD 查询前会先执行 'EXPLAIN' 检查查询计划。
基本使用方法
-
启动 MCP 服务器: 根据上述配置,在 MCP 客户端中启动 'go-mcp-postgres' 服务器。
-
通过 LLM 客户端调用工具: 在 LLM 客户端中,可以使用以下工具与 PostgreSQL 数据库进行交互:
- 'list_database': 列出所有数据库。
- 'list_table': 列出所有表。
- 'create_table': 创建新表 (非只读模式)。
- 'alter_table': 修改表结构 (非只读模式)。
- 'read_query': 执行只读 SQL 查询。
- 'write_query': 执行写入 SQL 查询 (非只读模式)。
- 'update_query': 执行更新 SQL 查询 (非只读模式)。
- 'delete_query': 执行删除 SQL 查询 (非只读模式)。
调用工具时,请参考工具的参数说明,提供必要的参数,例如执行 SQL 查询时需要提供 'query' 参数。
信息
分类
数据库与文件