MCP server
by opensubtitles
Search and download movie & TV subtitles via OpenSubtitles subtitles API — supports title, IMDB/TMDB ID, file hash, epis
Downloads subtitles from OpenSubtitles.com using their API. Search by movie title, IMDB ID, file hash, or TV show episode and get subtitles in multiple formats.
OpenSubtitles MCP Server is an official MCP server published by opensubtitles that provides AI assistants with tools and capabilities via the Model Context Protocol. Search and download movie & TV subtitles via OpenSubtitles subtitles API — supports title, IMDB/TMDB ID, file hash, epis It is categorized under other, developer tools.
You can install OpenSubtitles MCP Server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
OpenSubtitles MCP Server is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
Useful MCP listing: OpenSubtitles MCP Server is the kind of server we cite when onboarding engineers to host + tool permissions.
Strong directory entry: OpenSubtitles MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
I recommend OpenSubtitles MCP Server for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
OpenSubtitles MCP Server reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
OpenSubtitles MCP Server has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Strong directory entry: OpenSubtitles MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
Useful MCP listing: OpenSubtitles MCP Server is the kind of server we cite when onboarding engineers to host + tool permissions.
OpenSubtitles MCP Server has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
According to our notes, OpenSubtitles MCP Server benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Useful MCP listing: OpenSubtitles MCP Server is the kind of server we cite when onboarding engineers to host + tool permissions.
showing 1-10 of 44
A TypeScript/Node.js-based MCP (Model Context Protocol) server for OpenSubtitles API integration. This server provides subtitle search and download functionality with a freemium model, using the Kong gateway at api.opensubtitles.com for all API management.
The OpenSubtitles MCP Server supports three modes:
Run as a web server on port 1620:
# Install dependencies
npm install
npm run build
# Start HTTP server
npm start
# or
PORT=1620 MCP_MODE=http node dist/index.js
Access points:
http://localhost:1620/healthhttp://localhost:1620/http://localhost:1620/web (Browser UI - No Node.js required!)http://localhost:1620/proxy (POST requests)http://localhost:1620/tools (Schema discovery)http://localhost:1620/sse (Server-Sent Events)npx @opensubtitles/mcp-server
npx @michaellatman/mcp-get@latest install @opensubtitles/mcp-server
For claude-code environments, you can add the server using the claude mcp add-json command:
claude mcp add-json "opensubtitles" '{"command":"npx","args":["-y","@opensubtitles/mcp-server@latest"],"env":{"MCP_MODE":"stdio","LOG_LEVEL":"info"},"disabled":false}'
Add to your Claude Desktop configuration:
{
"mcpServers": {
"opensubtitles": {
"command": "npx",
"args": ["-y", "@opensubtitles/mcp-server"],
"env": {
"MCP_MODE": "stdio",
"OPENSUBTITLES_USER_KEY": "your_api_key_here"
}
}
}
}
Connect to the hosted server at mcp.opensubtitles.com:
{
"mcpServers": {
"opensubtitles": {
"command": "npx",
"args": ["-y", "@opensubtitles/mcp-server", "remote-proxy.js"]
}
}
}
Or using the dedicated remote command:
{
"mcpServers": {
"opensubtitles": {
"command": "npx",
"args": ["-y", "mcp-opensubtitles-remote"]
}
}
}
Search for subtitles with comprehensive parameter support:
Parameters:
query (string): Text search queryimdb_id (number): IMDB ID for exact matchingtmdb_id (number): TMDB ID for exact matchingparent_imdb_id (number): Parent IMDB ID for TV seriesparent_tmdb_id (number): Parent TMDB ID for TV seriesseason_number (number): Season number for TV episodesepisode_number (number): Episode number for TV episodesyear (number): Release yearmoviehash (string): OpenSubtitles file hash for exact matchingmoviebytesize (number): File size in bytes for hash matchinglanguages (string): Comma-separated language codes (e.g., 'en,es,fr')machine_translated (string): Include machine translated subtitlesai_translated (string): Include AI translated subtitleshearing_impaired (string): Include hearing impaired subtitlesforeign_parts_only (string): Include foreign parts onlytrusted_sources (string): Only trusted sourcesorder_by (string): Sort orderorder_direction (string): Sort direction (asc/desc)Example:
await mcpClient.callTool("search_subtitles", {
query: "The Matrix",
year: 1999,
languages: "en"
});
Download subtitle content by ID:
Parameters:
subtitle_id (string, required): Subtitle ID from search resultsformat (string): Subtitle format (srt, ass, vtt) - defaults to 'srt'user_api_key (string): Optional user API key for authenticated downloadsExample:
await mcpClient.callTool("download_subtitle", {
subtitle_id: "123456",
format: "srt",
user_api_key: "your_api_key"
});
Calculate OpenSubtitles hash for local movie files:
Parameters:
file_path (string, required): Path to the movie fileExample:
await mcpClient.callTool("calculate_file_hash", {
file_path: "/path/to/movie.mkv"
});
await mcpClient.callTool("search_subtitles", {
query: "Inception",
year: 2010,
languages: "en"
});
// First calculate the hash
const hashResult = await mcpClient.callTool("calculate_file_hash", {
file_path: "/path/to/inception.mkv"
});
// Then search using the hash
await mcpClient.callTool("search_subtitles", {
moviehash: "8e245d9679d31e12",
moviebytesize: 12909756
});
await mcpClient.callTool("search_subtitles", {
parent_imdb_id: 944947, // Game of Thrones
season_number: 1,
episode_number: 5,
languages: "en"
});
The OpenSubtitles MCP Server has native n8n MCP client support for seamless workflow automation. Connect directly to the MCP server using n8n's built-in MCP client tools.
First, start the MCP server in HTTP mode:
# Option 1: Use npm script (recommended)
npm start
# Option 2: Direct command with custom port
MCP_MODE=http PORT=1620 node dist/index.js
# Option 3: Using environment variables
export MCP_MODE=http
export PORT=1620
node dist/index.js
The server will be available at:
http://localhost:1620http://localhost:1620/healthhttp://localhost:1620/message (Streamable HTTP)http://localhost:1620/json (Plain JSON for debugging)http://localhost:1620/debug (Server diagnostics)http://localhost:1620/sse (Server-Sent Events)Configure the n8n MCP Client Tool node:
http://localhost:1620/message (or your server URL)Configure the MCP Client node with these parameters:
{
"tool": "search_subtitles",
"arguments": {
"query": "The Matrix",
"year": 1999,
"languages": "en"
}
}
For manual HTTP integration, use HTTP Request node:
{
"method": "POST",
"url": "http://localhost:1620/message",
"headers": {
"Content-Type": "application/json"
},
"body": {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_subtitles",
"arguments": {
"query": "The Matrix",
"year": 1999,
"languages": "en"
}
}
}
}
{
"tool": "download_subtitle",
"arguments": {
"file_id": 123456,
"user_api_key": "{{ $env.OPENSUBTITLES_API_KEY }}"
}
}
{
"tool": "calculate_file_hash",
"arguments": {
"file_path": "/path/to/movie.mkv"
}
}
If you encounter JSON parsing errors:
http://localhost:1620/json instead of /messagehttp://localhost:1620/debug to verify server statusSet these environment variables in your n8n instance:
# OpenSubtitles API Key (optional but recommended)
OPENSUBTITLES_API_KEY=your_api_key_here
# MCP Server URL (if running on different host/port)
MCP_SERVER_URL=http://localhost:1620
All n8n HTTP requests will receive JSON-RPC 2.0 responses:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "Search results or download data..."
}
]
}
}
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.