An MCP server that connects clients to OpenRouter for chat and model selection, with tools for image, audio, and video analysis plus image, audio, and video generation. It also supports document reranking, model lookup/validation, web search via chat, caching, and health checks.
From the registry: Chat with 300+ LLMs via OpenRouter. Analyze and generate images, audio, and video from MCP.

Please install the `openrouter-multimodal` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Node.js 18 or newer** — Node.js is required to run the server via npx. The README indicates Node.js 18+. (https://nodejs.org/)
- **Create an OpenRouter API key** — This server requires an OpenRouter API key to function. (https://openrouter.ai/keys)
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","@stabgan/openrouter-mcp-multimodal"]
- required environment variables:
- `OPENROUTER_API_KEY`: Your OpenRouter API key. (example: `<your-openrouter-api-key>`)
- optional environment variables:
- `OPENROUTER_DEFAULT_MODEL`: Default model for chat and analyze tools. (example: `<your-default-model>`)
- `DEFAULT_MODEL`: Alias for OPENROUTER_DEFAULT_MODEL. (example: `<your-default-model>`)
- `OPENROUTER_MAX_TOKENS`: Default max_tokens when not set per request. (example: `<your-max-tokens>`)
- `OPENROUTER_PROVIDER_QUANTIZATIONS`: CSV filter for provider quantizations. (example: `<your-quantizations-csv>`)
- `OPENROUTER_PROVIDER_IGNORE`: CSV list of provider slugs to exclude. (example: `<your-provider-ignore-csv>`)
- `OPENROUTER_PROVIDER_SORT`: Provider sort strategy: price, throughput, or latency. (example: `<your-provider-sort>`)
- `OPENROUTER_PROVIDER_ORDER`: Provider priority order as JSON array or CSV. (example: `<your-provider-order>`)
- `OPENROUTER_PROVIDER_REQUIRE_PARAMETERS`: Whether providers must require parameters: true or false. (example: `<true-or-false>`)
- `OPENROUTER_PROVIDER_DATA_COLLECTION`: Provider data collection policy: allow or deny. (example: `<allow-or-deny>`)
- `OPENROUTER_PROVIDER_ALLOW_FALLBACKS`: Whether provider fallbacks are allowed: true or false. (example: `<true-or-false>`)
- `OPENROUTER_CACHE_RESPONSES`: Enable response caching server-wide using 1 or true. (example: `<true-or-false>`)
- `OPENROUTER_INCLUDE_REASONING`: Enable reasoning passthrough server-wide using 1 or true. (example: `<true-or-false>`)
- `OPENROUTER_MODEL_CACHE_TTL_MS`: Model cache TTL in milliseconds. (example: `<your-cache-ttl-ms>`)
- `OPENROUTER_IMAGE_MAX_DIMENSION`: Longest edge for image resize in pixels. (example: `<your-image-max-dimension>`)
- `OPENROUTER_IMAGE_JPEG_QUALITY`: JPEG quality from 1 to 100. (example: `<your-jpeg-quality>`)
- `OPENROUTER_IMAGE_FETCH_TIMEOUT_MS`: Image URL fetch timeout in milliseconds. (example: `<your-image-fetch-timeout-ms>`)
- `OPENROUTER_IMAGE_MAX_DOWNLOAD_BYTES`: Maximum image download size in bytes. (example: `<your-image-max-download-bytes>`)
- `OPENROUTER_IMAGE_MAX_REDIRECTS`: Maximum number of redirects for image URLs. (example: `<your-image-max-redirects>`)
- `OPENROUTER_IMAGE_MAX_DATA_URL_BYTES`: Maximum image data URL size in bytes. (example: `<your-image-max-data-url-bytes>`)
- `OPENROUTER_AUDIO_FETCH_TIMEOUT_MS`: Audio URL fetch timeout in milliseconds. (example: `<your-audio-fetch-timeout-ms>`)
- `OPENROUTER_AUDIO_MAX_DOWNLOAD_BYTES`: Maximum audio download size in bytes. (example: `<your-audio-max-download-bytes>`)
- `OPENROUTER_AUDIO_MAX_REDIRECTS`: Maximum number of redirects for audio URLs. (example: `<your-audio-max-redirects>`)
- `OPENROUTER_AUDIO_MAX_DATA_URL_BYTES`: Maximum audio data URL size in bytes. (example: `<your-audio-max-data-url-bytes>`)
- `OPENROUTER_DEFAULT_VIDEO_MODEL`: Default model for analyze_video. (example: `<your-default-video-model>`)
- `OPENROUTER_DEFAULT_VIDEO_GEN_MODEL`: Default model for generate_video. (example: `<your-default-video-generation-model>`)
- `OPENROUTER_VIDEO_FETCH_TIMEOUT_MS`: Video URL fetch timeout in milliseconds. (example: `<your-video-fetch-timeout-ms>`)
- `OPENROUTER_VIDEO_MAX_DOWNLOAD_BYTES`: Maximum video download size in bytes. (example: `<your-video-max-download-bytes>`)
- `OPENROUTER_VIDEO_MAX_REDIRECTS`: Maximum number of redirects for video URLs. (example: `<your-video-max-redirects>`)
- `OPENROUTER_VIDEO_MAX_DATA_URL_BYTES`: Maximum video data URL size in bytes. (example: `<your-video-max-data-url-bytes>`)
- `OPENROUTER_VIDEO_POLL_INTERVAL_MS`: Polling interval for async video generation jobs in milliseconds. (example: `<your-video-poll-interval-ms>`)
- `OPENROUTER_VIDEO_MAX_WAIT_MS`: Maximum wait time before returning a resumable video job handle, in milliseconds. (example: `<your-video-max-wait-ms>`)
- `OPENROUTER_VIDEO_GEN_MAX_BYTES`: Maximum generated video download size in bytes. (example: `<your-video-generation-max-bytes>`)
- `OPENROUTER_VIDEO_INLINE_MAX_BYTES`: Maximum inline video size in bytes. (example: `<your-video-inline-max-bytes>`)
- `OPENROUTER_OUTPUT_DIR`: Sandbox root directory for save_path output files. (example: `<your-output-directory>`)
- `OPENROUTER_ALLOW_UNSAFE_PATHS`: Set to 1 to disable the save_path sandbox. (example: `<1-to-disable-sandbox>`)
- `OPENROUTER_LOG_LEVEL`: Log level: error, warn, info, or debug. (example: `<your-log-level>`)
Note: Preferred install path is the recommended npx stdio server. The README also documents Docker and global-install alternatives, but npx is the simplest portable option.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.OPENROUTER_API_KEYrequiredYour OpenRouter API key.AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.