Token导航 LogoToken导航TokenDH.com
MCP postgresql logo
数据服务stdio官方级别未说明来源级核验

MCP postgresql

MCP Server

通过自然语言查询PostgreSQL数据库的工具,利用LangChain和Google Gemini自动生成并执行SQL查询。

工具数

7

提示词数

0

GitHub Stars

1

资源数

0
自然语言处理数据分析PostgreSQLClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

anass1209

提供方

anass1209

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

智能PostgreSQL MCP客户端

该项目使用LangChain和Google Gemini在PostgreSQL的模型上下文协议(MCP)服务器和大型语言模型(LLM)之间提供了强大的集成。它支持PostgreSQL数据库的自然语言查询,具有智能SQL生成功能。

概述

智能PostgreSQL MCP客户端允许用户使用自然语言与PostgreSQL数据库进行交互。用户可以用简单的英语提问,而不是编写复杂的SQL查询,系统将自动生成并执行适当的SQL查询来检索所请求的信息。

主要优势:

  • 简化数据库访问:使用自然语言查询数据库
  • 智能查询生成:自动将问题转换为优化的SQL
  • 灵活的部署选项:通过命令行使用或与MCP兼容的IDE集成
  • 提高生产率:减少编写和调试SQL查询所花费的时间

入门指南

克隆和访问项目

  1. 克隆存储库:
   git clone https://github.com/anass1209/MCP_PostgreSQL.git
  1. 导航到项目目录:
   cd MCP_PostgreSQL

再进行

您可以使用Poetry(推荐)、pip或UV安装依赖关系:

使用诗歌:

poetry install

使用pip:

pip install -r requirements.txt

使用紫外线:

uv pip install -r requirements.txt

关于MCP

MCP(模型上下文协议)是一种协议,它使人工智能模型能够安全、受控地访问外部资源。在这个项目中,它为LLM提供了一种标准化的方式来与PostgreSQL数据库交互,同时保持安全性和适当的访问控制。

使用MCP的好处:

  • 安全:数据库资源的受控访问
  • 标准化:AI模型与数据库交互的一致界面
  • 可扩展性:易于添加新功能和工具
  • 互操作性:适用于各种LLM和数据库系统

项目结构

此存储库包含两个主要实现:

1.带_CMD

如果要通过命令行或LCI与MCP服务器交互,请使用此文件夹:

  • client.py:使用LLM连接到MCP服务器的客户端应用程序
  • server.py:MCP服务器实现
  • config.py:数据库连接和API密钥的配置设置
  • db.py:数据库连接和管理实用程序
  • sql_tools.py:SQL查询工具和实用程序
  • prompts.py:LLM提示智能SQL生成
  • .env:API键和数据库配置的环境变量

2.与IDE_MCP集成

如果您想与Claude Desktop等MCP兼容的IDE集成,请使用此文件夹:

  • intelligent_server.py:MCP服务器,通过智能SQL生成公开PostgreSQL功能
  • intelligent_server.bat:启动智能MCP服务器的批处理脚本
  • config.py:数据库连接和API密钥的配置设置
  • db.py:数据库连接和管理实用程序
  • sql_tools.py:SQL查询工具和实用程序
  • prompts.py:LLM提示智能SQL生成
  • .env:API键和数据库配置的环境变量

公用文件

  • pyproject.toml:诗歌依赖关系管理文件
  • poetry.lock:锁定诗歌依赖项的文件

用法

先决条件

  1. 确保PostgreSQL正在运行,并且可以使用配置中定义的连接参数进行访问。
  1. 在中设置环境变量 .env 文件:
   GOOGLE_API_KEY="your-gemini-api-key"
   PG_HOST="localhost"
   PG_PORT=
   PG_USER=""
   PG_PASSWORD=""
   PG_DEFAULT_DB=""

选项1:使用命令行界面(带_CMD文件夹)

  1. 导航到With_CMD文件夹:
   cd With_CMD
  1. 使用特定问题运行客户端:
   python client.py "What tables are in the Candidat_DB database?"

或者没有交互模式的论据:

   python client.py

然后在提示时输入您的问题。

With_CMD用法示例

Command Line Interface Example Command Line Interface Example

*上图显示了使用命令行界面查询PostgreSQL数据库的示例。用户用自然语言提问,系统生成并执行适当的SQL查询以检索所请求的信息。*

选项2:使用MCP兼容IDE(Integret_with_IDE_MCP文件夹)

  1. 导航到Integret_with_IDE_MCP文件夹:
   cd Integret_with_IDE_MCP
  1. 配置IDE以连接到MCP服务器:

将此JSON配置添加到IDE的MCP设置中:

   {
     "mcpServers": {
       "intelligent-postgres": {
         "command": "Path to intelligent_server.bat",
         "args": [],
         "cwd": "Path to the MCP_Test folder",
         "env": {
           "PG_HOST": "localhost",
           "PG_PORT": "5432",
           "PG_USER": "Your database username",
           "PG_PASSWORD": "Your database password",
           "PG_DEFAULT_DB": "Your default database",
           "GOOGLE_API_KEY": "Your API key",
           "PYTHONIOENCODING": "utf-8",
           "PYTHONUNBUFFERED": "1"
         }
       }
     }
   }
  1. 更新 intelligent_server.bat 如果需要:

