项目简介
PgSQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的工具服务器,它通过 MCP 调用提供了与 PostgreSQL 数据库交互的能力。它利用 FastMCP 框架和异步驱动 asyncpg 实现高效的数据库操作。
主要功能点
本服务器通过 MCP 协议向客户端(如大型语言模型 LLM)暴露一系列用于访问和操作 PostgreSQL 数据库的功能,包括:
- Schema 和表结构查询: 获取数据库的所有 Schema 名称,获取指定 Schema 下的所有表名称。
- 表详细信息查询: 查询并获取指定表的列信息、索引信息、外键信息。
- SQL 语句执行: 支持执行任意 DQL(数据查询语言,如 'SELECT')、DDL(数据定义语言,如 'CREATE', 'ALTER', 'DROP')、DML(数据操作语言,如 'INSERT', 'UPDATE', 'DELETE')和 DCL(数据控制语言,如 'GRANT', 'REVOKE')语句,并提供事务安全保障。
该服务器基于异步框架实现,确保了高效率和响应性。
安装步骤
- 确保您的系统已安装 Python 3.8 或更高版本。
- 通过 pip 安装服务器程序包:
pip install pgsql-mcp-server
(注意:所需的数据库驱动 asyncpg 以及其他依赖会作为依赖自动安装。)
服务器配置
此 MCP 服务器需要一个数据库连接字符串(DSN)来启动。在您的 MCP 客户端中配置此服务器时,需要指定服务器启动命令及其参数。
- 启动命令: 通常是 'uvx'(推荐)或 'python -m pgsql_mcp_server.app'。
- 参数: 参数列表应包含 'pgsql-mcp-server'(如果使用 'uvx')或模块路径,以及一个 '--dsn' 参数,其值是您的 PostgreSQL 数据库连接字符串。
- DSN 格式: 通常为 'postgresql://用户:密码@主机:端口/数据库'。请将此格式中的占位符替换为您实际的数据库连接信息。
- 客户端配置示例要素说明: 例如,在 MCP 客户端的 JSON 配置中,您需要指定一个服务器名称(您可以自定义,如 "PostgreSQL Database"),以及启动该服务器所需的命令和参数。命令字段可能设置为 '"uvx"',而参数列表字段可能设置为 '["pgsql-mcp-server", "--dsn", "postgresql://myuser:mypassword@mydbhost:5432/mydatabase"]'。请根据您实际的数据库连接信息和 MCP 客户端的配置规范填写。
基本使用方法
安装 PgSQL MCP Server 并将其配置到您的 MCP 客户端(如支持 MCP 协议的大型语言模型应用)后,LLM 即可根据需要自动发现和调用服务器提供的数据库工具。LLM 可以通过调用 'get_tables' 工具来了解数据库结构,或者调用 'run_dql_query' 工具来执行数据查询等。服务器会处理这些请求,执行相应的数据库操作,并将结果(通常是格式化的文本响应)通过 MCP 协议返回给客户端,以便 LLM 进行后续处理或向用户展示。
信息
分类
数据库与文件