PostgreSQL数据库查询服务

PostgreSQL MCP Server是一个基于Model Context Protocol (MCP)的服务器实现,用于PostgreSQL数据库的探索和查询。

  • by aadarshjain
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 aadarshjain/postgres-mcp-server

使用说明

PostgreSQL MCP服务器

PostgreSQL数据库探索和查询的模型上下文协议(MCP)服务器实现。

目录

概述

该项目提供了一个模型上下文协议(MCP)服务器,该服务器连接到PostgreSQL数据库,并将各种数据发现和查询功能作为MCP工具公开。这些工具允许您通过标准化的界面探索数据库结构、查询数据并获取数据库统计信息。

特性

  • 使用标准连接字符串连接到任何PostgreSQL数据库
  • 执行自定义SELECT查询,结果以结构化格式返回
  • 列出连接数据库中的所有表
  • 获取任何表的详细架构信息
  • 使用简单相等条件筛选数据库记录
  • 获取数据库统计信息,包括大小、表计数和最大表

需求

  • Python 3.7+
  • 所需的Python包(列在 requirements.txt):
    • 主控程序
    • 第8000页
    • sqlalchemy

安装

  1. 克隆此存储库或下载源代码
  2. 创建虚拟环境(推荐)
  3. 安装所需的软件包:
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服务器正在开发中。...