Overseerr MCP Server

by jmagar
Verified
# Overseerr MCP A Model Context Protocol (MCP) integration for Overseerr that enables natural language interaction with your media request system through Claude AI. This server allows you to search for movies and TV shows, make media requests, and manage your Overseerr instance using conversational language. ## Example Conversations Here are some example conversations you can have with Claude using this server: ``` You: Can you find any recent sci-fi movies? Claude: Let me search for recent science fiction films... [Uses overseerr:search to find recent sci-fi movies] You: That looks good! Can you request the second one? Claude: I'll request that movie for you... [Uses overseerr:request to submit the media request] You: What TV shows are available about cooking? Claude: I'll search for cooking-related TV shows... [Uses overseerr:search with type='tv' to find cooking shows] ``` ## Features ### Media Search - Search across movies, TV shows, and people - Get detailed information about media including: - Title and release date - Plot overview - Availability status - Request status - Filter by media type (movie/TV/person) - Natural language queries (e.g., "find recent sci-fi movies" or "search for shows like Breaking Bad") ### Media Requests - Request movies and TV shows - Specify individual seasons for TV shows - Track request status - Get notifications about request updates - Natural language requests (e.g., "request the latest Batman movie" or "add Succession to my watchlist") ### Integration - Seamless Claude AI integration through stdio transport - Real-time interaction with your Overseerr instance - Secure API key handling - Rate limiting and error handling - Easy configuration through environment variables ## Setup ### Prerequisites - Node.js - pnpm - Claude Desktop - Overseerr instance ### Quick Start 1. Install dependencies: ```bash pnpm install ``` 2. Build the project: ```bash pnpm build ``` 3. Configure environment: ```bash # Copy template cp .env.template .env # Edit .env with your values OVERSEERR_URL=your_overseerr_url OVERSEERR_API_KEY=your_api_key ``` 4. Configure Claude Desktop: Linux/Mac: ```json { "overseerr": { "command": "node", "args": ["/path/to/overseerr/packages/server/dist/index.js"], "cwd": "/path/to/overseerr", "transport": { "type": "stdio" }, "env": { "OVERSEERR_URL": "your_overseerr_url", "OVERSEERR_API_KEY": "your_api_key" } } } ``` Windows (note the double backslashes): ```json { "overseerr": { "command": "node", "args": ["C:\\path\\to\\overseerr\\packages\\server\\dist\\index.js"], "cwd": "C:\\path\\to\\overseerr", "transport": { "type": "stdio" }, "env": { "OVERSEERR_URL": "your_overseerr_url", "OVERSEERR_API_KEY": "your_api_key" } } } ``` 5. Start the server: ```bash pnpm start ``` ## Technical Details ### Project Structure ``` packages/ ├── config/ # Configuration management ├── overseerr/ # Overseerr API client ├── server/ # MCP server implementation └── shared/ # Shared types and utilities ``` ### Available Tools #### Search Media (`overseerr:search`) Search for movies, TV shows, and people in the Overseerr database. ```typescript { // The search query - can be a title, person, or general description query: string, // Optional: Filter by type // - 'movie': Only search movies // - 'tv': Only search TV shows // - 'person': Only search people type?: 'movie' | 'tv' | 'person' } ``` Example queries: - "Search for Inception" - "Find TV shows from 2023" - "Look for movies with Tom Hanks" #### Request Media (`overseerr:request`) Request movies or TV shows to be added to your media library. ```typescript { // The TMDB ID of the media to request mediaId: number, // Type of media being requested // - 'movie': Request a movie // - 'tv': Request a TV show mediaType: 'movie' | 'tv', // Optional: For TV shows, specify which seasons to request // If not provided, requests all available seasons seasons?: number[] } ``` Example requests: - Request a movie: "Request The Matrix" - Request specific seasons: "Add seasons 1-3 of The Office" - Request all seasons: "Request the complete series of Breaking Bad" ### Configuration #### Environment Variables - `OVERSEERR_URL`: Your Overseerr instance URL - `OVERSEERR_API_KEY`: Your Overseerr API key ### Error Handling The server implements robust error handling: - API errors with meaningful messages - Rate limiting protection - Request validation - Connection error recovery ## Contributing 1. Fork the repository 2. Create a feature branch 3. Commit your changes 4. Push to the branch 5. Create a Pull Request ## License MIT