Sign inSign up

marcosisocram/radarr-mcp

By marcosisocram

•Updated 2 days ago

Image
0

163

marcosisocram/radarr-mcp repository overview

⁠Standalone Radarr MCP (Go)

An independently deployable MCP (Model Context Protocol) server for Radarr, written in Go. It exposes one MCP server over Streamable HTTP at /mcp/radarr and a health endpoint at /health, and talks to Radarr API v3 (validated against Radarr 6.4.4.10685-ls321).

⁠Quick start

docker run -d --name radarr-mcp \
  --read-only --cap-drop ALL --security-opt no-new-privileges:true \
  -e RADARR_URL=http://your-radarr:7878 \
  -e RADARR_API_KEY='your-radarr-api-key' \
  -e RADARR_LISTEN_ADDR=0.0.0.0:8080 \
  -p 127.0.0.1:8091:8080 \
  marcosisocram/radarr-mcp:latest
  • MCP endpoint: http://127.0.0.1:8091/mcp/radarr
  • Health: http://127.0.0.1:8091/health

The container runs as a non-root user with no shell, on a distroless base, and declares HEALTHCHECK CMD ["/radarr-mcp", "--healthcheck"] — the same command a Kubernetes livenessProbe/readinessProbe should use.

⁠Configuration

VariableRequiredDefaultDescription
RADARR_URLyes—Trusted Radarr base URL (may include an install path prefix, e.g. https://host/radarr)
RADARR_API_KEYyes—Radarr API key (Radarr → Settings → General → Security)
RADARR_LISTEN_ADDRno127.0.0.1:8080Listen address; use 0.0.0.0:8080 in containers

Never pass upstream URLs through tool arguments — the base URL is trusted configuration only. TLS verification for upstream HTTPS is always enabled, and redirects are never followed so the API key cannot be replayed to another origin.

⁠Tools

Read tools: radarr_list_movies (with monitored/has_file filters and limit/offset), radarr_get_movie, radarr_lookup_movies, radarr_list_quality_profiles, radarr_list_root_folders, radarr_get_queue, radarr_get_history, and radarr_get_command.

Write tools: radarr_add_movie, radarr_set_movie_monitored, and radarr_search_movie.

A typical flow is radarr_lookup_movies → radarr_list_quality_profiles + radarr_list_root_folders → radarr_add_movie → radarr_search_movie → radarr_get_command.

radarr_add_movie requires tmdb_id, quality_profile_id, and root_folder_path; there are no silent defaults for those. It never starts a release search and returns already_exists without writing when the TMDB ID is already in the library. radarr_search_movie asks Radarr to search indexers for one explicit movie and can start a download; it returns a command ID that radarr_get_command tracks.

Errors report the operation and HTTP status only — never the API key or the upstream response body. Removing movies or files, manual import, config/indexer/download-client editing, backups, and generic administrative commands are not part of this integration.

⁠Security notes

The server provides no inbound authentication. Expose the port only on a trusted network or behind a TLS/access-control proxy. Container hardening shown above (--read-only, cap-drop ALL, no-new-privileges) is recommended for all deployments.

  • marcosisocram/qbittorrent-mcp — qBittorrent
  • marcosisocram/radarr-mcp — Radarr (movies, this image)
  • marcosisocram/sonarr-mcp — Sonarr (TV series)

⁠Spec and source

https://github.com/marcosisocram/arr-mcp⁠

Tag summary

Content type

Image

Digest

sha256:ba481ae48…

Size

4.3 MB

Last updated

2 days ago

docker pull marcosisocram/radarr-mcp