Trakt MCP Server
by kud
README.md
<div align="center">




**MCP server for Trakt — TV show and movie tracking with full sync support.**
<a href="https://kud.io/projects/mcp-trakt">Website</a> · <a href="https://kud.io/projects/mcp-trakt/docs">Documentation</a>
</div>
## Features
- **53 tools** — complete coverage of the Trakt API: search, metadata, sync, ratings, watchlists, and check-ins.
- **OAuth via macOS Keychain** — credentials stored securely; one-time setup with `npx @kud/mcp-trakt setup`.
- **Personalised calendars** — see your upcoming episodes and movies, or browse what's airing across all Trakt users.
- **Full sync support** — history, collection, watched state, playback progress, and last-activity timestamps.
- **Scrobble lifecycle** — start, pause, and stop playback tracking so watches are recorded automatically.
- **Recommendations** — personalised movie and show suggestions driven by your viewing history.
## Install
### 1. Create a Trakt application
Create an app at [trakt.tv/oauth/applications/new](https://trakt.tv/oauth/applications/new) — or manage existing ones at [trakt.tv/oauth/applications](https://trakt.tv/oauth/applications):
- **Redirect URI** — set it to `urn:ietf:wg:oauth:2.0:oob`. This server authenticates with Trakt's device flow, which never redirects, but Trakt requires the field; `oob` is the standard out-of-band placeholder.
- Copy the **Client ID** and **Client Secret** — you'll paste them in the next step.
### 2. Authenticate
Run the one-time OAuth setup. It exchanges your credentials for an access token and stores everything in the macOS Keychain (service `mcp-trakt`):
```sh
npx @kud/mcp-trakt@latest setup
```
> **Credentials resolution:** the server reads from the macOS Keychain by default. On platforms without Keychain (Linux, CI, Docker), set `MCP_TRAKT_CLIENT_ID` and `MCP_TRAKT_ACCESS_TOKEN` instead — env vars take precedence over the Keychain.
Then register the server with your MCP client:
```sh
claude mcp add trakt npx -- -y @kud/mcp-trakt@latest
```
Or add it manually to your MCP client config:
```json
{
"mcpServers": {
"trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}
```
## Usage
Once connected, the following tools are available grouped by category.
### Search
| Tool | Description |
| -------- | ---------------------------------------------------- |
| `search` | Search for movies, shows, episodes, people, or lists |
### Movies
| Tool | Description |
| --------------------------- | --------------------------------------------------- |
| `get_movie` | Get detailed information about a movie |
| `get_trending_movies` | Movies currently being watched across Trakt |
| `get_popular_movies` | Most popular movies on Trakt |
| `get_anticipated_movies` | Most anticipated movies based on watchlist activity |
| `get_boxoffice_movies` | Top 10 weekend box office movies, updated weekly |
| `get_movie_ratings` | Community rating distribution for a movie |
| `get_movie_related` | Movies related to a given movie |
| `get_movie_people` | Cast and crew for a movie |
| `get_movie_recommendations` | Personalised movie recommendations |
### Shows
| Tool | Description |
| -------------------------- | ------------------------------------------------------- |
| `get_show` | Get detailed information about a TV show |
| `get_trending_shows` | TV shows currently being watched across Trakt |
| `get_popular_shows` | Most popular TV shows on Trakt |
| `get_anticipated_shows` | Most anticipated TV shows based on watchlist activity |
| `get_show_ratings` | Community rating distribution for a TV show |
| `get_show_seasons` | All seasons for a show, optionally with episode details |
| `get_show_people` | Cast and crew for a TV show |
| `get_show_related` | TV shows related to a given show |
| `get_show_recommendations` | Personalised TV show recommendations |
### Episodes
| Tool | Description |
| --------------------- | ----------------------------------- |
| `get_season_episodes` | All episodes in a specific season |
| `get_episode` | Full details for a specific episode |
### People
| Tool | Description |
| -------------------- | ---------------------------------------------- |
| `get_person` | Details about a person (actor, director, etc.) |
| `get_person_credits` | Movie or show credits for a person |
### Calendar
| Tool | Description |
| ------------------------ | ------------------------------------------- |
| `get_my_show_calendar` | Upcoming episodes based on shows you watch |
| `get_my_movie_calendar` | Upcoming movies based on your watchlist |
| `get_all_show_calendar` | All shows airing across all Trakt users |
| `get_all_movie_calendar` | All movies releasing across all Trakt users |
### History
| Tool | Description |
| --------------------- | ---------------------------------------- |
| `get_history` | Watch history for the authenticated user |
| `add_to_history` | Mark movies or episodes as watched |
| `remove_from_history` | Remove items from watch history |
### Collection
| Tool | Description |
| ------------------------ | ------------------------------------------------- |
| `get_collection_movies` | All movies in your collection |
| `get_collection_shows` | All shows in your collection |
| `add_to_collection` | Add movies, shows, or episodes to your collection |
| `remove_from_collection` | Remove items from your collection |
### Watched
| Tool | Description |
| -------------------- | ------------------------------------------------------- |
| `get_watched_movies` | All movies you have watched with play counts |
| `get_watched_shows` | All shows you have watched with play counts per episode |
### Playback
| Tool | Description |
| ----------------- | ---------------------------------------- |
| `get_playback` | Paused playback progress to resume later |
| `delete_playback` | Delete a paused playback entry |
### Sync
| Tool | Description |
| -------------------------- | -------------------------------------------------- |
| `get_sync_last_activities` | Timestamps for when each resource was last updated |
### Ratings
| Tool | Description |
| --------------- | ---------------------------------------------------- |
| `get_ratings` | Ratings you have given, filterable by type and value |
| `add_rating` | Rate movies, shows, seasons, or episodes (1–10) |
| `remove_rating` | Remove ratings from movies, shows, or episodes |
### Watchlist
| Tool | Description |
| ----------------------- | ------------------------------------------------- |
| `get_watchlist` | Your watchlist, filterable by type and sort order |
| `add_to_watchlist` | Add movies, shows, or episodes to your watchlist |
| `remove_from_watchlist` | Remove items from your watchlist |
### Check-in
| Tool | Description |
| ---------------- | --------------------------------------------------------- |
| `checkin` | Check in to a movie or episode you are watching right now |
| `delete_checkin` | Cancel the current active check-in |
### Scrobble
| Tool | Description |
| ---------------- | ------------------------------------------------------ |
| `scrobble_start` | Start scrobbling when playback begins |
| `scrobble_pause` | Pause scrobbling when playback is paused |
| `scrobble_stop` | Stop scrobbling when playback ends to record the watch |
### User
| Tool | Description |
| ------------------- | -------------------------------------- |
| `get_user_profile` | Profile information for any Trakt user |
| `get_user_stats` | Watch statistics for a user |
| `get_user_watching` | What a user is currently watching |
## Development
```sh
git clone https://github.com/kud/mcp-trakt.git
cd mcp-trakt
npm install
npm run dev # run directly with tsx, no build needed
npm run inspect:dev # open the MCP Inspector against live tsx
npm run build # compile TypeScript to dist/
npm run typecheck # type-check without emitting
npm test # run the test suite
```
📚 **Full documentation → [mcp-trakt/docs](https://kud.io/projects/mcp-trakt/docs)**
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues