arrmcp¶
Purpose¶
arrmcp runs arr-mcp in the ai namespace, an MCP
server for the media stack (Radarr, Sonarr, Bazarr, Prowlarr, Seerr, SABnzbd, qBittorrent,
Plex). ToolHive registers it as a backend in the mcp-tools group. See the
AI / LLM stack page for how that group fits together.
Design decisions¶
- Config keys are validated by a zod strict object per service, so an unknown or misspelled
key at service level fails at startup. Use
destructive, notunsafe_write: arr-mcp's readme names the latter, the code names the former (src/config/schema.tsPermissionsSchema), and because that inner object is non-strict, the readme's key would have been silently dropped rather than rejected. /configstays writable even thoughconfig.yamlinside it is mounted read-only:LogStore.open()andWriteAudit.open()both open a database inside the config directory, andWriteAuditthrows if it cannot. The PVC is deliberately not VolSync-backed: nothing in it is irreplaceable, and keeping it out of the backups is what keeps the media stack's API keys out of them too.