mcp-arr-lite
mcp-arr-lite
Lightweight MCP server for Radarr and Sonarr with a small set of granular, purpose-built tools. Unofficial project.
Why this project?
General "arr" MCP servers (like Knuckles-Team/arr-mcp) auto-generate thousands of tools from the Arr API and hand the whole surface to the LLM. mcp-arr-lite is the opposite:
Granular tools: exactly the operations needed for the "can you grab X for me?" flow — lookup, add, search releases, grab — no admin/config noise.
Preferred-indexer logic: search tools default to the indexer with the lowest numeric priority, deterministic instead of prompt-dependent.
HITL-friendly: read-only tools (lookup, list indexers) can be auto-approved; add/search/grab require explicit user approval.
Dual transport: stdio (npx) and HTTP (Docker).
Comparison with Knuckles-Team/arr-mcp
Aspect | arr-mcp | mcp-arr-lite |
Tool surface | 1123 generated tools | 9 hand-written tools |
Preferred indexer | Prompt-dependent | Coded into search tools |
Apps | 6+ Arr apps | Radarr + Sonarr |
Transports | stdio | stdio + HTTP |
Focus | Whole API | Add & download flow |
Tools
Tool | Read-only | Description |
| ✅ | Search a movie/series by title, returns name + poster URL |
| ✅ | List indexers for an app, marking the preferred one |
| ❌ | Add a movie/series (optionally trigger search) |
| ❌ | Search releases, defaulting to the preferred indexer |
| ❌ | Start downloading a release |
Requirements
Node.js >= 20 (npx) or Docker (container)
Radarr and/or Sonarr with an API key
Installation
Docker Compose (recommended)
services:
arr-mcp:
image: ghcr.io/cuti27/mcp-arr-lite:latest
restart: unless-stopped
environment:
- RADARR_URL=http://radarr:7878
- RADARR_API_KEY=your-radarr-api-key
- SONARR_URL=http://sonarr:8989
- SONARR_API_KEY=your-sonarr-api-key
- MCP_TRANSPORT=http
- MCP_AUTH_TOKEN=your-secure-token-here
- PORT=3000
- HOST=0.0.0.0
- LOG_LEVEL=infoOnly configure the apps you use — Radarr and Sonarr are both optional at startup; tools for an unconfigured app will return an error.
stdio (npx)
RADARR_URL=http://radarr:7878 \
RADARR_API_KEY=... \
SONARR_URL=http://sonarr:8989 \
SONARR_API_KEY=... \
MCP_TRANSPORT=stdio \
npx -y @cuti27/mcp-arr-liteEnvironment variables
See .env.example. Required per app: RADARR_URL + RADARR_API_KEY, SONARR_URL + SONARR_API_KEY. MCP_AUTH_TOKEN is required when MCP_TRANSPORT=http.
Security
HTTP transport enforces bearer auth, rate limiting (60 req/min/IP) and a 1 MB body limit.
API keys are redacted from logs.
Only run the HTTP transport with
MCP_AUTH_TOKENset and behind a TLS-terminating reverse proxy.
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cuti27/mcp-arr-lite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server