
MCP Server for PostgreSQL

2025.03.28
0
Python数据库连接自然语言查询PostgreSQL数据库
MCP Server for PostgreSQL 是一个基于 Model Context Protocol (MCP) 的服务,用于连接 PostgreSQL 数据库,并将其模式和数据结构暴露给大型语言模型(如 Claude)。该服务允许用户通过自然语言查询与 PostgreSQL 数据库进行交互,适用于数据库探索、数据查询和模式分析等场景。
View on GitHub
Overview
基本能力
产品定位
MCP Server for PostgreSQL 是一个数据库连接和查询工具,旨在通过自然语言接口简化数据库的访问和操作。
核心功能
- 资源管理:
schema://tables
:列出数据库中的所有表(JSON 格式)。schema://schema/{table_name}
:提供特定表的详细模式信息(JSON 格式)。- 工具集:
all_table_names
:返回所有表名的逗号分隔列表。filter_table_names
:根据搜索词过滤表名。schema_definitions
:返回指定表的详细模式信息(列、主键、外键等)。execute_query
:执行只读 SQL 查询并返回格式化结果。- 集成能力:与 Claude Desktop 集成,支持自然语言查询。
适用场景
- 数据库探索:通过自然语言查询快速了解数据库结构和内容。
- 数据查询:执行 SQL 查询并获取格式化结果。
- 模式分析:获取表的详细模式信息,用于开发或调试。
工具列表
- all_table_names:返回数据库中所有表名的列表。
- filter_table_names:根据关键词过滤表名。
- schema_definitions:获取指定表的模式定义。
- execute_query:执行 SQL 查询并返回结果。
常见问题解答
- 问题:Claude Desktop 中没有显示锤子图标
- 解决方案:检查日志文件,确认 Python 和脚本路径配置正确。
- 问题:数据库连接失败
- 解决方案:使用
psql
测试连接,确保.env
文件配置正确。 - 问题:模块未找到错误
- 解决方案:确认 Conda 环境中已安装所有依赖项。
使用教程
使用依赖
- Python:3.11 或更高版本。
- PostgreSQL:运行中的 PostgreSQL 实例。
- Conda(推荐):用于环境管理。
安装教程
- 克隆仓库:
bash git clone https://github.com/yourusername/mcp-server-postgresql.git cd mcp-server-postgresql
- 创建并激活 Conda 环境:
bash conda create -n mcp_env python=3.11 conda activate mcp_env
- 安装依赖:
bash conda install sqlalchemy psycopg2 pip install mcp python-dotenv
- 配置环境变量:
- 复制
.env.example
到.env
并填写数据库凭证。
调试方式
- 运行服务器:
bash python mcp_server_postgresql.py
- 使用 MCP Inspector:
bash mcp dev mcp_server_postgresql.py
- 访问
http://localhost:8000
测试工具和资源。 - 测试脚本:
bash python test_mcp_server_postgresql.py