Civitai + comfyui-mcp

Discover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally.

How to install

How to install

  1. Setup differs for this server — follow the Installation part of the README below.
  2. Claude Code: claude mcp add <name> -- <command>.
  3. Claude Desktop / Cursor: add it under mcpServers in the MCP config file.
Claude Code — installs the whole folder, not just SKILL.md
npx degit artokun/comfyui-mcp/plugin/skills/civitai#main ~/.claude/skills/civitai

For one project only, change the path to .claude/skills/civitai.

This one runs on your machine and can reach your files. Read the README below before you connect it.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text87 lines
civitai/SKILL.md87 lines4.2 KBpushed 27d agoRawView on GitHub

Civitai + comfyui-mcp

comfyui-mcp has native Civitai search built in (download_model action:"search_civitai") plus the local half of the loop: download, wire, queue, tag. The full flow (find, install, generate) needs no other server and no API key, and works on every backend, including small local models behind the compact router.

The built-in flow (default path)

download_model({ action: "search_civitai", query, types: ["LORA"], base_models: ["Flux.1 D"] })
        │                    each hit: model_id · model_version_id · trigger words
        ▼
download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })
        │
        ▼
list_local_models({ action: "list" })  →  panel_add_node loader / generate_image   # use it
  • ALWAYS filter base_models when the user's checkpoint family is known. A Flux LoRA will not load on an SDXL checkpoint (see model-compatibility). CivitAI labels: Flux.1 D, SDXL 1.0, SD 1.5, Pony, Illustrious, Wan Video.
  • target_subfolder must match the model type: checkpoints, loras, vae, controlnet, embeddings, upscale_models, and so on.
  • Results are SFW-only by default (nsfw: true to opt in).
  • Each hit carries trigger words. Put them in the prompt after installing.
  • Prefer model_version_id over model_id. A Civitai page can list several versions and the user usually means a specific one.

Search needs no API key. CIVITAI_API_TOKEN (from civitai.com/user/account) unlocks gated/early-access downloads and gated search results. Set it once, in panel Settings under "Set CivitAI token…" or in env.

Recipes

"Find me a good anime LoRA for Flux and install it"

  1. download_model({ action: "search_civitai", query: "anime style", types: ["LORA"], base_models: ["Flux.1 D"] }).
  2. Present the top 3 to 5 with name, creator, base model, downloads, and the version id. Let the user pick.
  3. download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" }).
  4. In the panel, panel_add_node a LoraLoader, panel_set_widget the lora_name, wire it between checkpoint and sampler, and use the hit's trigger words in the prompt. Headless: generate_image(action="image") / build the workflow.

"Download this Civitai page for me" (user pastes a URL)

  • Parse the modelVersionId from the URL if present; otherwise pass the model id from the URL to action:"download_civitai" (it resolves the latest version). A raw civitai.com/api/download/... URL also works via action:"download" with CIVITAI_API_TOKEN set.

Optional: the official Civitai MCP (community surface)

For features beyond search and install (browsing example images and their generation params, collections, posting, reviews, bounties), pair the official remote server. It is no longer auto-bundled; add it once:

claude mcp add --transport http civitai https://mcp.civitai.com/mcp \
  --header "Authorization: Bearer YOUR_CIVITAI_API_KEY"

Then mcp__civitai__* tools appear alongside comfyui-mcp's. Its discovery results hand off identically (modelVersions[].idaction:"download_civitai").

That server also exposes write/social tools (post, comment, review, DM, follow). Those publish on the user's behalf, so show what you're about to post and get an explicit yes first. This skill covers discovery, local install, and generation; don't post or message without being asked.

