the recordCopied from the official MCP registry, exactly as it holds it.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.stabgan/openrouter-multimodal",
"description": "Chat with 300+ LLMs via OpenRouter. Analyze and generate images, audio, and video from MCP.",
"repository": {
"url": "https://github.com/stabgan/openrouter-mcp-multimodal",
"source": "github"
},
"version": "4.5.1",
"packages": [
{
"registryType": "npm",
"identifier": "@stabgan/openrouter-mcp-multimodal",
"version": "4.5.1",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "OpenRouter API key. Get one free at https://openrouter.ai/keys",
"isRequired": true,
"format": "string",
"isSecret": true,
"name": "OPENROUTER_API_KEY"
},
{
"description": "Default model for chat + analyze tools. Defaults to nvidia/nemotron-nano-12b-v2-vl:free.",
"format": "string",
"name": "OPENROUTER_DEFAULT_MODEL"
},
{
"description": "Sandbox root for save_path on generate_* tools. Defaults to the current working directory.",
"format": "string",
"name": "OPENROUTER_OUTPUT_DIR"
},
{
"description": "Default max_tokens for chat_completion when unset in the request.",
"format": "string",
"name": "OPENROUTER_MAX_TOKENS"
},
{
"description": "price / throughput / latency",
"format": "string",
"name": "OPENROUTER_PROVIDER_SORT"
},
{
"description": "CSV of provider slugs to exclude.",
"format": "string",
"name": "OPENROUTER_PROVIDER_IGNORE"
},
{
"description": "JSON array or CSV of preferred provider IDs.",
"format": "string",
"name": "OPENROUTER_PROVIDER_ORDER"
},
{
"description": "CSV of quantization levels (fp16,int8).",
"format": "string",
"name": "OPENROUTER_PROVIDER_QUANTIZATIONS"
},
{
"description": "true/false. Require providers to support all request params.",
"format": "string",
"name": "OPENROUTER_PROVIDER_REQUIRE_PARAMETERS"
},
{
"description": "allow/deny",
"format": "string",
"name": "OPENROUTER_PROVIDER_DATA_COLLECTION"
},
{
"description": "true/false",
"format": "string",
"name": "OPENROUTER_PROVIDER_ALLOW_FALLBACKS"
},
{
"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.",
"format": "string",
"name": "OPENROUTER_CACHE_RESPONSES"
},
{
"description": "Enable reasoning tokens passthrough server-wide. Adds _meta.reasoning to chat_completion responses for DeepSeek R1 / Gemini Thinking / Opus 4.7.",
"format": "string",
"name": "OPENROUTER_INCLUDE_REASONING"
}
]
},
{
"registryType": "oci",
"identifier": "docker.io/stabgan/openrouter-mcp-multimodal:4.5.1",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "OpenRouter API key. Get one free at https://openrouter.ai/keys",
"isRequired": true,
"format": "string",
"isSecret": true,
"name": "OPENROUTER_API_KEY"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-05-04T21:17:51.510662Z",
"publishedAt": "2026-05-04T21:17:51.510662Z",
"updatedAt": "2026-05-04T21:17:51.510662Z",
"isLatest": true
}
}
}
Make it installable
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
What this is
MCP server
application/mcp-server-record+jsonlocal · you run it yourselfversion 4.5.1last seen 2026-08-23
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.