neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
arr-mcp *arr 자동화 스택용 통합 FastMCP 3.3 서버
Unified FastMCP 3.3 server for the *arr automation stack — Radarr, Sonarr, Lidarr, Prowlarr, Readarr, Overseerr, Bazarr. 25 MCP tools, cross-arr orchestration, Jellyfin bridge, Prefab-UI cards.
개발 도구Python · TypeScriptGitHub @sandraschi직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
FastMCP 3.3 MCP server for the complete *arr automation stack — Radarr, Sonarr, Lidarr, Prowlarr, Readarr, Overseerr, and Bazarr — under a single MCP interface.README 전문 보기 ↗FastMCP 3.4 MCP server for the complete *arr automation stack — Radarr, Sonarr, Lidarr, Prowlarr, Readarr, Overseerr, and Bazarr — under a single MCP interface.
New here? Start at docs/ONBOARDING.md (10-minute setup, no account needed).
Download arr-mcp.mcpb + install.ps1 from the
latest release,
then run install.ps1 — it installs the bundle into Claude Desktop.
Other MCP clients (Cursor, Windsurf, opencode):
{
"mcpServers": {
"arr-mcp": { "command": "uvx", "args": ["arr-mcp"] }
}
}
arr_health_card, arr_calendar_card, arr_stats_card (@mcp.tool(app=True)) — rich interactive cards in Claude Desktop, Cursor.env, no restart (.env still works as fallback)arr://config, arr://quickstart, arr://help, arr://capabilities for agent self-discoveryarr_agentic tool with Context injection for LLM-powered cross-arr workflows/mcp, see raw JSON-RPC response/api/logs/stream for live log viewing.exe installer bundling Python backend via PyInstaller# 1. Clone
git clone https://github.com/sandraschi/arr-mcp
cd arr-mcp
# 2. Create config (optional — auto-discovery probes default ports,
# or use Settings → Services in the webapp later; no file editing needed)
cp .env.example .env
# 3. Run
uv sync
uv run arr-mcp
# 4. Webapp (separate terminal)
cd webapp
npm install
npm run dev # → http://localhost:10939
| Service | Default Port | Config Prefix | Description |
|---|---|---|---|
| Radarr | 7878 | RADARR_ | Movies |
| Sonarr | 8989 | SONARR_ | TV Series |
| Lidarr | 8686 | LIDARR_ | Music |
| Prowlarr | 9696 | PROWLARR_ | Indexer Backbone |
| Readarr | 8787 | READARR_ | Books |
| Overseerr | 5055 | OVERSEERR_ | Media Requests & Discovery |
| Bazarr | 6767 | BAZARR_ | Subtitles |
| Page | Route | What it does |
|---|---|---|
| Dashboard | / | KPIs (items/wanted/reachable), per-service cards with Open/Setup actions, detected Docker containers, fleet siblings |
| Radarr / Sonarr / Lidarr / Prowlarr / Readarr / Overseerr / Bazarr | /{service} | Live per-service data: counts, wanted, queue, disk space — or a setup guide when unconfigured |
| Orchestrate | /orchestrate | Request form (runs the real pipeline) + stack overview with total wanted |
| Chat | /chat | AI chat with Ollama/LM Studio model selection |
| Inspector | /inspector | Interactive MCP tool runner — select, param, execute |
| Logger | /logger | Real-time SSE log streaming with filter/export |
| Help | /help | Setup guide, Docker Compose, per-service install, API keys |
| Settings | /settings | LLM provider config, backend health, port reference |
"I want to watch Dune"
↓
Jellyfin check → already in library? → DONE
↓ not found
Type detection → movie → Radarr
↓
Queue check → not already queued?
↓
Add to Radarr → downloading...
The same pipeline runs from the webapp: the Orchestrate page has a request
form backed by POST /api/orchestrate/request.
Three servers, three jobs: arr-mcp acquires, plex-mcp owns Plex,
jellyfin-mcp owns Jellyfin. arr-mcp checks your Plex/Jellyfin/Emby
servers directly before downloading — it does not route through the sibling
MCP servers, and nothing is shared between them. GET /api/fleet probes both
siblings live; the Dashboard links to their dashboards when running. Full
contract: docs/FLEET_MEDIA_TOPOLOGY.md.
arr-mcp/
├── src/arr_mcp/ # Python backend (FastMCP 3.4)
│ ├── services/ # 8 arr clients (BaseArrClient + 7 arrs)
│ ├── tools/ # 31 MCP tools (portmanteau + single-purpose + prefab cards)
│ ├── prefabs.py # Prefab-UI card builders (health, calendar, stats, orchestrate)
│ ├── utils/ # Jellyfin bridge
│ ├── api.py # REST router with /api/{service}/summary
│ ├── app.py # FastMCP singleton, lifespan, resources, prompts
│ ├── server.py # Entry point, auto-discovery, log buffer
│ ├── config.py # Pydantic v2 config + .env loading
│ └── transport.py # STDIO/HTTP/SSE + FastMCP 3.3 env vars
├── webapp/ # React 19 + Vite + Tailwind
│ ├── src/pages/ # 15 page components
│ ├── src/utils/ # apiFetch<T>(), notifications, LLM client
│ └── e2e/ # Playwright smoke tests (15 pages)
├── native/ # Tauri 2.0 app wrapper
│ ├── Cargo.toml # Rust deps (tauri 2, shell/fs/process)
│ ├── src/main.rs # Entry point, sidecar launch, cleanup
│ ├── tauri.conf.json # Window config, sidecar path
│ ├── capabilities/ # Tauri 2.0 permission model
│ ├── icons/ # App icons
│ └── build-sidecar.ps1 # PyInstaller → binaries/
├── tests/ # pytest + pytest-httpx (289 tests)
├── docker-compose.yml # Full *arr stack (8 services)
├── .github/workflows/ci.yml # GitHub Actions (ruff + pytest + biome + tsc)
├── justfile # Fleet-standard recipes
├── arr-mcp-backend.spec # PyInstaller spec
└── run_server.py # PyInstaller entry point
just install # uv sync + pre-commit
just start # run MCP server
just webapp # start React dev server
just lint # ruff check
just typecheck # mypy
just test # pytest with coverage (289 tests)
just e2e # Playwright e2e (starts backend + webapp)
just ci # lint + typecheck + test + webapp build
just tauri-build # full native installer
just tauri-dev # Tauri hot-reload
just tauri-sidecar # PyInstaller backend only → native/binaries/
cd webapp
npm install
npx playwright install chromium
npm run test:e2e # headless
npm run test:e2e:ui # interactive UI
npm run test:e2e:headed # visible browser
Playwright auto-starts the backend (:10938) and Vite dev server (:10939). 15 smoke tests verify every page loads without crashing.
/mcp + REST /api/* + SSE /api/logs/stream)docker compose up -d arr-mcp # backend on :10938 (HTTP transport)
docker compose --profile webapp up -d # dashboard on :10939
The arr-mcp service builds Dockerfile (uv, locked deps) with
ARR_MCP_TRANSPORT=http; config comes from the repo-root .env.
Point MCP clients at http://HOST:10938/mcp. See docs/TROUBLESHOOTING.md
for container networking notes (use compose service names, not localhost).
MIT