████████╗██████╗ █████╗ ██╗ ██╗████████╗
╚══██╔══╝██╔══██╗██╔══██╗██║ ██╔╝╚══██╔══╝
██║ ██████╔╝███████║█████╔╝ ██║
██║ ██╔══██╗██╔══██║██╔═██╗ ██║
██║ ██║ ██║██║ ██║██║ ██╗ ██║
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
A Trakt MCP server with 36 tools for TV show and movie tracking, sync, ratings, watchlists, and checkins.
Features • Quick Start • Installation • Tools • Development
- 🔍 Search movies, shows, episodes, and people across Trakt's database
- 🎬 Movies — details, trending, popular, related, ratings, and cast
- 📺 Shows & Episodes — full show info, seasons, episode details, cast
- 👤 People — actor/director profiles and filmographies
- 📅 Calendar — your personalised upcoming episodes and movies
- 🕐 History — view, add, and remove watch history entries
- ⭐ Ratings — get, add, and remove ratings for movies, shows, and episodes
- 📋 Watchlist — full CRUD on your movie/show watchlist
- ✅ Checkin — check into what you're watching right now
- 🤖 Recommendations — personalised movie and show suggestions
Go to trakt.tv/oauth/applications/new and create a new app. You only need to fill in the name — leave the redirect URI as urn:ietf:wg:oauth:2.0:oob. Copy your Client ID and Client Secret.
npx @kud/mcp-trakt setupThis launches the device OAuth flow: paste your Client ID and Secret when prompted, visit the URL shown, enter the code, and your credentials are saved to ~/.config/trakt.json. You never touch them again.
No credentials needed in the config — the server reads them from ~/.config/trakt.json automatically.
{
"mcpServers": {
"Trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}Run npx @kud/mcp-trakt setup first — this saves your credentials to ~/.config/trakt.json so no tokens are needed in any config file.
Claude Code CLI
claude mcp add trakt npx -- -y @kud/mcp-trakt@latestClaude Desktop — macOS
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"Trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}Restart Claude Desktop after saving.
Claude Desktop — Windows
Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"Trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"Trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"Trakt": {
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}VSCode
Add to .vscode/mcp.json:
{
"servers": {
"Trakt": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@kud/mcp-trakt@latest"]
}
}
}| Tool | Description |
|---|---|
search |
Search for movies, shows, episodes, people, or lists |
| 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_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 |
| Tool | Description |
|---|---|
get_show |
Get detailed information about a TV show |
get_trending_shows |
Shows currently being watched across Trakt |
get_popular_shows |
Most popular TV shows on Trakt |
get_show_ratings |
Community rating distribution for a show |
get_show_seasons |
All seasons, optionally with full episode details |
get_show_people |
Cast and crew for a show |
| Tool | Description |
|---|---|
get_season_episodes |
All episodes in a specific season |
get_episode |
Full details for a specific episode |
| Tool | Description |
|---|---|
get_person |
Actor or director profile |
get_person_credits |
Movie or show credits for a person |
| Tool | Description |
|---|---|
get_my_show_calendar |
My upcoming episodes (personalised) |
get_my_movie_calendar |
My upcoming movies (personalised) |
get_all_show_calendar |
All shows premiering and airing across Trakt |
| Tool | Description |
|---|---|
get_history |
Watch history for the authenticated user |
add_to_history |
Mark movies or episodes as watched |
remove_from_history |
Remove entries from watch history |
| Tool | Description |
|---|---|
get_ratings |
Ratings given by the authenticated user |
add_rating |
Rate movies, shows, seasons, or episodes (1–10) |
remove_rating |
Remove ratings from items |
| Tool | Description |
|---|---|
get_watchlist |
View the authenticated user's watchlist |
add_to_watchlist |
Add movies, shows, or episodes |
remove_from_watchlist |
Remove items from the watchlist |
| Tool | Description |
|---|---|
checkin |
Check in to a movie or episode you're watching now |
delete_checkin |
Cancel the current active checkin |
| Tool | Description |
|---|---|
get_movie_recommendations |
Personalised movie recommendations |
get_show_recommendations |
Personalised TV show recommendations |
| Tool | Description |
|---|---|
get_user_profile |
Profile info for any user (or yourself) |
get_user_stats |
Watch statistics for a user |
get_user_watching |
What a user is currently watching |
Total: 36 Tools
"What movies are trending on Trakt right now?"
"Search for Breaking Bad and give me its full details."
"What episodes of Severance do I have coming up this week?"
"Mark that I just watched Dune: Part Two — give it a 9."
"Add The Penguin to my watchlist."
"Check me in to S02E01 of The Bear."
"What have I watched this month?"
"Give me 10 personalised movie recommendations."
"Who plays the lead in Succession and what else have they been in?"
"What are my all-time watch stats?"
mcp-trakt/
├── src/
│ └── index.ts # Full server — all 36 tools
├── dist/ # Compiled output (git-ignored)
├── setup.js # OAuth device flow setup script
├── package.json
└── tsconfig.json
| Script | Purpose |
|---|---|
npm run setup |
Run OAuth device flow and save credentials |
npm run build |
Compile TypeScript to dist/ |
npm run build:watch |
Watch mode compilation |
npm run dev |
Run directly with tsx (no build needed) |
npm run inspect |
Open MCP Inspector against built output |
npm run inspect:dev |
Open MCP Inspector with live tsx |
npm run typecheck |
Type-check without emitting |
npm run clean |
Remove dist/ |
# Run without building
npm run dev
# Inspect all tools interactively in the browser
npm run inspect:devTrakt uses OAuth 2.0. The npm run setup script handles the full device flow — you never manage tokens manually.
- Run
npm run setup - Enter your Client ID and Client Secret from trakt.tv/oauth/applications
- Visit the URL shown (e.g.
https://trakt.tv/activate), enter the displayed code - Tokens are saved to
~/.config/trakt.json— the server reads them automatically on every start
To refresh an expired token, just run npm run setup again.
curl -s https://api.trakt.tv/users/me \
-H "trakt-api-version: 2" \
-H "trakt-api-key: YOUR_CLIENT_ID" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" | jq .usernameServer not showing in Claude Desktop
- Check JSON syntax in
claude_desktop_config.json - Verify the path to
dist/index.jsis absolute and the file exists - Run
npm run buildifdist/is missing
401 / auth errors
- Access tokens expire after 3 months — regenerate via the OAuth device flow
- Make sure
TRAKT_CLIENT_IDmatches the app your access token was issued for - Check logs: Claude Desktop → Help → Show Logs
No data returned for personal endpoints (history, watchlist, etc.)
- These require a valid
TRAKT_ACCESS_TOKEN— public/read-onlyclient_idalone is not enough - Make sure the token was granted the correct scopes during the OAuth flow
- Never commit
~/.config/trakt.jsonor any file containing tokens to source control ~/.config/trakt.jsonis user-scoped and never read by MCP client configs- Rotate your access token if it is accidentally exposed — run
npm run setupagain - Trakt access tokens expire after 90 days — re-run
npm run setupto refresh - Treat your access token like a password: full account access with history/checkin write rights
| Runtime | Node.js ≥ 20 |
| Language | TypeScript 5.x |
| Target | ES2023 |
| Protocol | Model Context Protocol (MCP) SDK 1.x |
| HTTP Client | Native fetch |
| Module System | ESM ("type": "module") |
Issues and PRs welcome at github.com/kud/mcp-trakt.
MIT © kud
Built on the Model Context Protocol SDK by Anthropic. API provided by Trakt.
Open an issue at github.com/kud/mcp-trakt/issues.
Made with ❤️ for TV and movie fans
⭐ Star this repo if it's useful • ↑ Back to top