d#ComfyUI MCP服务器
用于ComfyUI的有状态模型上下文协议(MCP)服务器,使用Cloudflare Workers和持久对象构建。
特性
- 状态作业管理:使用持久存储跟踪提交的工作流
- 工作流提交:提交带有可选提示自定义的ComfyUI工作流
- 作业状态跟踪:检查已提交作业的状态并检索结果
- 作业历史记录:查看当前会话中提交的所有作业
- 健康监测:检查ComfyUI服务器连接
先决条件
- Node.js 18+和npm
- Cloudflare帐户(用于部署)
- 正在运行ComfyUI实例
- 牧马人CLI(
npm install -g wrangler)
设置
- 安装依赖项:
npm install- 配置环境:
- 复制 .dev.vars.example 向 .dev.vars - 更新 COMFYUI_URL 使用您的ComfyUI实例URL
- 更新工作流模板:
- 编辑 src/mcp-do.ts 并替换 DEFAULT_WORKFLOW 使用您的实际ComfyUI工作流JSON - 确保工作流具有用于提示文本的适当输入节点
发展
运行开发服务器:
npm run dev服务器将在以下时间可用 http://localhost:8787
检验员快速测试:
npm run inspect # Opens web inspector
npm run inspect:cli # Tests tools via CLIMCP检验员测试
这 MCP检查员 是MCP服务器的官方可视化测试工具。
选项1:Web检查器(UI模式)
最适合开发过程中的交互式测试和调试:
- 访问 https://mcp-inspector.mcp-servers.com/
- 请输入您的服务器URL:
http://localhost:8787/mcp(流式Http传输) - 点击“连接”
您还可以使用查询参数进行初始配置:
http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:8787/mcp选项2:CLI检查器
最适合脚本编写、自动化和快速开发反馈循环:
# Interactive UI mode (opens browser)
npx @modelcontextprotocol/inspector http://localhost:8787/mcp
# CLI mode for programmatic access
npx @modelcontextprotocol/inspector --cli http://localhost:8787/mcp --method tools/list
# Call a specific tool
npx @modelcontextprotocol/inspector --cli http://localhost:8787/mcp --method tools/call --tool-name submitWorkflow --tool-arg prompt="beautiful sunset"运输类型
此服务器使用 流式HTTP 默认运输。检查员还支持:
- 标准输入输出:用于本地流程
- SSE:旧服务器发送的事件(支持向后兼容性)
- 流式HTTP:基于HTTP的传输(默认)
可用的测试工具
submitWorkflow-提交带有可选提示的新工作流getJobStatus-检查已提交作业的状态getJobHistory-列出此会话中最近的作业healthCheck-验证ComfyUI服务器连接
检查器配置
检查器支持各种环境变量进行配置:
MCP_SERVER_REQUEST_TIMEOUT:请求超时(毫秒)(默认值:10000)MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS:重置进度通知的超时(默认值:true)MCP_REQUEST_MAX_TOTAL_TIMEOUT:请求的最大总超时时间(默认值:60000)
有关检查器的全面使用,请参阅 检查员_GUIDE.md
部署
本地ComfyUI实例
- 设置生产秘密:
wrangler secret put COMFYUI_URL
# Enter: http://your-local-ip:8188- 部署到Cloudflare:
npm run deploy云ComfyUI实例(谷歌云/AWS/等)
关键: Cloudflare Workers要求外部请求使用HTTPS。ComfyUI默认在HTTP上运行,因此您需要HTTPS终止。
网络要求:
- 静态ip地址 (可靠连接所需)
- HTTPS端点 (Cloudflare Workers无法发出HTTP请求)
- 无身份验证障碍 对于HTTP请求
什么有效:
- ✅ 具有静态IP的专用计算实例(Google Workbench、AWS EC2等)
- ✅ 具有适当网络配置的虚拟机
- ✅ 具有公共IP的自托管服务器
什么不起作用:
- ❌ 动态IP服务(谷歌Colab、临时笔记本电脑)
- ❌ 需要身份验证令牌进行基本HTTP访问的服务
- ❌ 具有代理URL和网络限制的云笔记本服务
选项1:Cloudflare隧道(推荐-免费和简单)
快速设置:
# On your cloud instance
curl -L https://github.com/cloudflare/cloudflare/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# Login and create tunnel
cloudflared tunnel login
cloudflared tunnel create comfyui
# Start tunnel (creates HTTPS endpoint automatically)
cloudflared tunnel --url http://localhost:8188这为您提供了一个免费的HTTPS URL,例如: https://random-words-123.trycloudflare.com
启动ComfyUI:
python main.py --listen 0.0.0.0 --port 8188更新机密:
wrangler secret put COMFYUI_URL
# Enter: https://your-tunnel-url.trycloudflare.com选项2:自定义域+反向代理(永久解决方案)
如果您有域名,请使用Caddy进行自动HTTPS:
# Install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
# Configure Caddyfile
echo "comfyui.yourdomain.com {
reverse_proxy localhost:8188
}" | sudo tee /etc/caddy/Caddyfile
sudo systemctl reload caddy选项3:手动HTTPS设置(高级)
如果您更喜欢手动配置:
- 静态IP+防火墙:
# Google Cloud example
gcloud compute addresses create comfyui-static-ip --region=your-region
gcloud compute firewall-rules create allow-https-comfyui \
--allow tcp:443,tcp:80 \
--source-ranges="0.0.0.0/0" \
--target-tags=comfyui-server- Nginx+让我们加密:
sudo apt install nginx certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com为什么需要HTTPS: Cloudflare Workers执行安全策略,阻止对外部服务的纯HTTP请求。您看到的403 Forbidden错误是由于此HTTP限制造成的。
可用工具
提交工作流
将工作流提交给ComfyUI进行处理。
- 参数:
- prompt (可选):在工作流中使用的文本提示
获取作业状态
检查已提交作业的状态。
- 参数:
- prompt_id:从submitWorkflow返回的ID
获取工作历史记录
检索此会话中提交的作业列表。
- 参数:
- limit (可选):要返回的最大作业数(默认值:10)
健康检查
检查ComfyUI服务器是否可访问且运行正常。
建筑
此服务器遵循推荐的Cloudflare MCP架构:
src/index.ts:将请求转发到持久对象的简单路由器src/mcp-do.ts:持久对象,包含所有MCP逻辑和状态管理- 用途
this.state.storage用于持久作业存储 - 使用Zod实现正确的错误处理和输入验证
安全
- 所有工具输入都使用Zod模式进行验证
- 环境变量用于敏感配置
- 对错误消息进行净化,以防止信息泄露
- CORS对基于浏览器的客户端进行了适当的处理
开发工作流程
- 从以下位置创建要素分支
main - 按照现有模式进行更改
- 格式代码:
npm run format - 使用MCP检查员进行测试
- 使用常规消息提交(feat:、fix:等)
- 打开拉取请求以供审核
