Token导航 LogoToken导航TokenDH.com
Comfyui MCP (comfyui-mcp) logo
设计创作stdio官方级别未说明来源级核验

Comfyui MCP (comfyui-mcp)

MCP Server

为ComfyUI提供全面的工作流自动化、管理和图像生成功能的服务器。

工具数

0

提示词数

0

GitHub Stars

10

资源数

0
工作流自动化PythonClaude开发工具Claude

安装说明

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

作者 / 组织

IO-AtelierTech

提供方

IO-AtelierTech

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

uvx comfyui-easy-mcp

详细介绍

Comfy MCP服务器

](https://smithery.ai/server/@lalanikarim/comfyui-mcp)

MCP服务器,用于全面的ComfyUI工作流自动化、管理和图像生成。

概述

此服务器为Claude Code(和其他MCP客户端)提供对ComfyUI功能的完全访问权限:

  • 系统监控:检查服务器运行状况、队列状态和历史记录
  • 工作流执行:运行已保存的工作流或执行自定义工作流字典
  • 工作流管理:创建、修改、保存和验证工作流
  • 节点发现:列出可用节点、模型及其参数
  • 图像生成:简单的基于提示的生成或完整的工作流控制

主要特点

✅ 架构验证的工作流

所有生成的工作流都会根据 ComfyUI v0.4工作流模式,确保兼容性和正确执行。不再有无效的工作流错误。

🎨 美观的视觉布局

程序化生成的工作流 相干节点位置 具有适当的间距和对齐。内置的布局引擎可以生成无棱角、专业外观的工作流,这些工作流易于在ComfyUI编辑器中阅读和修改。

技术:使用基于图的布局算法(NetworkX)自动定位节点,从程序化工作流生成中消除了典型的意大利面条图。

先决条件

  • 紫外线 -Python包管理器
  • 正在运行ComfyUI服务器(本地或远程)
  • 从ComfyUI导出的工作流文件(API格式)

安装

通过PyPI(推荐)

# Run directly with uvx
uvx comfyui-easy-mcp

# Or install globally
uv pip install comfyui-easy-mcp

来自源头

git clone https://github.com/IO-AtelierTech/comfyui-mcp.git
cd comfyui-mcp
uv sync

配置

环境变量

变量必填默认描述
COMFY_URL没有http://localhost:8188安慰服务器URL
COMFY_URL_EXTERNAL与COMFY_URL相同用于图像检索的外部URL
COMFY_WORKFLOWS_DIR没有-API格式工作流的目录(执行)
COMFY_WORKFLOWS_UI_DIR-UI格式工作流目录(编辑器)
COMFY_WORKFLOW_JSON_FILE-默认工作流文件 generate_image
PROMPT_NODE_ID-默认提示节点ID generate_image
OUTPUT_NODE_ID-默认输出节点ID
OUTPUT_MODE没有file输出模式: file (图片)或 url (字符串URL)
POLL_TIMEOUT没有60等待工作流的最长时间(1-300)
POLL_INTERVAL没有1.0状态轮询之间的秒数(0.1-10.0)

配置示例

export COMFY_URL=http://localhost:8188
export COMFY_WORKFLOWS_DIR=/path/to/workflows-api      # API format for execution
export COMFY_WORKFLOWS_UI_DIR=/path/to/workflows-ui    # UI format for editor
export COMFY_WORKFLOW_JSON_FILE=/path/to/workflows-api/default.json
export PROMPT_NODE_ID=6
export OUTPUT_NODE_ID=9
export OUTPUT_MODE=file

Claude桌面配置

{
  "mcpServers": {
    "ComfyUI": {
      "command": "uvx",
      "args": ["comfyui-easy-mcp"],
      "env": {
        "COMFY_URL": "http://localhost:8188",
        "COMFY_WORKFLOWS_DIR": "/path/to/workflows-api",
        "COMFY_WORKFLOWS_UI_DIR": "/path/to/workflows-ui",
        "COMFY_WORKFLOW_JSON_FILE": "/path/to/workflows-api/default.json",
        "PROMPT_NODE_ID": "6",
        "OUTPUT_NODE_ID": "9"
      }
    }
  }
}

或者使用预先配置的 .mcp.json安慰的.

可用工具

系统工具

工具说明
get_system_stats()获取ComfyUI服务器运行状况:版本、内存、设备信息
get_queue_status()获取当前队列:正在运行和挂起的作业
get_history(limit=10)获取最近一代历史记录(1-100个条目)
cancel_current(prompt_id=None)中断电流生成
clear_queue(delete_ids=None)清除队列或删除特定项目

发现工具

工具说明
list_nodes(filter=None)列出可用的ComfyUI节点(可选筛选器)
get_node_info(node_name)获取详细的节点信息:输入、输出、参数
search_nodes(query)按名称、类型或类别搜索节点
list_models(folder="checkpoints")在文件夹中列出模型
list_model_folders()列出可用的模型文件夹类型
list_embeddings()列出可用嵌入
list_extensions()列出加载的扩展(自定义节点包)
refresh_nodes()从ComfyUI刷新缓存节点列表

工作流管理工具

工具说明
list_workflows()列出可用的工作流文件
load_workflow(workflow_name)从文件加载工作流
save_workflow(workflow, name, format="ui")保存工作流(格式:“api”或“ui”)
create_workflow()创建空工作流结构
add_node(workflow, node_id, class_type, inputs)向工作流添加节点
remove_node(workflow, node_id)从工作流中删除节点
update_node_input(workflow, node_id, input_name, value)更新节点的输入
validate_workflow(workflow)验证工作流结构和节点类型
convert_workflow_to_ui(workflow)将API格式转换为UI/Litegraph格式
list_templates()列出可用的工作流模板
get_workflow_template(template_name)获取预构建的工作流模板
generate_workflow_name(words=2)生成随机有趣的工作流名称

执行工具

工具说明
generate_image(prompt)使用默认工作流生成图像(简单界面)
run_workflow(workflow_name, inputs=None, output_node_id=None)执行已保存的工作流文件
execute_workflow(workflow, output_node_id)执行任意工作流字典
submit_workflow(workflow)无需等待即可提交工作流(返回prompt_id)
get_prompt_status(prompt_id)获取已提交提示的状态
get_result_image(prompt_id, output_node_id)从完成的提示中获取结果图像

工作流格式

ComfyUI使用两种工作流格式。理解差异至关重要:

格式结构用例目录
API{"node_id": {"class_type": "...", "inputs": {...}}}MCP执行、自动化workflows-api/
用户界面{"nodes": [...], "links": [...], "version": ...}仅限ComfyUI编辑器workflows-ui/

重要:

  • API格式 工作流可以通过MCP执行(run_workflow(), execute_workflow())
  • UI格式 工作流用于在ComfyUI web编辑器中加载/编辑
  • 如果您尝试执行UI格式工作流,MCP服务器将拒绝并返回错误

格式检测

服务器通过检查以下内容自动检测格式 "nodes""version" 按键(UI格式)vs "class_type" 密钥(API格式)。

创建、验证和保存工作流

推荐的工作流程

# 1. CREATE: Start with empty workflow or template
wf = create_workflow()
# Or use a template:
wf = get_workflow_template("fal-flux-dev")

# 2. BUILD: Add nodes with explicit connections
wf = add_node(wf, "1", "LoadImage", {"image": "input.jpg"})
wf = add_node(wf, "2", "LumaImageToVideoNode", {
    "prompt": "smooth camera motion",
    "model": "ray-2",
    "first_image": ["1", 0],  # Connect to node "1", output index 0
    "resolution": "1080p",
    "duration": "5s"
})
wf = add_node(wf, "3", "SaveVideo_fal", {
    "videos": ["2", 0],
    "filename_prefix": "output"
})

# 3. VALIDATE: Check structure and node types before saving
validation = validate_workflow(wf)
# Returns: {"valid": true/false, "errors": [...], "warnings": [...]}

# 4. SAVE: Choose format based on purpose
# For MCP execution (API format):
save_workflow(wf, "my-workflow", format="api")  # → workflows-api/my-workflow.json

# For ComfyUI editor (UI format):
save_workflow(wf, "my-workflow", format="ui")   # → workflows-ui/my-workflow.json

节点连接

连接使用以下格式 ["source_node_id", output_index]:

# Connect node "1" output slot 0 to this input
wf = add_node(wf, "2", "CLIPTextEncode", {
    "text": "my prompt",
    "clip": ["1", 0]  # ← Connection to node "1", first output
})

发现节点参数

在添加节点之前,请检查其所需的输入:

# Find available nodes
nodes = list_nodes(filter="Luma")  # → ["LumaImageToVideoNode", ...]

# Get node details
info = get_node_info("LumaImageToVideoNode")
# Returns:
# {
#   "input": {
#     "required": {
#       "prompt": ["STRING", {...}],
#       "model": [["ray-2", "ray-flash-2"], {...}],
#       "first_image": ["IMAGE"],
#       ...
#     },
#     "optional": {...}
#   },
#   "output": ["VIDEO"],
#   ...
# }

验证错误

常见验证问题:

错误原因修复
Unknown node type节点类不存在使用 list_nodes() 查找正确的名称
Missing required input未提供所需输入检查 get_node_info() 用于所需的输入
Invalid connection源节点/输出不存在验证节点ID和输出索引
UI format detected正在尝试执行UI格式使用API格式或从ComfyUI重新导出

使用示例

简单图像生成

# Using default workflow configuration
result = generate_image("a cyberpunk city at sunset")

运行命名工作流

# Execute saved workflow with custom inputs
result = run_workflow(
    "flux-dev.json",
    inputs={"6": {"text": "a forest landscape"}},
    output_node_id="9"
)

构建和执行自定义工作流

# 1. Create empty workflow
wf = create_workflow()

# 2. Add nodes
wf = add_node(wf, "1", "CheckpointLoaderSimple", {
    "ckpt_name": "flux-dev.safetensors"
})
wf = add_node(wf, "2", "CLIPTextEncode", {
    "text": "beautiful sunset over mountains",
    "clip": ["1", 1]  # Connect to checkpoint's CLIP output
})
wf = add_node(wf, "3", "KSampler", {
    "model": ["1", 0],
    "positive": ["2", 0],
    # ... other inputs
})

# 3. Validate before execution
validation = validate_workflow(wf)
if not validation.get("valid"):
    print(f"Errors: {validation.get('errors')}")

# 4. Execute
result = execute_workflow(wf, output_node_id="9")

异步工作流提交

# Submit without waiting
submission = submit_workflow(workflow)
prompt_id = submission["prompt_id"]

# Check status later
status = get_prompt_status(prompt_id)

# Get result when ready
if status["completed"]:
    image = get_result_image(prompt_id, "9")

发现可用节点

# List all fal.ai nodes
nodes = list_nodes(filter="fal")

# Get details about a specific node
info = get_node_info("RemoteCheckpointLoader_fal")

使用fal.ai连接器

ComfyUI假连接器 通过fal.ai启用云GPU推理。

# 1. Verify fal.ai extension is loaded
extensions = list_extensions()
# Should include "ComfyUI-fal-Connector"

# 2. List available fal.ai nodes
fal_nodes = list_nodes(filter="fal")
# Returns: ["RemoteCheckpointLoader_fal", "StringInput_fal", "SaveImage_fal", ...]

# 3. Get node details
info = get_node_info("RemoteCheckpointLoader_fal")
# Shows available checkpoints: flux-dev, flux-schnell, sd3.5-large, etc.

# 4. Build a fal.ai workflow
wf = create_workflow()
wf = add_node(wf, "1", "RemoteCheckpointLoader_fal", {
    "ckpt_name": "flux-dev"
})
wf = add_node(wf, "2", "StringInput_fal", {
    "text": "a futuristic city at sunset, cyberpunk style"
})
wf = add_node(wf, "3", "CLIPTextEncode", {
    "text": ["2", 0],
    "clip": ["1", 1]
})
# ... add sampler, VAE decode, save image nodes

# 5. Execute on fal.ai cloud GPUs
result = execute_workflow(wf, output_node_id="9")

环境设置:

export FAL_KEY=your-fal-api-key

建筑

comfy_mcp_server/
├── __init__.py      # Entry point, FastMCP server
├── api.py           # HTTP helpers, ComfyUI API functions
├── models.py        # Pydantic models for type safety
├── settings.py      # Configuration with pydantic-settings
├── compat.py        # Version compatibility layer
└── tools/           # MCP tool implementations
    ├── system.py    # System monitoring tools
    ├── discovery.py # Node/model discovery
    ├── workflow.py  # Workflow management
    └── execution.py # Workflow execution

发展

# Install dev dependencies
uv sync --all-extras

# Run linting
uv run ruff check src/

# Run tests (requires running ComfyUI)
uv run pytest tests/

# Format code
uv run ruff format src/

ComfyUI API覆盖范围

目标: ComfyUI 0.3.x - 0.4.x 版本

API端点方法描述状态
/promptPOST提交工作流以供执行✅ 已执行
/queueGET查看正在运行/挂起的作业✅ 已执行
/queuePOST清除队列/删除项目✅ 已执行
/historyGET查看生成历史记录✅ 已执行
/history/{id}GET获取具体作业结果✅ 已执行
/historyPOST删除历史记录条目⚠️ 部分
/interruptPOST停止当前一代✅ 已执行
/object_infoGET列出所有可用节点✅ 已执行
/object_info/{node}GET获取节点参数/输入✅ 已执行
/modelsGET列出模型文件夹✅ 已执行
/models/{folder}GET列出文件夹中的模型✅ 已执行
/system_statsGET服务器运行状况/资源✅ 已执行
/viewGET检索生成的图像✅ 已执行
/embeddingsGET列出可用嵌入✅ 已执行
/extensionsGET列出已加载的扩展名✅ 已执行
/upload/imagePOST上传工作流图像❌ 未实施
/upload/maskPOST上传修复掩码❌ 未实施
/freePOST可用VRAM/内存❌ 未实施
/api/userdata/*\*用户数据管理❌ 未实施

实现说明

  • 部分的:历史删除未完全作为工具公开
  • 未实现:图像/掩码上传、内存管理和用户数据API计划在未来发布

兼容性

  • MCP服务器版本: 0.2.0
  • 最小ComfyUI: 0.3.0
  • 最大测试ComfyUI:0.4.x
  • python: 3.10+

该服务器包含一个兼容层,用于处理ComfyUI版本之间的API差异,并提供优雅的降级。

许可证

MIT许可证-请参阅 许可证 文件。

学分

最初分叉自 @拉兰尼卡里姆/康菲尤伊mcp.

目录标签

目录标签

工作流自动化PythonClaude开发工具本地部署图像生成节点管理AI模型集成

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP