tmdb-mcp
An MCP server for managing TMDB lists (movies/TV) from any MCP client, with OAuth authentication via Cloudflare Workers.
README
tmdb-mcp
An MCP server for managing your TMDB lists from Claude, Cursor, or any MCP client. Runs on Cloudflare Workers; bridges OAuth 2.1 to TMDB's v4 auth flow so your TMDB token never leaves the worker.
Tools
| Tool | Description |
|---|---|
list_lists |
List all lists for the authenticated TMDB account |
get_list |
Fetch a list with its items (paginated) |
create_list |
Create a new list |
update_list |
Rename, change description, or toggle public |
delete_list |
Delete a list |
add_items |
Add movies/TV shows to a list |
remove_items |
Remove items from a list |
search_movie |
Search movies by title (returns ids usable as media_id) |
search_tv |
Search TV shows by title |
Architecture
[MCP client] ──OAuth 2.1── [Worker] ──TMDB v4 auth── [themoviedb.org]
│
├── KV (oauth state, opaque tokens)
└── Durable Object (per-session MCP agent)
- The worker presents a standard OAuth 2.1 authorization server to MCP clients.
- On
/authorize, it requests a TMDB v4request_token, redirects the user to TMDB's approval page, and exchanges the approved token for a v4access_tokenon/callback. - The TMDB token is stored only in the per-session props object; clients receive an opaque bearer minted by @cloudflare/workers-oauth-provider.
- All TMDB API calls happen server-side.
Prerequisites
- A Cloudflare account with Workers enabled
- A TMDB account with a v4 API Read Access Token from Settings → API
- Bun
Setup
git clone https://github.com/dendotai/tmdb-mcp.git
cd tmdb-mcp
bun install
Create your own KV namespace and replace the id in wrangler.jsonc:
bunx wrangler kv namespace create OAUTH_KV
Set the TMDB application token as a Worker secret:
bunx wrangler secret put TMDB_APP_TOKEN
# paste your v4 API Read Access Token
Deploy:
bun run deploy
For local development, copy .dev.vars.example to .dev.vars, fill in the token, then:
bun run dev
Connect
Replace https://your-worker.your-subdomain.workers.dev below with your deployed URL.
Claude Code
claude mcp add --transport http tmdb https://your-worker.your-subdomain.workers.dev/mcp
You'll be prompted to complete the OAuth flow in your browser on first use.
Cursor
Settings → MCP → Add new MCP server, paste the URL ending in /mcp.
claude.ai (web)
Settings → Connectors → Add custom connector → paste the /mcp URL.
MCP Inspector
bun run inspector
Then point it at https://your-worker.your-subdomain.workers.dev/mcp (Streamable HTTP transport).
Troubleshooting
- Stream the live worker log:
bun run tail TMDB request_token failed— yourTMDB_APP_TOKENsecret is missing or invalid. Reset it withbunx wrangler secret put TMDB_APP_TOKEN.Authorization session expired or unknown— the OAuth round-trip took longer than 10 minutes, or the user opened the approval link in a different browser session. Restart the connector.- claude.ai web won't finish the connector dance — see the regression note above; verify the server with Claude Code or MCP Inspector.
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.