Comfyui MCP vs Replicate MCP Server

A side-by-side look at the Comfyui MCP and Replicate MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Comfyui MCP logoComfyui MCPMultimedia Process · Local subprocess (stdio)MCP server + Claude Code plugin for ComfyUI: run workflows, generate images, manage models & VRAM.64GoodAuth: not declaredReplicate MCP Server logoReplicate MCP ServerMultimedia Process · Local subprocess (stdio)Replicate MCP server - image, video, audio, speech, LLM, vision, upscale, 3D, training. 36 tools.64GoodAuth: api key required

Verdict: choose Comfyui MCP for multimedia process work as a local process; choose Replicate MCP Server for multimedia process as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Comfyui MCP logoChoose Comfyui MCP when

  • You need dedicated capabilities in the Multimedia Process domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like queue, get_system_stats, visualize_workflow.
Explore Comfyui MCP

Replicate MCP Server logoChoose Replicate MCP Server when

  • You need dedicated capabilities in the Multimedia Process domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: REPLICATE_API_TOKEN.
  • You want tools like replicate_generate_image, replicate_generate_video, replicate_generate_audio.
Explore Replicate MCP Server

Feature & specification comparison

Rows where the two servers differ are marked.

SpecComfyui MCP logoComfyui MCPReplicate MCP Server logoReplicate MCP Server
CategoryMultimedia ProcessMultimedia Process
Quality signal64/100 · Good64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredBYOK (pay the provider)
Required env varsNone listedREPLICATE_API_TOKEN
Verified ownerCommunity listingCommunity listing
GitHub stars8554
Directory activity 2 views 0 installs 0 upvotes 3 views 0 installs 0 upvotes
Tools1336

Tools & capabilities

