civitai-mcp-ultimate
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.
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installFiles included (33)
- SKILL.md8.8 KB
- .github/FUNDING.yml146 B
- .github/scripts/star_chart.py3.4 KB
- .github/workflows/star-history.yml860 B
- .gitignore142 B
- docs/civitai-api-reference.md11.9 KB
- docs/stars-dark.svg2.0 KB
- docs/stars-light.svg2.0 KB
- HANDOFF.md9.3 KB
- LICENSE1.0 KB
- NEXT_SESSION_PROMPT.md1.8 KB
- pyproject.toml1.6 KB
- README.md6.9 KB
- smithery.yaml633 B
- src/civitai_mcp_ultimate/__init__.py326 B
- src/civitai_mcp_ultimate/client.py9.0 KB
- src/civitai_mcp_ultimate/formatters.py10.3 KB
- src/civitai_mcp_ultimate/history.py6.1 KB
- src/civitai_mcp_ultimate/i18n.py1.2 KB
- src/civitai_mcp_ultimate/image_cache.py6.2 KB
- src/civitai_mcp_ultimate/meilisearch.py6.3 KB
- src/civitai_mcp_ultimate/py.typed0 B
- src/civitai_mcp_ultimate/server.py23.7 KB
- src/civitai_mcp_ultimate/tools/__init__.py49 B
- src/civitai_mcp_ultimate/tools/creators.py3.3 KB
- src/civitai_mcp_ultimate/tools/downloads.py4.0 KB
- src/civitai_mcp_ultimate/tools/images.py12.1 KB
- src/civitai_mcp_ultimate/tools/models.py17.4 KB
- src/civitai_mcp_ultimate/trail.py6.9 KB
- src/civitai_mcp_ultimate/types.py4.4 KB
- tests/__init__.py0 B
- tests/conftest.py252 B
- TRAIL-SPEC.md479 B
SKILL.md (original)
Review the instructions the agent will receive before you install.
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
- 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.
- search_models by username: Most reliable search method. Always prefer
username="CreatorName". - get_creators: Civitai endpoint is slow (30s+) and may return 500. Use
search_models(username=...)instead. - "Most Reactions" sort cursor bug: Returns null cursor, preventing pagination beyond page 1.
- License filters (
allow_no_credit, etc.): Civitai API may return 400. - modelId ignored on /images endpoint: Civitai API ignores
modelIdparam — onlymodelVersionIdworks. Fixed in v0.2.1:browse_images,get_model_images, andget_image_generation_datanow auto-resolvemodel_idtomodel_version_id(uses latest version). You can still passmodel_version_iddirectly to target a specific version. - browsingLevel: Bitmask system (1=PG, 2=PG-13, 4=R, 8=X, 16=XXX). Undocumented but stable.
- content_type/tag/tools/techniques: All undocumented API params but verified working 2026-03-24.
- 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)
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.