FastMCP bridge for Civitai: search and download checkpoints/LoRAs into a ComfyUI-compatible models depot. Dry-run default, human-approved download outbox.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport — counts 4 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
civitai_help
-
civitai_models_tool
-
civitai_shutdown
-
show_depot_card
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 09e3f60 · analyzer v33 · 2w ago
skills & prompt files 5
- agent-rules sandraschi-civitai-mcp-09e3f60/AGENTS.md
- agent-rules sandraschi-civitai-mcp-09e3f60/CLAUDE.md
- prompt-file sandraschi-civitai-mcp-09e3f60/assets/prompts/system.md
- prompt-file sandraschi-civitai-mcp-09e3f60/assets/prompts/user.md
- skill sandraschi-civitai-mcp-09e3f60/src/civitai_mcp/skills/civitai-depot/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 51
network 17
- net sandraschi-civitai-mcp-09e3f60/webapp/src/App.tsx :51
const r = await fetch("/api/health"); - net sandraschi-civitai-mcp-09e3f60/webapp/src/components/LoggerModal.tsx :41
const r = await fetch(`/api/logs?${params}`); - net sandraschi-civitai-mcp-09e3f60/webapp/src/lib/provider.ts :17
const r = await fetch(p.probeUrl, { signal: AbortSignal.timeout(2000) }); - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Accounts.tsx :11
fetch("/api/health") - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Chat.tsx :120
fetch("/api/skills") - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/ComfyOps.tsx :52
fetch("/api/comfyops/bridge").then((r) => r.json()) as Promise<Bridge>, - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Compose.tsx :12
const r = await fetch("/api/v1/outbox", { - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Dashboard.tsx :78
queryFn: () => fetch("/api/dashboard").then((r) => r.json()), - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Depot.tsx :24
const r = await fetch("/api/v1/local"); - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Inbox.tsx :29
queryFn: () => fetch("/api/health").then((r) => r.json()), - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Outbox.tsx :23
fetch("/api/v1/outbox") - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Queue.tsx :24
fetch("/api/v1/outbox")
show 5 more
- net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Search.tsx :26
const r = await fetch( - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Settings.tsx :37
queryFn: () => fetch("/api/health").then((r) => r.json()), - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Skills.tsx :27
queryFn: () => fetch("/api/skills").then((r) => r.json()), - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Timelines.tsx :8
const r = await fetch(`/api/v1/timeline?kind=${kind}`); - net sandraschi-civitai-mcp-09e3f60/webapp/src/pages/Tools.tsx :24
queryFn: () => fetch("/api/tools").then((r) => r.json()),
tool registrations 4
- civitai_models_tool sandraschi-civitai-mcp-09e3f60/src/civitai_mcp/server.py :53
- civitai_help sandraschi-civitai-mcp-09e3f60/src/civitai_mcp/server.py :105
- civitai_shutdown sandraschi-civitai-mcp-09e3f60/src/civitai_mcp/server.py :120
- show_depot_card sandraschi-civitai-mcp-09e3f60/src/civitai_mcp/server.py :126
declared dependencies 25
- @tanstack/react-query@^5.62.8
- clsx@^2.1.1
- framer-motion@^11.12.0
- lucide-react@^0.468.0
- react@^18.3.1
- react-dom@^18.3.1
- react-router-dom@^6.27.0
- zustand@^5.0.2
- @biomejs/biome@^2.0.0
- @playwright/test@^1.60.0
- @types/react@^18.3.12
- @types/react-dom@^18.3.1
show 13 more
- @vitejs/plugin-react@^4.3.4
- autoprefixer@^10.4.20
- postcss@^8.4.49
- tailwindcss@^3.4.16
- typescript@^5.7.2
- vite@^6.0.5
- tauri-build@2
- tauri@2
- tauri-plugin-shell@2
- tauri-plugin-fs@2
- tauri-plugin-process@2
- serde@1
- serde_json@1