MCP Server for PostgreSQL

MCP Server for PostgreSQL

site icon
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 查询并获取格式化结果。
  • 模式分析:获取表的详细模式信息,用于开发或调试。

工具列表

  1. all_table_names:返回数据库中所有表名的列表。
  2. filter_table_names:根据关键词过滤表名。
  3. schema_definitions:获取指定表的模式定义。
  4. execute_query:执行 SQL 查询并返回结果。

常见问题解答

  • 问题:Claude Desktop 中没有显示锤子图标
  • 解决方案:检查日志文件,确认 Python 和脚本路径配置正确。
  • 问题:数据库连接失败
  • 解决方案:使用 psql 测试连接,确保 .env 文件配置正确。
  • 问题:模块未找到错误
  • 解决方案:确认 Conda 环境中已安装所有依赖项。

使用教程

使用依赖

  • Python:3.11 或更高版本。
  • PostgreSQL:运行中的 PostgreSQL 实例。
  • Conda(推荐):用于环境管理。

安装教程

  1. 克隆仓库bash git clone https://github.com/yourusername/mcp-server-postgresql.git cd mcp-server-postgresql
  2. 创建并激活 Conda 环境bash conda create -n mcp_env python=3.11 conda activate mcp_env
  3. 安装依赖bash conda install sqlalchemy psycopg2 pip install mcp python-dotenv
  4. 配置环境变量
  5. 复制 .env.example.env 并填写数据库凭证。

调试方式

  1. 运行服务器bash python mcp_server_postgresql.py
  2. 使用 MCP Inspectorbash mcp dev mcp_server_postgresql.py
  3. 访问 http://localhost:8000 测试工具和资源。
  4. 测试脚本bash python test_mcp_server_postgresql.py

许可证

该项目遵循 MIT 开源许可条款。