OpenRouter

io.github.tsilvaPublished by GitHub account tsilvav1.1.8Updated Oct 24, 2026

MCP server providing access to 300+ AI models via OpenRouter

The publisher's own server: 370.ai — AI Gateway: 100+ Chat Models, Image & Speech Generation

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

A local MCP server that lets an assistant call OpenRouter's 300+ AI models for chat, image generation, embeddings, and model discovery.

What you can do
Send prompts or message lists to an OpenRouter chat model and get responses back in the assistant session. Generate an image from a prompt and optionally save it to an absolute local path. Create embeddings for a string or a list of strings. List available models, filtered by capability such as vision, image generation, embedding, tool use, or long context. Search model names and slugs and get up to 20 matches.
When to use it
Useful when you want one assistant session to reach many different model providers through a single OpenRouter account, for example to compare models, generate images, or produce embeddings without installing separate provider integrations.
Requirements
Runs locally over stdio as a Python package (Python 3.10+), typically launched with uvx. Requires an OpenRouter account and the OPENROUTER_API_KEY environment variable for all tool calls. Optional DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_MODEL, and DEFAULT_EMBEDDING_MODEL variables supply fallback models. Network access to OpenRouter is needed.
Before you install
The server needs your OpenRouter API key, and every tool call spends money on your OpenRouter account. Keep the key out of plain .env files and prefer a secret manager. Image generation writes files to an absolute path you specify, so check the path before use. Prompts, text, and images are sent to OpenRouter and the underlying model providers.

Installation

In SourceWeft

  1. Open OpenRouter in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[mcp-openrouter]
🚀 One MCP server for OpenRouter models 🚀

mcp-openrouter is a Python MCP server that lets Codex, Claude Code, opencode, and other MCP hosts call OpenRouter models from local stdio tools.

It exposes chat, image generation, embeddings, model listing, and model search through a small FastMCP server with retry handling, host-aware installation, and optional default model environment variables.

Install

Install the published server into every detected MCP client:

bash
uvx mcp-openrouter install --yes

Install into selected clients:

bash
uvx mcp-openrouter install --yes --clients codex,claude,opencode

Run from a local checkout:

bash
git clone https://github.com/tsilva/mcp-openrouter.gitcd mcp-openrouteruv sync --devkeyenv doctorkeyenv run -- uv run mcp-openrouter

mcp-openrouter with no arguments starts the stdio server. The explicit command is uv run mcp-openrouter serve.

Commands

bash
uvx mcp-openrouter install --yes                 # install into detected MCP clientsuvx mcp-openrouter install --yes --force         # replace an existing openrouter configuvx mcp-openrouter uninstall --yes               # remove from detected MCP clientsuv run mcp-openrouter                            # run the local stdio serveruv run pytest tests/test_cli.py tests/test_client.py tests/test_config.py tests/test_installer.py tests/test_release_metadata.py tests/test_server.pykeyenv run -- uv run pytest tests/test_tools.pyuv run ruff check src/uv run ruff format src/

Tools

ToolPurpose
chatSend a prompt or message list to an OpenRouter chat model.
generate_imageGenerate one image and optionally save it to an absolute local path.
embedGenerate embeddings for a string or list of strings.
list_modelsList models, optionally filtered by vision, image_gen, embedding, tools, or long_context.
find_modelsSearch model names and slugs, returning up to 20 matches.

Example MCP prompts:

text
Use openrouter chat with anthropic/claude-sonnet-4 to summarize this fileUse openrouter generate_image with google/gemini-3-pro-image-preview to create a square app iconUse openrouter embed with mistralai/mistral-embed-2312 to embed "Hello world"Use openrouter list_models with capability "image_gen"Use openrouter find_models to search for "claude"

Configuration

OPENROUTER_API_KEY is required for all tool calls. For a local checkout, its .keyenv.toml maps the variable to macOS Keychain: use keyenv set OPENROUTER_API_KEY to replace it, keyenv doctor to verify it, and keyenv run -- ... to launch the server or live tests. Python still reads the value normally from os.environ.

Optional defaults make the model parameter optional for matching tools:

bash
DEFAULT_TEXT_MODEL=google/gemini-3-pro-image-previewDEFAULT_IMAGE_MODEL=google/gemini-3-pro-image-previewDEFAULT_CODE_MODEL=anthropic/claude-sonnet-4.5DEFAULT_VISION_MODEL=google/gemini-3-pro-image-previewDEFAULT_EMBEDDING_MODEL=mistralai/mistral-embed-2312

The current tools read DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_MODEL, and DEFAULT_EMBEDDING_MODEL. DEFAULT_CODE_MODEL and DEFAULT_VISION_MODEL are available for client conventions. Non-secret defaults may remain in .env; the API key must not.

Notes

  • Python 3.10+ is required.
  • The published runtime command installed into hosts is uvx mcp-openrouter.
  • Supported installer targets are Codex, Claude Code, and opencode.
  • generate_image.output_path must be absolute, for example /Users/you/output.png.
  • Unit tests mock network calls. tests/test_tools.py requires a live OPENROUTER_API_KEY.
  • After changing server code, restart the MCP host so it launches a fresh server process.
  • Keep server.json, CHANGELOG.md, and the package version in sync before release. The Makefile release helper is make release-x.y.z.

Local MCP Development

Register a local checkout when you want an MCP host to run your working tree instead of the published PyPI package.

Claude Code:

bash
claude mcp add openrouter --scope user -- keyenv run --manifest /path/to/mcp-openrouter/.keyenv.toml -- uv run --directory /path/to/mcp-openrouter mcp-openrouter

Codex:

bash
codex mcp add openrouter -- keyenv run --manifest /path/to/mcp-openrouter/.keyenv.toml -- uv run --directory /path/to/mcp-openrouter mcp-openrouter

opencode:

json
{  "mcp": {    "openrouter": {      "type": "local",      "command": ["keyenv", "run", "--manifest", "/path/to/mcp-openrouter/.keyenv.toml", "--", "uv", "run", "--directory", "/path/to/mcp-openrouter", "mcp-openrouter"],      "enabled": true    }  }}

Architecture

[mcp-openrouter architecture diagram]

License

MIT

Source: README.md at commit 9dbab24

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.8LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Router integrations