MCP服务器数据库自动化工具

一个实验性项目,展示如何通过MCP服务器桥接AI客户端、数据库和工作流自动化,实现自然语言驱动的数据库查询和AI自动化工作流。

  • by SachdevaVansh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SachdevaVansh/MCP_Server_n8n_

使用说明

MCP服务器+NeonDB+n8n集成

一个小型实验项目,学习和演示模型上下文协议(MCP)服务器如何连接AI客户端、数据库和工作流自动化。

🎯 这个项目做什么

提供了一个基于Python的MCP服务器,该服务器公开了与NeonDB上托管的PostgreSQL数据库交互的工具。

通过服务器,支持MCP的客户端(例如Claude Desktop)可以通过自然语言工具调用运行SQL查询。

使用ngrok,可以通过公共URL公开本地MCP服务器,从而实现外部访问。

允许与n8n集成——工作流可以调用MCP服务器与数据库交互,实现人工智能驱动的自动化。

共同:人工智能(克劳德桌面)⇄ MCP服务器⇄ NeonDB——以及将n8n个工作流连接到同一服务器的选项。

✅ 特性

🐍 Python MCP服务器——依赖性最小,易于运行。

使用NeonDB作为云PostgreSQL,因此不需要本地数据库设置。

通过MCP工具进行自然语言驱动的数据库查询。

通过ngrok公开展示远程工作流/集成。

通过n8n+MCP支持工作流自动化,实现复杂的流水线或触发作业。

📦 设置和使用

  1. 先决条件

Python(版本如.Python版本或您的环境中指定的版本)

NeonDB(PostgreSQL)数据库——凭据和连接详细信息

ngrok(可选,供公众曝光)

n8n(可选,用于工作流自动化)

具有MCP功能的客户端(例如Claude Desktop)

  1. 入门指南

克隆仓库

git clone https://github.com/SachdevaVansh/MCP_Server_n8n_.git
cd MCP_Server_n8n_

安装依赖项(如果使用依赖项管理器/虚拟环境)

pip install -r requirements.txt   # or equivalent

运行MCP服务器

python postgresql.py
  1. 配置与NeonDB的连接

使用您的NeonDB凭据/连接字符串更新配置(或环境变量),以便服务器可以连接到数据库。

  1. (可选)使用ngrok公开服务器
ngrok http 8000   # or whichever port your MCP server listens on

注意生成的公共URL——您可以使用此URL从远程客户端或n8n工作流进行连接。

  1. 以MCP客户端身份连接Claude Desktop
  • 打开克劳德桌面→ 在设置中添加MCP服务器

  • 提供命令/config来运行您的服务器(或指向公共ngrok URL)

  • 然后,您可以发出自然语言查询,如:

  • “列出过去7天内创建的用户。”

  • “获取金额>1000的销售记录。”

  • “使用…在订单表中添加新行”

  1. 与n8n集成(可选)
  • 使用ngrok公共URL(或本地服务器URL,如果在同一网络内)作为来自n8n的MCP呼叫的端点

  • 创建n8n工作流以触发数据库查询、数据检索、更新——由事件、时间表、Webhook或AI指令驱动

🧠 你学到了什么/为什么重要

  • 了解MCP服务器如何公开工具和处理请求的机制。

  • MCP客户端(如Claude Desktop)如何与服务器通信,以及工具调用如何在结构化模式而不是原始代码中工作。

  • 如何以受控和安全的方式授予人工智能模型数据库访问权限(PostgreSQL通过NeonDB)。

  • 如何将本地服务器安全地暴露在外部(通过ngrok)以实现自动化或远程访问。

  • 如何将AI、数据库和自动化工具(n8n)连接在一起——这是构建“代理AI+自动化”工作流程的实用基础。

⚠️ 安全和使用注意事项

  • 通过ngrok公开暴露MCP服务器时要小心——限制访问,验证输入,避免在没有保护措施的生产数据库上运行。

  • 不允许来自不受信任的用户/代理的任意SQL查询——考虑净化输入或限制暴露的模式/工具。

  • 如果您扩展项目(例如处理插入/更新),请确保您实现了正确的模式验证和权限。

  • 安全地对待任何凭证(数据库,n8n API密钥)-不要硬编码它们;使用环境变量或安全配置管理。

✨ 未来的改进/想法

  • 添加工具级抽象(例如“get_user_by_email”、“create_order”)而不是原始SQL——更安全、更健壮。

  • 添加对参数化查询的支持,以防止SQL注入。

  • 添加工具调用和数据库更改的日志记录/审计跟踪。

  • 扩展服务器以处理更复杂的工作流——连接、事务、批处理操作等。

  • 提供示例n8n工作流来说明常见用例(报告、警报、数据同步)。

  • 添加自动化测试。