- 如果使用UV,请更换 poetry run python intelligent_server.py 在.bat文件中 uv run python intelligent_server.py 必要时使用绝对路径

  1. 将此任务添加到IDE中,然后重新启动以激活新的MCP“Intelligent postgres”

客户端将自动连接到MCP服务器,通过此服务器访问PostgreSQL,并使用LLM回答有关数据库的问题。

IDE MCP集成示例

Command Line Interface Example Command Line Interface Example Command Line Interface Example

*上图演示了如何通过MCP兼容的IDE使用自然语言查询与PostgreSQL数据库进行交互。IDE提供了一个无缝的界面,可以直接在您的开发环境中提问和接收格式化的结果。*

查询的最佳实践

  • 指定数据库和表:当您有多个数据库和表时,请始终在查询中指定数据库和表,以获得更准确的结果。例如:
  Which employees are managers and have no manager themselves? use Candidates_DB and employees table
  • 具体:提供清晰、具体的问题,包括您要查找的数据的所有相关信息。
  • 包括上下文:如果可能,请包含有关您正在查询的数据结构或关系的上下文。

技术要求

依赖项

  • Python 3.11+
  • PostgreSQL数据库服务器
  • Python包:

- psycopg2二进制文件:PostgreSQL数据库适配器 - fastmcp:快速MCP服务器实现 - mcp:模型上下文协议核心库 - langchain mcp适配器:用于mcp的langchain适配器 - langgraph:基于图形的工作流管理 - langchain谷歌genai:谷歌双子座集成langchain

主要特点

  • 智能SQL生成MCP服务器包括智能工具,可以根据自然语言问题自动生成优化的SQL查询。
  • 多步数据库分析:逐步进行数据库发现、表选择、模式分析和查询生成,以进行全面的数据探索。
  • 错误处理:强大的错误处理,具有自动查询更正和重试机制,可实现可靠操作。
  • LLM集成:与Google Gemini无缝集成,实现高级自然语言理解。
  • 双重实施:根据您的工作流首选项,在命令行界面或IDE集成之间进行选择。
  • 开发者友好:结构良好的代码库,关注点明确分离,文档全面。

贡献

  • 如果您有任何错误修复或改进,请提交拉取请求或打开问题!
  • 遵循现有的代码样式,并对新功能进行适当的测试。
  • 对于重大更改,请先打开一个问题来讨论您想要更改的内容。

获取API密钥

  • Google Gemini API密钥:https://aistudio.google.com/apikey

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

MCP服务器工具

智能MCP服务器提供以下工具:

  • list_databases:列出所有可用数据库
  • list_tables:列出特定数据库中的表
  • describe_table:描述表的模式
  • run_sql:执行安全的SELECT SQL查询
  • sample_data:显示表格中的示例数据
  • Step-by-step analysis tools:(步骤1至步骤9)用于智能查询生成
  • debug_connection:用于测试连接和功能的调试工具

常见问题(FAQ)

我应该使用哪个文件夹?

  • 使用 使用_CMD 如果您想通过命令行或LCI与MCP服务器交互,请使用文件夹。
  • 使用 与IDE_MCP集成 如果您想与Claude Desktop等MCP兼容的IDE集成,请使用文件夹。

如何指定要查询的数据库?

在问题中包括数据库和表名。例如:

Which employees are managers and have no manager themselves? use Candidates_DB and employees table

除了Google Gemini,我还可以使用其他LLM吗?

当前的实现针对Google Gemini进行了优化,但该架构旨在以最小的变化适应其他LLM。

数据库访问有多安全?

MCP协议确保数据库访问受到控制,默认情况下仅限于只读SELECT查询,在LLM和数据库之间提供了一个安全层。该系统实施了多种安全措施,以防止任何破坏性操作:

  1. SQL查询筛选:所有SQL查询都通过正则表达式模式进行过滤,该模式可以阻止潜在的破坏性操作,例如:
   ALTER, CREATE, DELETE, DROP, INSERT, UPDATE, TRUNCATE, GRANT, REVOKE
  1. 错误处理流程:当查询执行过程中发生错误时,系统会尝试更正查询,而不是允许可能有害的操作。
  1. 只读操作:该系统仅设计为执行SELECT语句,确保不会发生数据修改。
  1. 综合录井:出于安全审计和调试目的,记录所有查询尝试。

这些保护措施确保即使语言模型生成了不适当的查询,它也会在到达数据库之前被阻止。

我可以问哪些类型的问题?

你可以问任何可以用PostgreSQL数据库中的数据回答的问题。问题越具体,提供的上下文越多(如数据库和表名),结果就越好。

目录标签

目录标签

自然语言处理数据分析PostgreSQLClaudePython本地部署数据库查询SQL生成LLM集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP