프로젝트 소개

ARR-MCP는 Claude, Cursor, VS Code와 같은 AI 어시스턴트를 *Arr 미디어 스택(Sonarr, Radarr, Prowlarr, Bazarr, qBittorrent, NZBGet)에 연결하는 MCP(Model Context Protocol) 서버입니다. 각 서비스의 다중 인스턴스를 지원하여, 사용자가 별도의 구성(예: 4K 및 1080p Sonarr 인스턴스)을 실행하고 이름으로 식별할 수 있습니다. 이 서버는 JSON-RPC 2.0을 통해 stdio 및 Streamable HTTP 방식으로 실시간 MCP를 구현하며, 공식 Go SDK를 기반으로 합니다. 모든 지원 서비스에 걸쳐 246개의 도구를 제공하여 각 서비스의 웹 UI를 통해 수행하던 작업을 대신 수행할 수 있습니다. 이 도구들은 라이브러리 관리, 검색 및 가져오기 작업, 품질 프로파일 구성, 제공자 관리 및 시스템 작업을 포괄합니다. 주요 기능: - 이름付き 인스턴스와 기본 선택 기능을 통한 다중 인스턴스 지원 - readonly, confirm(기본값), full access 세 가지 모드의 권한 제어 - 쓰기 또는 파괴적 작업에 대한 확인 범위 설정 - Elicitation 지원이 없는 클라이언트를 위한 폴백 동작 - distroless 컨테이너 및 다중 아키텍처 이미지 지원을 갖춘 단일 정적 바이너리 - 포함된 Kubernetes 배포 매니페스트 구성은 단일 인스턴스용 환경 변수 또는 다중 인스턴스용 config.yaml 파일로 수행할 수 있습니다. 구성 파일은 환경 변수를 통한 secret 참조를 지원하여 ConfigMap에서 커밋하거나 마운트해도 안전합니다. 서버는 시작 시 구성 유효성 검사를 수행하여 운영 중 오류가 발생하기 전에 캐치합니다. 도구들은 서비스 및 접근 유형(read, write, destructive)별로 구성됩니다. Sonarr와 Radarr는 62개의 공통 도구명을 유지합니다. Bazarr는 자막 관리, Prowlarr는 인덱서 관리 및 릴리스 획득을 담당하며, qBittorrent와 NZBGet는 각각 Torrent 및 Usenet 다운로드 클라이언트 기능을 제공합니다. 서버에는 헬스 체크가 포함되어 있으며, stdio 및 HTTP 전송 모두를 지원하고 다양한 MCP 클라이언트에 대한 복사-붙여넣기 가능한 구성을 제공합니다. 응답 페이로드는 관련 필드만 포함되도록 프로젝션되어 충분하되 manageable한 크기인 상태를 유지합니다.