--- name: civitai-mcp-ultimate description: Ultimate MCP server for Civitai — search models, browse top images with prompts, download LoRAs/Checkpoints, analyze trends. Use when user asks about AI models, LoRAs, checkpoints, Stable Diffusion, Flux, image generation prompts, or Civitai. --- # Civitai MCP Ultimate — 14 Tools Reference ## Quick Tool Map | Goal | Tool | Key Params | |------|------|-----------| | Find models by name | `search_models` | `query` (Meilisearch), `types`, `base_model` | | Find models by creator | `search_models` | `username` (most reliable) | | Batch fetch by IDs | `search_models` | `ids=[123, 456]` | | Full model details | `get_model` | `model_id` | | Version details + hashes | `get_model_version` | `version_id` | | Identify model from file | `get_model_version_by_hash` | SHA256/AutoV2/CRC32/BLAKE3 | | Top checkpoints | `get_top_checkpoints` | `base_model`, `period` | | Top LoRAs | `get_top_loras` | `base_model`, `nsfw` | | Browse images/videos | `browse_images` | `model_id`, `content_type`, `tag`, `base_model` | | Trending images/videos | `get_top_images` | `sort`, `period`, `content_type`, `browsing_level` | | Example images for model | `get_model_images` | `model_id` | | Extract best prompts | `get_image_generation_data` | `model_id` | | Download URL | `get_download_url` | `version_id` | | Download commands | `get_download_info` | `model_id`, `comfyui_path` | ## Common Recipes (Quick Reference) ### Top image by likes yesterday, specific base model ``` get_top_images(sort="Most Reactions", period="Day", content_type="image", base_model="Flux.1 D", limit=1) ``` ### Top video by comments this week ``` get_top_images(sort="Most Comments", period="Week", content_type="video", limit=1) ``` ### Most popular SDXL model this month ``` search_models(base_model="SDXL 1.0", sort="Most Downloaded", period="Month", limit=1) ``` ### Top 5 images from the most popular Flux model today ``` search_models(types=["Checkpoint"], base_model="Flux.1 D", sort="Most Downloaded", period="Day", limit=1) -> get model_id get_model_images(model_id=ID, limit=5) ``` ### Community images for a model (sorted by reactions) ``` browse_images(model_id=ID, sort="Most Reactions", period="Month", limit=5) ``` **NOTE**: `model_id` auto-resolves to the latest version. To see images from a specific version, use `model_version_id` directly: ``` get_model(model_id=ID) # -> see all versions with IDs browse_images(model_version_id=VERSION_ID, sort="Most Reactions", period="AllTime", limit=5) ``` ### Most popular NSFW image this month with prompt ``` get_top_images(sort="Most Reactions", period="Month", content_type="image", browsing_level="XXX", has_meta=true, limit=1) ``` ### Find a specific LoRA by name (e.g. hands fix) ``` search_models(query="hands fix", types=["LORA"], sort="Most Downloaded", limit=5) ``` **NOTE**: Text search uses Meilisearch (fast, accurate). Combining `query` + `types` + `base_model` works via Meilisearch! Falls back to REST API only when using REST-only params (ids, favorites, license filters). ### Top 10 LoRA by downloads this month ``` get_top_loras(sort="Most Downloaded", period="Month", limit=10) ``` ### Anime images from ComfyUI, only with metadata ``` get_top_images(tag="anime", tools="ComfyUI", has_meta=true, period="Week", limit=5) ``` ### Only videos made on Civitai ``` get_top_images(content_type="video", made_on_site=true, period="Month", limit=5) ``` ### Only original works (no remixes) ``` get_top_images(originals_only=true, period="Week", limit=10) ``` ### XXX content only ``` get_top_images(browsing_level="XXX", sort="Most Reactions", period="Day", limit=5) browse_images(browsing_level="X,XXX", content_type="video", period="Week", limit=3) ``` ## Image/Video Cache All images and videos are **automatically downloaded** to `~/.civitai-mcp-cache/`: - Images: 512px thumbnails (saves bandwidth) - Videos: original quality - Auto-cleanup: files older than 24h deleted on server startup - Local paths returned in output — use **Read tool** to preview images ## Workflows ### 1. Find the Best LoRA for a Style ``` get_top_loras(base_model="Flux.1 D", period="Week", limit=10) -> pick model_id get_model(model_id=ID) -> read trigger words, description, versions get_image_generation_data(model_id=ID, limit=5) -> extract prompts, settings, LoRA weight get_download_info(model_id=ID, comfyui_path="C:/ComfyUI/models") -> ready-to-paste curl/wget/PowerShell ``` ### 2. Prompt Mining ``` get_top_images(sort="Most Reactions", period="Week", has_meta=true, limit=10) -> each image has: prompt, negative prompt, steps, CFG, sampler, seed, LoRAs ``` For a specific model: ``` get_image_generation_data(model_id=ID, sort="Most Reactions", limit=5) -> only images WITH metadata ``` ### 3. Download Model to ComfyUI ``` get_download_info(model_id=858800, comfyui_path="D:/ComfyUI/models") ``` Returns: curl + wget + PowerShell commands, ComfyUI subfolder, all hashes, scan results. ### 4. Identify Unknown .safetensors File ``` get_model_version_by_hash(hash="E837144C55") # AutoV2 hash ``` ### 5. Compare Models by Popularity ``` get_top_checkpoints(base_model="Flux.1 D", period="Month", sort="Most Downloaded", limit=20) get_top_checkpoints(base_model="SDXL 1.0", period="Month", sort="Most Downloaded", limit=20) ``` ## Enum Cheat Sheet ### Model Types `Checkpoint`, `LORA`, `LoCon`, `TextualInversion`, `Hypernetwork`, `Controlnet`, `Poses`, `VAE`, `Upscaler`, `Wildcards`, `MotionModule`, `Workflows`, `Other` ### Base Models | Category | Values | |----------|--------| | SD 1.x | `SD 1.4`, `SD 1.5`, `SD 1.5 LCM`, `SD 1.5 Hyper`, `SD 2.0`, `SD 2.1` | | SDXL | `SDXL 1.0`, `SDXL Lightning`, `SDXL Hyper` | | Flux | `Flux.1 S`, `Flux.1 D`, `Flux.1 Krea`, `Flux.1 Kontext`, `Flux.2 D`, `Flux.2 Klein 9B/4B` | | Anime | `Pony`, `Pony V7`, `Illustrious`, `NoobAI`, `Anima` | | Z-Image | `ZImageBase`, `ZImageTurbo` | | Other | `Qwen`, `Chroma`, `HiDream`, `AuraFlow`, `Hunyuan 1`, `Kolors`, `PixArt a/E`, `Lumina` | | Video | `CogVideoX`, `Hunyuan Video`, `LTXV`, `LTXV2`, `LTXV 2.3`, `Mochi`, `Wan Video 1.3B t2v`, `Wan Video 14B t2v`, `Wan Video 14B i2v 480p/720p`, `Wan Video 2.2 TI2V-5B/I2V-A14B/T2V-A14B`, `Wan Video 2.5 I2V/T2V` | ### Sort - Models (Meilisearch): `Most Downloaded`, `Highest Rated`, `Most Collected`, `Most Comments`, `Most Tipped`, `Newest`, `Oldest` - Models (REST API): `Highest Rated`, `Most Downloaded`, `Newest` - Images/Videos: `Most Reactions`, `Most Comments`, `Most Collected`, `Newest`, `Oldest` ### Period `AllTime`, `Year`, `Month`, `Week`, `Day` ### Browsing Level `PG` (1), `PG-13` (2), `R` (4), `X` (8), `XXX` (16) — comma-separated for multiple, e.g. "X,XXX" ### Content Type `image`, `video` ### NSFW Levels (legacy) `None`, `Soft`, `Mature`, `X` ### Image Modifiers `has_meta`, `made_on_site`, `originals_only`, `remixes_only` — boolean flags ### Image Filters `tag` (e.g. "anime"), `base_model` (e.g. "Flux.1 D"), `tools` (e.g. "ComfyUI"), `techniques` (e.g. "txt2img") ### ComfyUI Folder Mapping `Checkpoint` -> `checkpoints/`, `LORA`/`LoCon` -> `loras/`, `TextualInversion` -> `embeddings/`, `Controlnet` -> `controlnet/`, `VAE` -> `vae/`, `Upscaler` -> `upscale_models/` ## Known Quirks 1. **search_models via REST API: query + types/base_model = empty results**. Fixed in v0.2.0 — text search now uses Meilisearch which supports combining query with type/baseModel/tag/username filters. REST API fallback still has this limitation. 2. **search_models by username**: Most reliable search method. Always prefer `username="CreatorName"`. 3. **get_creators**: Civitai endpoint is slow (30s+) and may return 500. Use `search_models(username=...)` instead. 4. **"Most Reactions" sort cursor bug**: Returns null cursor, preventing pagination beyond page 1. 5. **License filters** (`allow_no_credit`, etc.): Civitai API may return 400. 6. **modelId ignored on /images endpoint**: Civitai API ignores `modelId` param — only `modelVersionId` works. Fixed in v0.2.1: `browse_images`, `get_model_images`, and `get_image_generation_data` now auto-resolve `model_id` to `model_version_id` (uses latest version). You can still pass `model_version_id` directly to target a specific version. 7. **browsingLevel**: Bitmask system (1=PG, 2=PG-13, 4=R, 8=X, 16=XXX). Undocumented but stable. 8. **content_type/tag/tools/techniques**: All undocumented API params but verified working 2026-03-24. 9. **get_tags**: No NSFW filter available. Returns generic tags (character, anime, woman...) without model counts. Cannot query "top NSFW tags" — use `browse_images(browsing_level="X,XXX")` and inspect tags on returned images instead. ## Environment Variables ``` CIVITAI_API_KEY — Civitai API key (NSFW access + higher rate limits) CIVITAI_MCP_LANG — en (default) | ru COMFYUI_MODELS_PATH — default ComfyUI models path for download_info MEILISEARCH_KEY — Meilisearch search-only key (optional, has built-in default) ```