github Python re-analysis due

sandraschi/arr-mcp

github

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.

maintainer
sandraschi
licence
MIT
first seen
2026-06-07
last seen
2026-09-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 24 tools
transport stdio · http counts 24 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • arr_agentic
  • arr_calendar
  • arr_calendar_card
  • arr_health
  • arr_health_card
  • arr_help
  • arr_orchestrate
  • arr_stats
  • arr_stats_card
  • bazarr_subtitles
  • lidarr_albums
  • lidarr_artists
  • overseerr_requests
  • overseerr_search
  • overseerr_users
  • prowlarr_applications
  • prowlarr_history
  • prowlarr_indexers
  • prowlarr_search
  • radarr_movies
  • readarr_authors
  • readarr_books
  • sonarr_episodes
  • sonarr_series
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 48f977e · analyzer v33 · 1w ago

skills & prompt files 4

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 127

filesystem 4

  • fs sandraschi-arr-mcp-48f977e/mcpb/src/config.py :4 from pathlib import Path
  • fs (weak) sandraschi-arr-mcp-48f977e/scripts/cua-smoke.py :47 with open(p) as f:
  • fs (weak) sandraschi-arr-mcp-48f977e/scripts/cua-webapp-test.py :33 from pathlib import Path
  • fs sandraschi-arr-mcp-48f977e/src/arr_mcp/config.py :4 from pathlib import Path

shell / exec 2

  • shell (weak) sandraschi-arr-mcp-48f977e/scripts/cua-smoke.py :31 import subprocess
  • shell (weak) sandraschi-arr-mcp-48f977e/scripts/cua-webapp-test.py :27 import subprocess

network 15

  • net sandraschi-arr-mcp-48f977e/mcpb/src/api.py :236 "total_requests": requests.get("pageInfo", {}).get("total", 0),
  • net sandraschi-arr-mcp-48f977e/mcpb/src/app.py :51 import httpx
  • net sandraschi-arr-mcp-48f977e/mcpb/src/server.py :158 import socket
  • net (weak) sandraschi-arr-mcp-48f977e/scripts/cua-smoke.py :34 import urllib.error
  • net (weak) sandraschi-arr-mcp-48f977e/scripts/cua-webapp-test.py :30 import urllib.error
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/api.py :258 "total_requests": requests.get("pageInfo", {}).get("total", 0),
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/app.py :51 import httpx
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/server.py :159 import socket
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/services/base.py :11 import httpx
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/services/bazarr_service.py :16 import httpx
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/services/overseerr_service.py :15 import httpx
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/utils/emby_bridge.py :14 import httpx
show 3 more
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/utils/jellyfin_bridge.py :13 import httpx
  • net sandraschi-arr-mcp-48f977e/src/arr_mcp/utils/plex_bridge.py :13 import httpx
  • net (weak) sandraschi-arr-mcp-48f977e/tests/test_api.py :5 from httpx import ASGITransport, AsyncClient

secrets 2

  • secrets sandraschi-arr-mcp-48f977e/mcpb/src/config.py :95 api_key=os.getenv("RADARR_API_KEY", ""),
  • secrets sandraschi-arr-mcp-48f977e/src/arr_mcp/config.py :95 api_key=os.getenv("RADARR_API_KEY", ""),

tool registrations 24

  • arr_agentic sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/agentic.py :39
  • bazarr_subtitles sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/bazarr_tools.py :25
  • arr_orchestrate sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/cross_arr_tools.py :53
  • arr_calendar sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/cross_arr_tools.py :232
  • arr_stats sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/cross_arr_tools.py :309
  • arr_health sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/health_tools.py :22
  • arr_help sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/help_tools.py :130
  • lidarr_artists sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/lidarr_tools.py :20
  • lidarr_albums sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/lidarr_tools.py :97
  • overseerr_requests sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/overseerr_tools.py :20
  • overseerr_search sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/overseerr_tools.py :117
  • overseerr_users sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/overseerr_tools.py :142
show 12 more
  • arr_health_card sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prefab_tools.py :27
  • arr_calendar_card sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prefab_tools.py :65
  • arr_stats_card sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prefab_tools.py :115
  • prowlarr_indexers sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prowlarr_tools.py :20
  • prowlarr_search sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prowlarr_tools.py :108
  • prowlarr_applications sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prowlarr_tools.py :156
  • prowlarr_history sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/prowlarr_tools.py :213
  • radarr_movies sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/radarr_tools.py :26
  • readarr_authors sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/readarr_tools.py :20
  • readarr_books sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/readarr_tools.py :97
  • sonarr_series sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/sonarr_tools.py :20
  • sonarr_episodes sandraschi-arr-mcp-48f977e/src/arr_mcp/tools/sonarr_tools.py :101

declared dependencies 23

  • fastmcp@>=3.4.4,<4
  • pydantic@>=2.0.0
  • pydantic-settings@>=2.0.0
  • python-dotenv@>=1.0.0
  • httpx@>=0.25.0
  • fastapi@>=0.104.0
  • uvicorn@>=0.24.0
  • rich@>=13.0.0
  • prefab-ui@>=0.18.0
  • pytest@>=8.0.0,<9.0.0
  • pytest-asyncio@>=0.23.0,<1.0.0
  • pytest-cov@>=4.0.0,<5.0.0
show 11 more
  • pytest-httpx@>=0.30.0
  • ruff@>=0.16.0,<0.17
  • mypy@>=1.8.0,<2.0.0
  • pre-commit@>=3.6.0
  • tauri-build@2
  • tauri@2
  • tauri-plugin-shell@2
  • tauri-plugin-fs@2
  • tauri-plugin-process@2
  • serde@1
  • serde_json@1