omdb-mcp
omdb-mcp
An MCP (Model Context Protocol) server for the OMDb API — search movies, series, and episodes from any MCP-compatible client.
Built with FastMCP. Supports both STDIO and Streamable HTTP transports, with optional bearer-token auth for HTTP mode.
Features
Five tools:
search_movies,get_by_title,get_by_imdb_id,get_episode,get_seasonDual transport: STDIO (for MetaMCP / Claude Desktop / Hermes) and Streamable HTTP (for standalone agents)
Optional bearer-token authentication for HTTP mode
Configuration via
.envor environment variablesMinimal dependencies:
fastmcp,httpx,python-dotenv
Install
# Recommended: run directly with uvx (no install needed)
uvx omdb-mcp
# Or install into your environment
pip install omdb-mcpGet a free OMDb API key at https://www.omdbapi.com/apikey.aspx (1,000 requests/day on the free tier).
Configuration
All settings come from environment variables (a .env file in the working directory is auto-loaded).
Variable | Default | Description |
| (required) | Your OMDb API key |
|
|
|
|
| HTTP bind address ( |
|
| HTTP port |
|
| HTTP mount path |
| (unset) | If set, HTTP clients must send |
|
|
|
|
| OMDb HTTP timeout (seconds) |
|
| Override only if proxying/mirroring OMDb |
See .env.example for a copy-paste template.
Running
STDIO mode (for MCP clients that spawn the process)
omdb-mcp
# or with uv:
uvx omdb-mcpStreamable HTTP mode (for standalone, long-lived service)
omdb-mcp-http
# or override port/host:
omdb-mcp-http --port 8087 --host 0.0.0.0CLI flags --transport, --host, --port, --path override env vars.
Client setup
MetaMCP
Option A — STDIO (simplest, no service to manage):
Type: STDIO
Command:
uvxArgs:
omdb-mcpEnv:
OMDB_API_KEY=your_key_here
Option B — Streamable HTTP (standalone service):
Run the server on the host:
OMDB_API_KEY=your_key OMDB_MCP_AUTH_TOKEN=mysecret omdb-mcp-httpIn MetaMCP:
Type: Streamable HTTP
URL:
http://host.docker.internal:8087/mcpHeader:
Authorization: Bearer mysecret(ifOMDB_MCP_AUTH_TOKENis set)
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"omdb": {
"command": "uvx",
"args": ["omdb-mcp"],
"env": {
"OMDB_API_KEY": "your_key_here"
}
}
}
}Cursor / Windsurf / Cline
Same JSON shape, different config path. Cursor reads ~/.cursor/mcp.json:
{
"mcpServers": {
"omdb": {
"command": "uvx",
"args": ["omdb-mcp"],
"env": { "OMDB_API_KEY": "your_key_here" }
}
}
}Generic Streamable HTTP client
{
"mcpServers": {
"omdb": {
"url": "http://127.0.0.1:8087/mcp",
"headers": {
"Authorization": "Bearer your_token_here"
}
}
}
}Tools
Tool | OMDb param(s) | Description |
|
| Free-text search (paginated, 10 per page) |
|
| Lookup by exact title |
|
| Lookup by IMDb ID ( |
|
| Single TV episode |
|
| All episodes in a season |
Running as a service (HTTP mode)
macOS — launchd
Create ~/Library/LaunchAgents/com.dworf.omdb-mcp.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.dworf.omdb-mcp</string>
<key>ProgramArguments</key>
<array>
<string>/Users/YOU/.local/bin/uvx</string>
<string>omdb-mcp-http</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>OMDB_API_KEY</key><string>your_key_here</string>
<key>OMDB_MCP_AUTH_TOKEN</key><string>your_token_here</string>
<key>OMDB_MCP_HOST</key><string>127.0.0.1</string>
<key>OMDB_MCP_PORT</key><string>8087</string>
</dict>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>/tmp/omdb-mcp.log</string>
<key>StandardErrorPath</key><string>/tmp/omdb-mcp.err</string>
</dict>
</plist>Load it:
launchctl load ~/Library/LaunchAgents/com.dworf.omdb-mcp.plist
# stop / unload:
launchctl unload ~/Library/LaunchAgents/com.dworf.omdb-mcp.plistLinux — systemd
Create ~/.config/systemd/user/omdb-mcp.service:
[Unit]
Description=OMDb MCP server (Streamable HTTP)
After=network.target
[Service]
ExecStart=%h/.local/bin/uvx omdb-mcp-http
Environment=OMDB_API_KEY=your_key_here
Environment=OMDB_MCP_AUTH_TOKEN=your_token_here
Environment=OMDB_MCP_HOST=127.0.0.1
Environment=OMDB_MCP_PORT=8087
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable --now omdb-mcp
systemctl --user status omdb-mcp
journalctl --user -u omdb-mcp -fDocker
FROM python:3.12-slim
RUN pip install --no-cache-dir omdb-mcp
EXPOSE 8087
ENV OMDB_MCP_HOST=0.0.0.0 OMDB_MCP_PORT=8087
CMD ["omdb-mcp-http"]docker build -t omdb-mcp .
docker run -d --name omdb-mcp -p 8087:8087 \
-e OMDB_API_KEY=your_key \
-e OMDB_MCP_AUTH_TOKEN=your_token \
--restart unless-stopped omdb-mcpDevelopment
git clone https://github.com/Dworf/omdb-mcp
cd omdb-mcp
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytestSecurity note
If you bind to 0.0.0.0 without setting OMDB_MCP_AUTH_TOKEN, anyone on the network can use your OMDb API key. The server logs a warning at startup in that case — set a token in any non-localhost deployment.
Changelog
v0.1.0 — 2026-05-14
Initial release.
Five tools:
search_movies,get_by_title,get_by_imdb_id,get_episode,get_season.Dual transport: STDIO (default) and Streamable HTTP.
Optional bearer-token auth for HTTP mode.
.envloading viapython-dotenv.20 unit tests; smoke-tested against the live OMDb API.
Acknowledgements
OMDb API — Brian Fritz's free movie/series database. If you use this MCP server in production, please consider donating to OMDb or upgrading to a Patreon-tier key.
FastMCP — the Python MCP framework this server is built on.
Model Context Protocol — the open protocol that makes this possible.
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dworf/omdb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server