首页/数据库/postgres-mcp-server

postgres-mcp-server

查看源码
2025-5-12
Words 912Read Time 3 min
Score:85

为PostgreSQL数据库提供MCP协议支持的服务器,实现数据查询和结构探索功能。

PostgreSQL MCP Server

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

目录

  • 概述
  • 功能
  • 要求
  • 安装
  • 使用
    • 基本用法
    • 与 Claude Desktop 集成
    • 配置文件位置
  • 可用工具
    • execute_query
    • list_tables
    • get_table_schema
    • filter_instances
    • get_database_stats
  • 安全注意事项
  • Claude 中的交互示例
  • 故障排除
  • 联系

概述

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

功能

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

要求

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

安装

  1. 克隆此仓库或下载源代码
  1. 创建虚拟环境(推荐)
  1. 安装所需的包:

使用

基本用法

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

与 Claude Desktop 集成

要与 Claude Desktop 集成,请将以下配置添加到 Claude Desktop 配置文件中:
添加或修改上述配置文件后,请确保通过强制退出重新启动 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 后,您可以提出以下问题:
  • "数据库中有哪些表?"
  • "显示 customers 表的模式"
  • "orders 表中有多少条记录?"
  • "数据库的总大小是多少?"
!输出
Claude 将使用适当的 MCP 工具通过查询您的 PostgreSQL 数据库来回答这些问题。

故障排除

  • 如果连接失败,请验证您的 PostgreSQL 连接字符串是否正确
  • 检查您的 PostgreSQL 服务器是否允许从客户端机器连接
  • 未找到服务器:确保配置文件中的路径正确且为绝对路径
    • 通过运行 where python 使用绝对路径
      例如,"command": "python" 应写为 "command": "/Users/username/miniconda3/bin/python"
  • 权限问题:确保 Claude Desktop 应用程序有权执行脚本
  • 服务器崩溃:检查服务器日志中的错误,并确保所有依赖项都已安装

联系

如有问题,请在本仓库中提交 issue。
上一篇
Travel_itinerary
下一篇
Web-Scraping-Agent-with-N8N-and-MCP-Server