使用说明
PostgreSQL MCP服务器
PostgreSQL数据库探索和查询的模型上下文协议(MCP)服务器实现。
目录
概述
该项目提供了一个模型上下文协议(MCP)服务器,该服务器连接到PostgreSQL数据库,并将各种数据发现和查询功能作为MCP工具公开。这些工具允许您通过标准化的界面探索数据库结构、查询数据并获取数据库统计信息。
特性
- 使用标准连接字符串连接到任何PostgreSQL数据库
- 执行自定义SELECT查询,结果以结构化格式返回
- 列出连接数据库中的所有表
- 获取任何表的详细架构信息
- 使用简单相等条件筛选数据库记录
- 获取数据库统计信息,包括大小、表计数和最大表
需求
- Python 3.7+
- 所需的Python包(列在
requirements.txt):- 主控程序
- 第8000页
- sqlalchemy
安装
- 克隆此存储库或下载源代码
- 创建虚拟环境(推荐)
- 安装所需的软件包:
pip install -r requirements.txt
用法
基本用法
通过提供PostgreSQL连接字符串来运行服务器:
python server.py postgresql://username:password@hostname:port/database
与Claude Desktop一起使用
要与Claude Desktop集成,请将以下配置添加到您的Claude Desktop配置文件中:
{
"mcpServers": {
"postgres": {
"command": "python",
"args": [
"/ABOSLUTE/PATH/TO/postgres-mcp-server/server.py",
"postgresql://user:password@host:port/database"
]
}
}
}
在添加或更改上述配置文件后,请确保通过强制退出来重新启动claude桌面。
配置文件位置
Claude Desktop配置文件通常位于:
- macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
可用工具
服务器提供以下MCP工具:
execute_query
执行自定义SELECT SQL查询并返回结果。
list_tables
列出当前PostgreSQL数据库中的所有表。
get_table_schema
获取指定表的架构定义。
filter_instances
根据指定条件筛选数据库记录。
get_database_stats
获取PostgreSQL数据库的一般统计数据和元数据。
安全考虑
- 此服务器只允许SELECT查询以防止数据库修改
- 连接凭据通过命令行提供,不存储
- 考虑在生产环境中使用环境变量或安全配置方法
Claude中的交互示例
连接到Claude Desktop后,您可以提出以下问题:
- “数据库中有哪些表可用?”
- “显示客户表的架构”
- “订单表中有多少条记录?”
- “数据库的总大小是多少?”
Claude将使用适当的MCP工具通过查询PostgreSQL数据库来回答这些问题。
故障排除
-
如果连接失败,请验证PostgreSQL连接字符串是否正确
-
检查PostgreSQL服务器是否允许从客户端计算机连接
-
找不到服务器:确保配置文件中的路径正确且绝对
通过运行命令使用绝对路径
where python例如:-
"command": "python"应该写成a"command": "/Users/username/miniconda3/bin/python" -
权限问题:确保Claude Desktop应用程序具有执行脚本的权限
-
服务器崩溃:检查服务器日志是否有错误,并确保已安装所有依赖项
联系
请随时在此存储库中提出问题。
SSE和Streamable HTTP postgres-mcp服务器正在开发中。...