TMDB MCP Server
<div align="center">
<img src="https://github.com/simentob.png" width="120" style="border-radius: 50%" />
# π¬ TMDB MCP Server
**Et Model Context Protocol-prosjekt som gir Claude direkte tilgang til filmdatabasen TMDB**
[](https://python.org)
[](https://github.com/modelcontextprotocol/python-sdk)
[](https://developer.themoviedb.org)
[](https://github.com/astral-sh/uv)
[](LICENSE)
</div>
---
## π€ Hva er dette?
Dette prosjektet kobler **Claude AI** til **The Movie Database (TMDB)** via **Model Context Protocol (MCP)**.
I stedet for Γ₯ sΓΈke manuelt pΓ₯ nettet kan du spΓΈrre Claude direkte i chatten:
> *"Hva trender pΓ₯ film denne uken?"*
> *"Finn anmeldelser av Oppenheimer"*
> *"SΓΈk etter norske thrillere fra 2023"*
Claude kaller riktig verktΓΈy, henter data fra TMDB, og svarer deg β alt i samme samtale.
---
## ποΈ Arkitektur
```
βββββββββββββββββββββββββββ
β Claude Desktop / MCP β
β Klient β
ββββββββββββββ¬βββββββββββββ
β stdio transport
βΌ
βββββββββββββββββββββββββββ
β main.py β β Starter MCP-serveren
ββββββββββββββ¬βββββββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β server.py β β Definerer MCP-verktΓΈyene (FastMCP)
ββββββββββββββ¬βββββββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β services.py β β Kaller TMDB REST API
ββββββββββββββ¬βββββββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β TMDB API β β Henter film- og seriedata
βββββββββββββββββββββββββββ
```
| Fil | Rolle |
|-----|-------|
| `main.py` | Inngangspunkt β starter serveren over stdio |
| `server.py` | Alle MCP-verktΓΈy definert med FastMCP-dekoratorer |
| `services.py` | Rene funksjoner som snakker med TMDB API |
---
## π οΈ Tilgjengelige verktΓΈy
NΓ₯r Claude er koblet til, har den tilgang til disse verktΓΈyene:
| VerktΓΈy | Beskrivelse |
|---------|-------------|
| π `tmdb_search_movies` | SΓΈk etter filmer pΓ₯ tittel, Γ₯r, region og sprΓ₯k |
| π `tmdb_multi_search` | SΓΈk pΓ₯ tvers av filmer, serier og personer |
| π `tmdb_trending_search` | Hent det som trender i dag eller denne uken |
| β `tmdb_movie_reviews` | Hent brukeranmeldelser for en film |
| πΊ `tmdb_tv_reviews` | Hent brukeranmeldelser for en TV-serie |
| π `tmdb_review_details` | Hent fullstendige detaljer for Γ©n anmeldelse via ID |
---
## π Kom i gang
### 1. Forutsetninger
- Python 3.12+
- [uv](https://github.com/astral-sh/uv) installert
- En TMDB API-nΓΈkkel (gratis β se nedenfor)
### 2. Skaff en TMDB API-nΓΈkkel
1. GΓ₯ til [themoviedb.org](https://www.themoviedb.org/) og opprett en konto
2. GΓ₯ til **Innstillinger β API** og be om en API-nΓΈkkel
3. Kopier **Bearer-tokenet** (den lange nΓΈkkelen kalt "API Read Access Token")

### 3. Klon og installer
```bash
git clone https://github.com/simentob/movies-mcp-server.git
cd movies-mcp-server
uv sync
```
### 4. Konfigurer API-nΓΈkkelen
Opprett en `.env`-fil i prosjektmappen:
```env
TMDB_API_KEY="din_bearer_token_her"
```

### 5. Start serveren
```bash
uv run main.py
```
Du skal se:
```
Starting MCP server...
```
---
## π₯οΈ Koble til Claude Desktop
Rediger konfigurasjonsfilen for Claude Desktop:
**macOS** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"tmdb-server": {
"command": "/opt/homebrew/bin/uv",
"args": [
"--directory",
"/ABSOLUTT/STI/TIL/movies-mcp-server",
"run",
"main.py"
]
}
}
}
```
**Windows** (`%APPDATA%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"tmdb-server": {
"command": "uv",
"args": [
"--directory",
"C:\\ABSOLUTT\\STI\\TIL\\movies-mcp-server",
"run",
"main.py"
]
}
}
}
```
Start Claude Desktop pΓ₯ nytt etter lagring. VerktΓΈyene skal nΓ₯ dukke opp i verktΓΈyvelgeren.
---
## π¬ Eksempelsamtaler
NΓ₯r Claude er koblet til kan du ha samtaler som dette:
> **Du:** Hva trender pΓ₯ film i dag?
>
> **Claude:** *(kaller `tmdb_trending_search`)* Her er dagens trendende filmer: ...
> **Du:** Finn anmeldelser av "Interstellar"
>
> **Claude:** *(kaller `tmdb_search_movies` og deretter `tmdb_movie_reviews`)* Her er anmeldelsene for Interstellar: ...
> **Du:** SΓΈk etter koreanske thrillere
>
> **Claude:** *(kaller `tmdb_multi_search`)* Fant flere koreanske thrillere: ...
---
## π Prosjektstruktur
```
movies-mcp-server/
βββ main.py # Starter MCP-serveren
βββ server.py # MCP-verktΓΈy (FastMCP)
βββ services.py # TMDB API-funksjoner
βββ pyproject.toml # Prosjektavhengigheter
βββ .env # API-nΓΈkkel (ikke committet)
βββ public/
β βββ subscribe_screenshot.png
β βββ env_key.png
βββ README.md
```
---
## π Merknader
- Dette prosjektet er **ikke tilknyttet TMDB**. Du mΓ₯ bruke din egen API-nΓΈkkel.
- Serveren bruker **stdio-transport**, som er standarden for lokale MCP-servere.
- API-nΓΈkler lastes fra `.env` og skrives aldri rett inn i koden β commit aldri `.env`-filen din.
- Les mer om MCP pΓ₯ [modelcontextprotocol.io](https://modelcontextprotocol.io) og i [MCP servers-repoet](https://github.com/modelcontextprotocol/servers).
---
<div align="center">
Laget av [simentob](https://github.com/simentob)
</div>
TDQS
Scored across 6 tools
Most tools have clear boundaries (movie vs TV reviews, search vs trending), but tmdb_search_movies and tmdb_multi_search overlap in purpose since multi-search includes movies. This creates minor ambiguity when an agent needs a movie-only search.
All tools use the consistent tmdb_ prefix and lowercase_with_underscores, but the structure varies: some are noun phrases (movie_reviews) while others are verb phrases (search_movies) or compound nouns (multi_search, trending_search). This mixed pattern is mostly readable but not perfectly uniform.
Six tools is a well-scoped set for a TMDB server focused on search, trending, and reviews. The count is neither too thin nor too heavy.
The server covers the search/review niche well: movie and TV reviews, review details, and search/trending. However, comprehensive TMDB operations like movie details, credits, or recommendations are missing, though these fall outside the apparent niche.