moviefinder-mcp
README.md
# moviefinder-mcp
An [MCP](https://modelcontextprotocol.io) server that wraps the
[TMDB](https://www.themoviedb.org/) API so an MCP-aware client (Claude Desktop,
Claude Code, etc.) can search movies and TV, look up details, find what's
trending, get recommendations, and check where a title is streaming.
## Tools
| Tool | Description |
| --- | --- |
| `search_movies` | Search movies by title; optional `year`. |
| `search_tv` | Search TV shows by name. |
| `get_movie_details` | Movie details with cast, director, and trailer URL. |
| `get_recommendations` | TMDB recommendations for a movie ID. |
| `get_similar` | Movies similar to a movie ID. |
| `get_trending` | Trending `movie` / `tv` / `all` for `day` or `week`. |
| `where_to_stream` | Watch providers (stream / rent / buy) by country (default `US`). |
| `discover_movies` | Discover by `genre` name, `min_rating`, `year`, `sort_by`. |
All tools return summarized JSON (id, title, year, overview, rating, poster URL,
plus tool-specific fields) instead of raw TMDB payloads.
## Setup
Requirements: **Node 20+**.
```bash
npm install
cp .env.example .env
# edit .env and paste your TMDB v4 read access token
npm run build
npm start # runs the compiled server over stdio
```
### Getting a TMDB API key
1. Create a TMDB account at <https://www.themoviedb.org/>.
2. Open <https://www.themoviedb.org/settings/api>.
3. Copy the **API Read Access Token (v4 auth)** — *not* the v3 API key.
4. Put it in `.env` as `TMDB_API_KEY=...`.
The server sends it as `Authorization: Bearer <token>`.
## Register with Claude Desktop
Edit `claude_desktop_config.json` (macOS:
`~/Library/Application Support/Claude/claude_desktop_config.json`,
Windows: `%APPDATA%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"moviefinder": {
"command": "node",
"args": ["/absolute/path/to/moviefinder-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your_v4_read_access_token_here"
}
}
}
}
```
Restart Claude Desktop. The tools above will appear under the `moviefinder`
server.
## Notes
- The genre list (`/genre/movie/list`) is fetched once and cached in memory for
`discover_movies`.
- `401` / `404` / `429` responses are surfaced with actionable messages.
- Inputs are validated with `zod` before any TMDB call.
TDQS
A3.6/5.0
Scored across 8 tools
Disambiguation5/5
Each tool has a clearly distinct purpose. Discovery, details, recommendations, similar, trending, search (movies and TV), and streaming options are all well-separated, with no ambiguous overlaps.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern using snake_case (e.g., discover_movies, get_movie_details, search_movies). The naming is predictable and clear.
Tool Count5/5
With 8 tools, the scope is well-balanced for a movie/TV information server. Each tool addresses a distinct need without being excessive or insufficient.
Completeness4/5
The set covers key functionalities: search, discover, trending, details, recommendations, similar, and streaming. A minor gap is the lack of TV show details (only search_tv exists), but overall coverage is solid.
Maintenance
ActivityInactive
ResponsivenessNo issues