ComfyUI MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_DEBUG | No | Enable debug logging | |
| MCP_LOG_LEVEL | No | Set log level (DEBUG, INFO, WARNING, ERROR) | |
| COMFYUI_SERVER | No | ComfyUI server address | 127.0.0.1:8188 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_workflowA | Read a workflow file and return it as DSL format. Supports both JSON and DSL input files. Automatically detects format and converts JSON to DSL transparently. Args: filepath: Path to workflow file (.json or .dsl) Returns: Workflow content in DSL format Examples: read_workflow("workflows/my_workflow.json") read_workflow("../dsl/examples/dsl/simple.dsl") |
| write_workflowA | Write a workflow to disk. Takes DSL content and writes it to disk. By default, converts to JSON format. Can optionally save as .dsl format directly. Args: filepath: Destination file path dsl: Workflow content in DSL format format: Output format ("json" or "dsl", default: "json") Returns: Status dict with path, size, and format info Examples: write_workflow("workflows/new_workflow.json", dsl_content) write_workflow("workflows/backup.dsl", dsl_content, format="dsl") |
| list_workflowsA | List workflow files in a directory. Discovers workflow files (.json and .dsl) in the specified directory. Supports glob patterns for filtering. Args: directory: Directory to search (default: "workflows") pattern: Glob pattern for filtering (default: "*" for all files) Returns: List of workflow info dicts with name, size, modified time Examples: list_workflows() list_workflows("workflows", "*.json") list_workflows("../dsl/examples/dsl") |
| validate_workflowA | Validate DSL workflow syntax. Parses DSL and checks for syntax errors without executing the workflow. Returns validation status and any errors found. Args: dsl: Workflow content in DSL format Returns: Validation result with is_valid, errors, and warnings Examples: validate_workflow(dsl_content) |
| get_workflow_infoB | Analyze workflow structure and return metadata. Parses DSL and extracts structural information like node types, sections, and connections without executing the workflow. Args: dsl: Workflow content in DSL format Returns: Workflow metadata including nodes, sections, and connections Examples: get_workflow_info(dsl_content) |
| list_templatesA | List available workflow templates. Discover workflow templates by category, difficulty, or tags. Templates provide ready-to-use workflows for common use cases. Args: category: Filter by category (Generation, Enhancement, Editing, etc.) difficulty: Filter by difficulty (beginner, intermediate, advanced) tag: Filter by tag (text2img, inpainting, controlnet, etc.) Returns: List of template metadata with names, descriptions, and parameters Examples: list_templates() list_templates(category="Generation") list_templates(difficulty="beginner") list_templates(tag="text2img") |
| get_templateA | Get detailed information about a specific template. Retrieves complete template information including parameters, requirements, and DSL preview. Args: template_name: Name of the template to retrieve Returns: Template details with parameters and DSL preview Examples: get_template("text2img_basic") get_template("controlnet_pose") |
| generate_from_templateA | Generate a workflow from a template with custom parameters. Creates a complete DSL workflow by substituting parameters into the template. Optionally saves to file. Args: template_name: Name of the template to use parameters: Dictionary of parameter values to substitute save_path: Optional path to save the generated workflow Returns: Generated DSL content and validation results Examples: generate_from_template("text2img_basic", {"prompt": "sunset"}) generate_from_template("img2img", {"image_path": "input.png"}, "workflows/my_img2img.dsl") |
| search_templatesB | Search templates by name, description, or tags. Performs fuzzy search across template metadata to find relevant workflow templates. Args: query: Search query (searches name, description, tags) Returns: List of matching templates Examples: search_templates("pose") search_templates("upscaling") search_templates("text to image") |
| validate_template_parametersA | Validate parameters for a template without generating. Checks if provided parameters are valid for the template and returns detailed validation results. Args: template_name: Name of the template parameters: Dictionary of parameters to validate Returns: Validation results with errors and warnings Examples: validate_template_parameters("text2img_basic", {"width": "512"}) |
| sync_official_templatesA | Sync official ComfyUI templates from GitHub. Downloads and processes official workflow templates from the Comfy-Org/workflow_templates repository. Converts them to DSL format for use with the template system. Returns: Sync status with count of successfully processed templates Examples: sync_official_templates() |
| list_official_templatesB | List official ComfyUI templates. Returns templates from the official Comfy-Org repository that have been synced and converted to DSL format. Returns: List of official template metadata Examples: list_official_templates() |
| get_template_dslA | Get DSL content for any template (custom or official). Retrieves the DSL representation of a template, which can then be modified or executed directly. Args: template_name: Name of the template source: Template source ("custom", "official", or "auto") Returns: Template DSL content and metadata Examples: get_template_dsl("text2img_basic") get_template_dsl("openai_dalle_3_text_to_image", "official") |
| execute_workflowA | Execute a DSL workflow on ComfyUI server. Converts DSL to JSON and submits to ComfyUI for execution. Can optionally wait for completion and return results. Args: dsl: Workflow content in DSL format server_address: ComfyUI server address (default: 127.0.0.1:8188) wait_for_completion: Whether to wait for execution to complete timeout_seconds: Maximum time to wait for completion Returns: Execution result with prompt_id, status, and outputs if completed Examples: execute_workflow(dsl_content) execute_workflow(dsl_content, server_address="192.168.1.100:8188") execute_workflow(dsl_content, wait_for_completion=False) |
| get_job_statusA | Get status and results of a ComfyUI job. Checks execution status and optionally downloads generated images. Args: prompt_id: The prompt ID returned by execute_workflow server_address: ComfyUI server address download_images: Whether to download generated images image_save_path: Directory to save images (relative to workflows/) Returns: Job status with completion info and image paths if downloaded Examples: get_job_status("12345-abcde-67890") get_job_status("12345-abcde-67890", download_images=True) |
| list_comfyui_queueA | List current ComfyUI execution queue. Shows running and pending jobs in the ComfyUI queue. Args: server_address: ComfyUI server address Returns: Queue information with running and pending jobs Examples: list_comfyui_queue() list_comfyui_queue("192.168.1.100:8188") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| example_simple | Basic text-to-image workflow example |
| example_flux_kontext | Flux Kontext workflow example (converted from real workflow) |
| template_catalog | Complete template catalog with descriptions and examples |
| template_getting_started | Template usage guide and examples |
| docs_syntax | DSL syntax reference and examples |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/christian-byrne/comfy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server