See also

  • model-registry for curated direct download URLs (HF + Civitai notes)
  • model-compatibility for base-model / VAE / CLIP pairing (why a LoRA won't load)
  • prompt-engineering because Civitai image params are a prompt goldmine

Sources

1---
2name: civitai
3description: Discover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).
4---
5 
6# Civitai + comfyui-mcp
7 
8comfyui-mcp has native Civitai search built in (`download_model` `action:"search_civitai"`)
9plus the local half of the loop: download, wire, queue, tag. The full flow
10(find, install, generate) needs no other server and no API key, and works on
11every backend, including small local models behind the compact router.
12 
13## The built-in flow (default path)
14 
15```
16download_model({ action: "search_civitai", query, types: ["LORA"], base_models: ["Flux.1 D"] })
17 │ each hit: model_id · model_version_id · trigger words
18
19download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })
20
21
22list_local_models({ action: "list" }) → panel_add_node loader / generate_image # use it
23```
24 
25- ALWAYS filter `base_models` when the user's checkpoint family is known.
26 A Flux LoRA will not load on an SDXL checkpoint (see `model-compatibility`).
27 CivitAI labels: `Flux.1 D`, `SDXL 1.0`, `SD 1.5`, `Pony`, `Illustrious`,
28 `Wan Video`.
29- `target_subfolder` must match the model type: `checkpoints`, `loras`, `vae`,
30 `controlnet`, `embeddings`, `upscale_models`, and so on.
31- Results are SFW-only by default (`nsfw: true` to opt in).
32- Each hit carries trigger words. Put them in the prompt after installing.
33- Prefer `model_version_id` over `model_id`. A Civitai page can list several
34 versions and the user usually means a specific one.
35 
36Search needs no API key. `CIVITAI_API_TOKEN` (from
37civitai.com/user/account) unlocks gated/early-access downloads and gated
38search results. Set it once, in panel Settings under "Set CivitAI token…" or in env.
39 
40## Recipes
41 
42**"Find me a good anime LoRA for Flux and install it"**
431. `download_model({ action: "search_civitai", query: "anime style", types: ["LORA"], base_models: ["Flux.1 D"] })`.
442. Present the top 3 to 5 with name, creator, base model, downloads, and the
45 version id. Let the user pick.
463. `download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })`.
474. In the panel, `panel_add_node` a `LoraLoader`, `panel_set_widget` the
48 `lora_name`, wire it between checkpoint and sampler, and use the hit's
49 trigger words in the prompt. Headless: `generate_image(action="image")` / build the workflow.
50 
51**"Download this Civitai page for me"** (user pastes a URL)
52- Parse the `modelVersionId` from the URL if present; otherwise pass the model
53 id from the URL to `action:"download_civitai"` (it resolves the latest version).
54 A raw `civitai.com/api/download/...` URL also works via `action:"download"`
55 with `CIVITAI_API_TOKEN` set.
56 
57## Optional: the official Civitai MCP (community surface)
58 
59For features beyond search and install (browsing example images and their
60generation params, collections, posting, reviews, bounties), pair the official
61remote server. It is no longer auto-bundled; add it once:
62 
63```bash
64claude mcp add --transport http civitai https://mcp.civitai.com/mcp \
65 --header "Authorization: Bearer YOUR_CIVITAI_API_KEY"
66```
67 
68Then `mcp__civitai__*` tools appear alongside comfyui-mcp's. Its discovery
69results hand off identically (`modelVersions[].id``action:"download_civitai"`).
70 
71That server also exposes write/social tools (post,
72comment, review, DM, follow). Those publish on the user's behalf, so show
73what you're about to post and get an explicit yes first. This skill covers
74discovery, local install, and generation; don't post or message without being
75asked.
76 
77## See also
78 
79- `model-registry` for curated direct download URLs (HF + Civitai notes)
80- `model-compatibility` for base-model / VAE / CLIP pairing (why a LoRA won't load)
81- `prompt-engineering` because Civitai image params are a prompt goldmine
82 
83## Sources
84 
85- **Official:** Civitai REST API https://civitai.com/api/v1 and Civitai MCP https://mcp.civitai.com/mcp
86- **Empirical:** find→install→generate wiring is comfyui-mcp product guidance, not Civitai's prompting docs.
87 

Discussion

From GitHub

3 comments on 2 threads

Correcting my own count: **five sites, not three.** I found the first three by grepping for the messages I happened to think of; a mechanical check found two more. ## The check The defect has an exact signature — a variable the process **deletes from its own `process.env`**, then **names in user-facing prose**. That is scannable: Six variables are deleted (`ANTHROPIC_API_KEY`, `COMFYUI_MCP_AGENT_IDENTITY`, `COMFYUI_MCP_ISSUE_MAX_POLLS`, `COMFYUI_MCP_ISSUE_POLL_MS`, `COMFYUI_MCP_ISSUE_TIMEOUT_MS`, `COMFYUI_MCP_LANG`). Exactly one is also advised — no false positives, and it is the one in this iread the rest

Fixed in #2850 — with two corrections to what I wrote above. **1. My "five sites" correction was itself wrong. It is three, plus two that are a different defect.** I expanded the count from three to five after building a mechanical check, and asserted all five were the same bug. They are not, because they are not all in the same process. The comfyui MCP child has **two lanes**: - spawned by the panel, it gets a *constructed* env — `panel-secrets.ts`: *"the orchestrator constructs the child env instead of inheriting it"* — whose allowlist omits the key, so the advice is dead; - run standalone fread the rest

Alternatives

Also in Illustration & art