使用说明
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代码中打开
- 在Visual Studio代码中打开此项目
- 出现提示时,单击“在容器中重新打开”或使用命令面板(Ctrl+Shift+P)并选择“开发容器:在容器中再次打开”
- VS Code将构建开发容器并安装所有必要的依赖项
- 一旦容器准备就绪,您就可以在隔离的环境中开始开发。
-
再进行
在开发容器中,使用uv安装项目依赖关系:
uv pip install -r pyproject.toml -
运行应用程序
设置环境变量后,您可以运行应用程序:
python main.py
进行更改
如果对依赖项或Dockerfile进行更改:
- 使用
Ctrl+Shift+PVS代码 - 选择“开发容器:重建容器"
- 这将使用您的更改重建容器
集装箱包括:
- Python 3.11与必要的依赖关系
- 用于快速解析依赖关系的uv包管理器
- MCP客户端开发所需的所有Python包