n8n MCP客户端项目
该项目涉及创建一个基于Python的模型上下文协议(MCP)客户端,该客户端在处理Telegram机器人交互时连接到n8n的MCP服务器触发器。该解决方案取代了n8n中现有的MCP客户端节点,通过直接在Python脚本中管理所有Telegram I/O来避免Telegram触发器冲突。
主要目标是建立一个沟通流程,该流程包括:
Telegram Bot
↓↑
Python MCP Client
↓↑
Local OpenWebUi/OpenRouter
↓↑
(SSE) n8n MCP Server
↓↑
n8n Workflows这种方法允许更好地与本地AI模型集成,同时保持n8n强大的工作流功能。
在深入了解技术细节之前,我们建议查看我们的文档:
先决条件
在开始处理此项目之前,请确保已安装以下内容:
- Docker桌面:容器化和运行开发环境所需
- Visual Studio Code:推荐用于开发的IDE
- 开发容器扩展:支持容器化开发环境的VS代码扩展
- Python 3.11+:用于本地开发和测试(如果不使用容器化环境)
- Git:用于版本控制
该项目在VS Code的Dev Containers扩展的帮助下使用Docker进行开发。开发环境完全容器化,确保不同开发设置之间的一致性。
安装说明
- 克隆存储库
git clone https://github.com/farithadnan/n8n-mcp-client
cd n8n-mcp-client- 在本地设置n8n
在运行MCP客户端之前,您需要通过Docker在本地运行n8n:
# Create a docker network for communication between containers
docker network create n8n-network
# Run n8n with Docker
docker run -it --rm \
--name n8n \
--network n8n-network \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n- 配置环境变量
根据示例在config目录中创建.env文件:
cp config/.env.sample config/.env然后用实际值编辑config/.env:
- TELEGRAM_BOT_TOKEN:您从BotFather获得的Telegram机器人令牌 - OPWEBUI_URL:指向您的OpenWebUI实例的URL(例如。,http://localhost:3000/api/chat) - OPWEBUI_API_KEY:OpenWebUI实例的API密钥 - OPWEBUI_MODEL:要使用的模型(例如,GPT-4、Callam3等) - N8N_WEBHOOK_URL:n8n MCP webhook端点的URL
- 使用Dev容器在VS代码中打开
1. 在Visual Studio代码中打开此项目 1. 出现提示时,单击“在容器中重新打开”或使用命令面板(Ctrl+Shift+P)并选择“开发容器:在容器中再次打开” 1. VS Code将构建开发容器并安装所有必要的依赖项 1. 一旦容器准备就绪,您就可以在隔离的环境中开始开发。
- 再进行
在开发容器中,使用uv安装项目依赖关系:
uv pip install -r pyproject.toml- 运行应用程序
设置环境变量后,您可以运行应用程序:
python main.py进行更改
如果对依赖项或Dockerfile进行更改:
- 使用
Ctrl+Shift+PVS代码 - 选择“开发容器:重建容器"
- 这将使用您的更改重建容器
集装箱包括:
- Python 3.11与必要的依赖关系
- 用于快速解析依赖关系的uv包管理器
- MCP客户端开发所需的所有Python包