Comfyui MCP tools 13

  • queueOne action-parameterized tool for the execution queue: `list` (running + pending), `status` (one job by prompt ID), `get_workflow` (a pending job's full payload), `move`/`edit` (requeue a pending job front/back, patched or replaced, with a new prompt ID), `cancel` (interrupt the running job — escal…
  • get_system_statsGet system info — GPU, VRAM, Python version, OS
  • visualize_workflowOne action-parameterized tool for rendering and converting a workflow you pass in: `render` (Mermaid flowchart, nodes grouped by category), `render_hierarchical` (the same graph sectioned — overview, one section in detail, a listing, or an AI-oriented summary), `mermaid` (a Mermaid diagram back to…
  • create_workflowOne action-parameterized tool for authoring: `create` (from templates: `txt2img`, `img2img`, `upscale`, `inpaint`, `controlnet`, `ip_adapter`, `ace_step_15`, `stable_audio_3`), `modify` (operations: `set_input`, `add_node`, `remove_node`, `connect`, `insert_between`), `validate` (dry-run — missing…
  • get_workflowOne action-parameterized tool for READING a saved workflow file: `list` (the user library, subfolders included), `get` (one workflow's JSON by filename), `analyze` (a structured summary instead of raw JSON), `query` (filter/traverse/aggregate a big graph without dumping it), `strip` (**de-virtualiz…
  • save_workflowOne action-parameterized tool for WRITING to the library: `save` (store a workflow — overwrites a same-filename file), `lock` (record a provenance lock: SHA-256 per model, git commit per node pack), `verify_lock` (report drift against that lock)
  • upload_imageCopy a local image into ComfyUI's `input/` directory for img2img, inpaint, or ControlNet
  • download_modelFind and fetch model weights, and track the transfers. `action`: `download` (from a URL, into the correct ComfyUI subdirectory), `status`, `cancel`, `search` (HuggingFace), `search_civitai`, `search_creators`, `download_civitai`, `resolve_missing
  • list_local_modelsWhat is installed, and where ComfyUI looks. `action`: `list` (installed models by type: checkpoints, loras, vae, upscale_models, controlnet, embeddings, clip, unet, diffusion_models, text_encoders), `remove` (**deletes a model file**), `embeddings`, `list_paths`, `add_path`, `remove_path` (the last…
  • clear_vramFree GPU VRAM by unloading cached models — calls ComfyUI's `/free` endpoint, reports before/after stats
  • search_custom_nodesSearch the ComfyUI Registry for node packs by keyword (`action: "search"`), or get one pack's full details (`action: "details"`)
  • comfy_cliSearch actual loaded node classes through official `comfy nodes search` (action:"search_nodes")
  • +1 more on the listing page

Replicate MCP Server tools 36

  • replicate_generate_imageGenerate one or more images from a text prompt using a Replicate image model. Use this for any "draw / create / generate an image of …" request. By default it uses Flux Schnell (fast, ~2 seconds per image). DISPLAY REQUIREMENT — after this tool returns successfully, you MUST embed the image inline in your reply by pasting ONE of the three embed blocks the tool prints verbatim (Option 1 iframe, Option 2 <img>, or Option 3 markdown — try them in that order; pick the first one your chat client renders). The iframe variant scales to the chat column width with the image's native aspect ratio; the <img> variant is a responsive fallback; markdown is the universal last resort. Place the chosen embed BEFORE any descriptive prose. Do NOT paraphrase the URL or omit the embed — the user wants the image to appear in the main chat flow, not only inside the collapsed tool widget. URLs expire in ~24h. Args: - prompt (string): Text description of the image to generate. - model (string, default "flux-schnell"): Either a curated key (flux-schnell, flux-dev, flux-pro, flux-2-max, sd-3.5-large, recraft-v3, recraft-v4.1, ideogram-v2, imagen-3, seedream) or a full Replicate identifier "owner/name[:version]". - aspect_ratio ("1:1" | "16:9" | "9:16" | "4:3" | "3:4" | "21:9" | "3:2" | "2:3", optional): Aspect ratio. Default 1:1. - num_outputs (1-4, optional): How many images to generate. - seed (integer, optional): Random seed for reproducible output. - extra_input (object, optional): Model-specific extra inputs (e.g. {guidance: 3.5, num_inference_steps: 28}). Use replicate_get_model_schema if unsure. - download (boolean, default true): Download files locally to ~/Downloads/replicate-mcp/. - timeout_ms (5000-1800000, optional): Max wait. Default 300000 (5min). Returns structuredContent matching PredictionResult: { "status": "starting" | "processing" | "succeeded" | "failed" | "canceled", "prediction_id": string, "model": string, "urls": string[], // Replicate URLs (expire ~24h) "local_paths": string[], // Absolute paths on disk when download=true "metrics": { "predict_time_seconds": number } | undefined, "error": string | undefined, "pending": boolean | undefined // true if timed out — poll via replicate_get_prediction } Examples: - "An origami fox in a misty forest" → uses flux-schnell, 1:1 - prompt="logo for a coffee shop called Crema", model="recraft-v3" → for text-in-image - prompt="cinematic shot of a lighthouse", model="flux-pro", aspect_ratio="21:9", seed=42 Error handling: - If REPLICATE_API_TOKEN is missing, returns an actionable error telling the user how to set it. - Invalid model IDs return Replicate's error message verbatim.
  • replicate_generate_videoGenerate a video clip from a text prompt (and optionally a starting image). Video generation is slow — typically 1-5 minutes per clip. DISPLAY REQUIREMENT — after this tool returns successfully, include the URL(s) printed in the tool's text content so the user can open the video. URLs expire in ~24h. Args: - prompt (string): Text description of the video. - model (string, default "kling-pro"): Curated key (kling-pro, minimax-video, hunyuan-video, luma-ray, wan-2.2, grok-video, seedance) or "owner/name[:version]". - image_url (string, optional): Starting frame for image-to-video. Not all models support this. - duration_seconds (1-60, optional): Desired duration. Model-dependent. - aspect_ratio ("16:9" | "9:16" | "1:1", optional): Aspect ratio. - extra_input (object, optional): Additional model-specific inputs. - download (boolean, default true): Download the MP4 locally. - timeout_ms: Max wait. Default 300000 (5min). For very long videos, increase or rely on the pending+poll flow. Returns: PredictionResult (see replicate_generate_image for shape). The local_paths will contain .mp4 files when downloaded. Tip: If timeout_ms is exceeded, the result will have pending=true and a prediction_id. Wait a minute, then call replicate_get_prediction.
  • replicate_generate_audioGenerate music, ambient audio, or full songs from a text prompt. DISPLAY REQUIREMENT — after this tool returns successfully, include the URL(s) printed in the tool's text content as a markdown link `[Audio](URL)` in your reply so the user can play it. URLs expire in ~24h. Models: - "musicgen" (default): Meta MusicGen. Instrumental music up to 30s. prompt → "prompt" field. - "ace-step": Full songs with lyrics. prompt → "tags" field (style/genre tags). Pass lyrics separately via extra_input.lyrics. ~3-4 minutes runtime. - "riffusion": Loop-friendly ambient/electronic. prompt → "prompt_a" field. No duration control. - "minimax-music": MiniMax Music 2.6. Full songs up to 6min. prompt=style description; pass lyrics via extra_input.lyrics. - "lyria-3-pro": Google Lyria 3 Pro. Full songs up to 3min WITH sung vocals. Put genre, mood, lyrics, and structure ([Verse]/[Chorus]) directly in the prompt. No duration — do NOT pass duration_seconds. Also "lyria-3" (30s clips) and "lyria-2" (48kHz instrumental). Args: - prompt (string): Description of the music. For ace-step this maps to the "tags" field (style tags like "rock, guitar, upbeat"). For riffusion this maps to "prompt_a". For lyria put genre/mood/lyrics/structure here. - model (string, default "musicgen"): Curated key (musicgen, ace-step, riffusion, minimax-music, lyria-3-pro, lyria-3, lyria-2) or "owner/name[:version]". - duration_seconds (1-300, optional): Duration in seconds. Supported by musicgen and ace-step. Ignored for riffusion and the lyria models (they have no duration parameter). - extra_input (object, optional): Additional inputs. Examples: {temperature: 1.0, top_k: 250} for MusicGen; {lyrics: "verse lyrics here"} for ace-step. - download (boolean, default true): Download as MP3/WAV. - timeout_ms: Default 300000 (5min). Returns: PredictionResult. local_paths contain audio files. Examples: - prompt="upbeat synthwave with driving bassline", duration_seconds=15 → musicgen - prompt="indie folk, acoustic guitar, female vocals", model="ace-step", extra_input={lyrics: "Leaving home on a rainy day..."} - prompt="ambient lo-fi chill", model="riffusion"
  • replicate_generate_speechConvert text to natural-sounding speech. DISPLAY REQUIREMENT — after this tool returns successfully, include the URL printed in the tool's text content as a markdown link `[Speech](URL)` in your reply so the user can play it. URLs expire in ~24h. Args: - text (string, 1-5000): Text to synthesize. - model (string, default "kokoro"): Curated key (kokoro, minimax-speech, chatterbox, gemini-tts, grok-tts) or "owner/name[:version]". - voice (string, optional): Voice ID. For Kokoro: af_bella, af_sarah, am_adam, am_michael, bf_emma, bf_isabella, etc. (a-f = American female, b-f = British female, a-m = American male, b-m = British male). - speed (0.5-2.0, optional): Speech rate. - extra_input (object, optional): Model-specific extras (e.g. {audio_prompt: "<url>"} for voice cloning with Chatterbox). - download (boolean, default true). - timeout_ms: Default 300000. Returns: PredictionResult. local_paths contain WAV/MP3 files.
  • replicate_chatRun a large language model hosted on Replicate. Use this for free-form text generation, Q&A, code writing, summarisation, translation — anything where the input is text and the output is text. Args: - prompt (string): User message. - model (string, default "llama-3-70b"): Curated key (llama-3.1-405b, llama-3-70b, llama-3-8b, mistral-7b, mixtral-8x7b, deepseek-r1) or "owner/name". - system_prompt (string, optional): Persona / instructions. - max_tokens (1-8192, optional): Generation limit. - temperature (0-2, optional): Sampling temperature. - extra_input (object, optional): Model-specific extras (top_p, top_k, frequency_penalty, etc.). - download (boolean, default false): No file outputs; leave false. - timeout_ms (5000-1800000, optional): Default 300000. Returns: PredictionResult with text_output[0] containing the model's reply (later entries are raw streamed segments if applicable). Examples: - prompt="Explain quantum entanglement in two sentences.", model="llama-3-70b" - prompt="Write a Python function to compute Levenshtein distance.", model="mistral-large", system_prompt="You are an expert software engineer."
  • replicate_visionRun a vision-language model to describe, caption, or answer questions about an image. Args: - image (string URL): URL of the image to analyse. - prompt (string, optional): Question or instruction (e.g. "describe this image", "count the people"). Default is a generic caption. - model (string, default "llava-13b"): Curated key (llava-13b, llava-v1.6-34b, blip-2, qwen-vl) or "owner/name". - max_tokens (1-4096, optional): Response length. - extra_input (object, optional): Model-specific extras. Returns: PredictionResult with text_output containing the model's textual answer. Examples: - image="https://example.com/photo.jpg", prompt="What objects are visible?" - image="<chart-url>", prompt="Read the values off this chart and list them.", model="llava-v1.6-34b"
  • replicate_upscale_imageUpscale an image to higher resolution. Optional face restoration for photos. DISPLAY REQUIREMENT — after this tool returns successfully, embed the upscaled image inline using one of the three blocks (iframe / <img> / markdown) printed by the tool. Place it BEFORE descriptive prose. URLs expire ~24h. Args: - image (string URL): URL of the source image. - model (string, default "real-esrgan"): Curated key (real-esrgan, clarity-upscaler, swinir, gfpgan) or "owner/name". - scale (1-10, optional): Upscale factor. Default 4 for real-esrgan; 2 for gfpgan; 2 for clarity-upscaler. - extra_input (object, optional): Model-specific extras (e.g. {face_enhance: true} for real-esrgan). - download (boolean, default true): Download upscaled file locally. Returns: PredictionResult with urls + local_paths to the upscaled image. Examples: - image="<low-res-photo>", scale=4 → real-esrgan - image="<face-photo>", model="gfpgan", scale=2 → restoration - image="<artwork>", model="clarity-upscaler", scale=2
  • replicate_remove_backgroundProduce a transparent-background version (PNG) of an image. DISPLAY REQUIREMENT — after this tool returns successfully, embed the cut-out image inline using one of the three blocks (iframe / <img> / markdown) printed by the tool. Args: - image (string URL): URL of the source image. - model (string, default "rembg"): Curated key (rembg, birefnet, briaai-rmbg) or "owner/name". - extra_input (object, optional): Model-specific extras. - download (boolean, default true): Download the cut-out PNG locally. Returns: PredictionResult with urls + local_paths to a transparent PNG. Examples: - image="<product-photo>" → rembg quick cut - image="<portrait>", model="birefnet" → sharper edge for hair
  • replicate_transcribe_audioTranscribe an audio or video file to text using Whisper-family models on Replicate. Args: - audio (URL): URL of the audio (or video) to transcribe. - model (default "incredibly-fast-whisper"): Curated key (whisper, incredibly-fast-whisper, whisperx, scribe) or "owner/name". - language (string, optional): ISO-639 hint (e.g. "en", "it"). Default: auto-detect. - translate_to_english (bool, optional): Translate the transcript to English instead of preserving source language. - extra_input (object, optional): Model-specific extras (e.g. {batch_size: 24} for incredibly-fast-whisper). Returns: PredictionResult with text_output containing the transcript.
  • replicate_inpaintFill masked regions of an image based on a text prompt. Works for both inpainting (replace inside) and outpainting (extend canvas) when the mask covers the target area. DISPLAY REQUIREMENT — embed the result inline using one of the three blocks (iframe / <img> / markdown) printed by the tool. Args: - image (URL): Source image. - mask (URL): Mask image. White = keep, black/transparent = repaint. - prompt: Describes what should appear in the masked region. - model (default "flux-fill-pro"): Curated (flux-fill-pro, sd-inpaint, ideogram-v2-edit) or "owner/name". - extra_input (object, optional): Model-specific extras (e.g. {guidance: 30} for flux-fill-pro).
  • replicate_segmentProduce a segmentation mask of an image. Use SAM 2 for point/box-prompt masks (auto-mask everything when no prompt given) or Grounded-SAM for text-prompt masking like "the red car". DISPLAY REQUIREMENT — embed the mask result inline using one of the three blocks printed by the tool. Args: - image (URL): Source image. - prompt (string, optional): Text prompt for grounded segmentation. Required for grounded-sam. - model (default "sam-2"): Curated (sam-2, grounded-sam) or "owner/name". - extra_input (object, optional): SAM-specific tuning (e.g. {points_per_side: 32}).
  • replicate_embed_textConvert text(s) into numeric embedding vectors. Useful for RAG, semantic search, clustering, similarity scoring. Args: - texts: A single string or an array of strings (max 256). Each text is embedded independently. - model (default "bge-large"): Curated (bge-large, jina-embeddings-v3, all-minilm) or "owner/name". - extra_input (object, optional): Model-specific extras (e.g. {task: "retrieval.query"} for jina v3). Returns: PredictionResult — the embedding vectors are in structuredContent.output (model-specific shape).
  • +24 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Comfyui MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "comfyui-mcp-2": {
      "command": "npx",
      "args": [
        "-y",
        "comfyui-mcp@latest"
      ]
    }
  }
}

Replicate MCP Server

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "replicate-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "replicate-mcp-server"
      ],
      "env": {
        "REPLICATE_API_TOKEN": "YOUR_REPLICATE_API_TOKEN_HERE"
      }
    }
  }
}

Frequently asked questions

Comfyui MCP is categorized under Multimedia Process and uses a local stdio subprocess. Replicate MCP Server belongs to Multimedia Process and uses a local stdio subprocess. Pick Comfyui MCP for multimedia process work and Replicate MCP Server for multimedia process.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Comfyui MCP has no declared pricing — check the project's own site. Replicate MCP Server is bring-your-own-key: usage is billed by the API provider you supply a key for. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add comfyui-mcp-2 and replicate-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Comfyui MCP has a quality signal of 64/100 (Good) with 2 views, 0 installs and 855 GitHub stars. Replicate MCP Server has 64/100 (Good) with 3 views, 0 installs and 4 GitHub stars.