OpenRouter MCP Multimodal
A production-grade MCP server that connects AI coding agents to OpenRouter's unified LLM API over stdio. It supports 300+ models for chat, vision, audio, and video analysis and generation, including features like web search, structured output, and multi-model fusion.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 102 GitHub stars
What you can do with it
- Chat with 300+ LLMs via OpenRouter
- Analyze images, audio, and video
- Generate images, speech, music, and video
- Embed text using 37+ embedding models
Source and maintenance
- Last repository push
- Latest release
- v5.1.3
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
@stabgan/openrouter-mcp-multimodal 4.5.1
{
"version": "4.5.1",
"transport": "stdio",
"identifier": "@stabgan/openrouter-mcp-multimodal",
"registryType": "npm",
"environmentVariables": [
{
"name": "OPENROUTER_API_KEY",
"format": "string",
"isRequired": true,
"description": "OpenRouter API key. Get one free at https://openrouter.ai/keys"
},
{
"name": "OPENROUTER_DEFAULT_MODEL",
"format": "string",
"description": "Default model for chat + analyze tools. Defaults to nvidia/nemotron-nano-12b-v2-vl:free."
},
{
"name": "OPENROUTER_OUTPUT_DIR",
"format": "string",
"description": "Sandbox root for save_path on generate_* tools. Defaults to the current working directory."
},
{
"name": "OPENROUTER_MAX_TOKENS",
"format": "string",
"description": "Default max_tokens for chat_completion when unset in the request."
},
{
"name": "OPENROUTER_PROVIDER_SORT",
"format": "string",
"description": "price / throughput / latency"
},
{
"name": "OPENROUTER_PROVIDER_IGNORE",
"format": "string",
"description": "CSV of provider slugs to exclude."
},
{
"name": "OPENROUTER_PROVIDER_ORDER",
"format": "string",
"description": "JSON array or CSV of preferred provider IDs."
},
{
"name": "OPENROUTER_PROVIDER_QUANTIZATIONS",
"format": "string",
"description": "CSV of quantization levels (fp16,int8)."
},
{
"name": "OPENROUTER_PROVIDER_REQUIRE_PARAMETERS",
"format": "string",
"description": "true/false. Require providers to support all request params."
},
{
"name": "OPENROUTER_PROVIDER_DATA_COLLECTION",
"format": "string",
"description": "allow/deny"
},
{
"name": "OPENROUTER_PROVIDER_ALLOW_FALLBACKS",
"format": "string",
"description": "true/false"
},
{
"name": "OPENROUTER_CACHE_RESPONSES",
"format": "string",
"description": "Enable response caching server-wide. Sends X-OpenRouter-Cache: true on every chat/analyze call unless overridden per-request. Zero tokens billed on cache hits."
},
{
"name": "OPENROUTER_INCLUDE_REASONING",
"format": "string",
"description": "Enable reasoning tokens passthrough server-wide. Adds _meta.reasoning to chat_completion responses for DeepSeek R1 / Gemini Thinking / Opus 4.7."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"openrouter-mcp-multimodal": {
"command": "npx",
"args": [
"-y",
"@stabgan/openrouter-mcp-multimodal@4.5.1"
],
"env": {
"OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
"OPENROUTER_DEFAULT_MODEL": "<YOUR_OPENROUTER_DEFAULT_MODEL>",
"OPENROUTER_OUTPUT_DIR": "<YOUR_OPENROUTER_OUTPUT_DIR>",
"OPENROUTER_MAX_TOKENS": "<YOUR_OPENROUTER_MAX_TOKENS>",
"OPENROUTER_PROVIDER_SORT": "<YOUR_OPENROUTER_PROVIDER_SORT>",
"OPENROUTER_PROVIDER_IGNORE": "<YOUR_OPENROUTER_PROVIDER_IGNORE>",
"OPENROUTER_PROVIDER_ORDER": "<YOUR_OPENROUTER_PROVIDER_ORDER>",
"OPENROUTER_PROVIDER_QUANTIZATIONS": "<YOUR_OPENROUTER_PROVIDER_QUANTIZATIONS>",
"OPENROUTER_PROVIDER_REQUIRE_PARAMETERS": "<YOUR_OPENROUTER_PROVIDER_REQUIRE_PARAMETERS>",
"OPENROUTER_PROVIDER_DATA_COLLECTION": "<YOUR_OPENROUTER_PROVIDER_DATA_COLLECTION>",
"OPENROUTER_PROVIDER_ALLOW_FALLBACKS": "<YOUR_OPENROUTER_PROVIDER_ALLOW_FALLBACKS>",
"OPENROUTER_CACHE_RESPONSES": "<YOUR_OPENROUTER_CACHE_RESPONSES>",
"OPENROUTER_INCLUDE_REASONING": "<YOUR_OPENROUTER_INCLUDE_REASONING>"
}
}
}
}Cline
{
"mcpServers": {
"openrouter-mcp-multimodal": {
"command": "npx",
"args": [
"-y",
"@stabgan/openrouter-mcp-multimodal@4.5.1"
],
"env": {
"OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
"OPENROUTER_DEFAULT_MODEL": "<YOUR_OPENROUTER_DEFAULT_MODEL>",
"OPENROUTER_OUTPUT_DIR": "<YOUR_OPENROUTER_OUTPUT_DIR>",
"OPENROUTER_MAX_TOKENS": "<YOUR_OPENROUTER_MAX_TOKENS>",
"OPENROUTER_PROVIDER_SORT": "<YOUR_OPENROUTER_PROVIDER_SORT>",
"OPENROUTER_PROVIDER_IGNORE": "<YOUR_OPENROUTER_PROVIDER_IGNORE>",
"OPENROUTER_PROVIDER_ORDER": "<YOUR_OPENROUTER_PROVIDER_ORDER>",
"OPENROUTER_PROVIDER_QUANTIZATIONS": "<YOUR_OPENROUTER_PROVIDER_QUANTIZATIONS>",
"OPENROUTER_PROVIDER_REQUIRE_PARAMETERS": "<YOUR_OPENROUTER_PROVIDER_REQUIRE_PARAMETERS>",
"OPENROUTER_PROVIDER_DATA_COLLECTION": "<YOUR_OPENROUTER_PROVIDER_DATA_COLLECTION>",
"OPENROUTER_PROVIDER_ALLOW_FALLBACKS": "<YOUR_OPENROUTER_PROVIDER_ALLOW_FALLBACKS>",
"OPENROUTER_CACHE_RESPONSES": "<YOUR_OPENROUTER_CACHE_RESPONSES>",
"OPENROUTER_INCLUDE_REASONING": "<YOUR_OPENROUTER_INCLUDE_REASONING>"
}
}
}
}VS Code
{
"servers": {
"openrouter-mcp-multimodal": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@stabgan/openrouter-mcp-multimodal@4.5.1"
],
"env": {
"OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
"OPENROUTER_DEFAULT_MODEL": "<YOUR_OPENROUTER_DEFAULT_MODEL>",
"OPENROUTER_OUTPUT_DIR": "<YOUR_OPENROUTER_OUTPUT_DIR>",
"OPENROUTER_MAX_TOKENS": "<YOUR_OPENROUTER_MAX_TOKENS>",
"OPENROUTER_PROVIDER_SORT": "<YOUR_OPENROUTER_PROVIDER_SORT>",
"OPENROUTER_PROVIDER_IGNORE": "<YOUR_OPENROUTER_PROVIDER_IGNORE>",
"OPENROUTER_PROVIDER_ORDER": "<YOUR_OPENROUTER_PROVIDER_ORDER>",
"OPENROUTER_PROVIDER_QUANTIZATIONS": "<YOUR_OPENROUTER_PROVIDER_QUANTIZATIONS>",
"OPENROUTER_PROVIDER_REQUIRE_PARAMETERS": "<YOUR_OPENROUTER_PROVIDER_REQUIRE_PARAMETERS>",
"OPENROUTER_PROVIDER_DATA_COLLECTION": "<YOUR_OPENROUTER_PROVIDER_DATA_COLLECTION>",
"OPENROUTER_PROVIDER_ALLOW_FALLBACKS": "<YOUR_OPENROUTER_PROVIDER_ALLOW_FALLBACKS>",
"OPENROUTER_CACHE_RESPONSES": "<YOUR_OPENROUTER_CACHE_RESPONSES>",
"OPENROUTER_INCLUDE_REASONING": "<YOUR_OPENROUTER_INCLUDE_REASONING>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"openrouter-mcp-multimodal": {
"command": "npx",
"args": [
"-y",
"@stabgan/openrouter-mcp-multimodal@4.5.1"
],
"env": {
"OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
"OPENROUTER_DEFAULT_MODEL": "<YOUR_OPENROUTER_DEFAULT_MODEL>",
"OPENROUTER_OUTPUT_DIR": "<YOUR_OPENROUTER_OUTPUT_DIR>",
"OPENROUTER_MAX_TOKENS": "<YOUR_OPENROUTER_MAX_TOKENS>",
"OPENROUTER_PROVIDER_SORT": "<YOUR_OPENROUTER_PROVIDER_SORT>",
"OPENROUTER_PROVIDER_IGNORE": "<YOUR_OPENROUTER_PROVIDER_IGNORE>",
"OPENROUTER_PROVIDER_ORDER": "<YOUR_OPENROUTER_PROVIDER_ORDER>",
"OPENROUTER_PROVIDER_QUANTIZATIONS": "<YOUR_OPENROUTER_PROVIDER_QUANTIZATIONS>",
"OPENROUTER_PROVIDER_REQUIRE_PARAMETERS": "<YOUR_OPENROUTER_PROVIDER_REQUIRE_PARAMETERS>",
"OPENROUTER_PROVIDER_DATA_COLLECTION": "<YOUR_OPENROUTER_PROVIDER_DATA_COLLECTION>",
"OPENROUTER_PROVIDER_ALLOW_FALLBACKS": "<YOUR_OPENROUTER_PROVIDER_ALLOW_FALLBACKS>",
"OPENROUTER_CACHE_RESPONSES": "<YOUR_OPENROUTER_CACHE_RESPONSES>",
"OPENROUTER_INCLUDE_REASONING": "<YOUR_OPENROUTER_INCLUDE_REASONING>"
}
}
}
}Let your agent find its tools
Find servers like OpenRouter MCP Multimodal from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.