返回市场
postgres-MCP服务器

postgres-MCP服务器

作者:aadarshjain2 星标更新:2025-07-01

项目介绍

由mcpreview.com认证

PostgreSQL MCP Server

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

目录

概述

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

特性

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

需求

  • Python 3.7+
  • 所需Python包(列在requirements.txt中):
    • mcp
    • pg8000
    • sqlalchemy

安装

  1. 克隆此仓库或下载源代码
  2. 创建虚拟环境(推荐)
  3. 安装所需包:
pip install -r requirements.txt

使用

基本使用

通过提供PostgreSQL连接字符串运行服务器:

python server.py postgresql://用户名:密码@主机名:端口/数据库

与Claude Desktop一起使用

要与Claude Desktop集成,请在您的Claude Desktop配置文件中添加以下配置:

{
  "mcpServers": {
    "postgres": {
      "command": "python",
      "args": [
        "/ABOSLUTE/PATH/TO/postgres-mcp-server/server.py",
        "postgresql://用户:密码@主机:端口/数据库"
      ]
    }
  }
}

在对上述配置文件进行添加或修改后,请确保强制退出并重新启动Claude Desktop。

配置文件位置

Claude Desktop配置文件通常位于:

  • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows: %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" 应该写成 "command": "/Users/用户名/miniconda3/bin/python"

  • 权限问题:确保Claude Desktop应用程序具有执行脚本的权限

  • 服务器崩溃:检查服务器日志中的错误并确保所有依赖项已安装

联系

欢迎在此仓库中提出问题。

SSE和Streamable-HTTP postgres-mcp-server正在开发中...