OpenRouter について
OpenRouterは、MCPホストからローカルのstdioツール経由でOpenRouterのモデルを呼び出すPython製MCPサーバーです。チャット、画像生成、埋め込み、モデル検索に対応し、クライアントへのインストール・削除コマンドも備えています。
主な機能
- 01OpenRouterモデルへのチャットリクエスト
- 02画像生成とローカルパスへの保存
- 03テキストからの埋め込み生成
- 04機能別のモデル一覧表示
- 05モデル名とslugの検索
活用シーン
- 01OpenRouterモデルによるファイルの要約
- 02指定モデルを使った画像生成
- 03テキストの埋め込み生成
- 04モデルの検索や機能別の絞り込み
MCP 対応
MCPクライアントにチャット、画像生成、埋め込み、モデル検索のツールを提供します。インストーラーはCodex、Claude Code、opencodeに対応し、ツールの呼び出しにはOPENROUTER_API_KEYが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mcp-openrouterOPENROUTER_API_KEYシークレットOpenRouter API key used to authenticate tool requests.DEFAULT_TEXT_MODELDefault model slug for chat tool calls when no model is provided.DEFAULT_IMAGE_MODELDefault model slug for image generation tool calls.DEFAULT_CODE_MODELDefault model slug for code-oriented tasks.DEFAULT_VISION_MODELDefault model slug for vision-capable tool calls.DEFAULT_EMBEDDING_MODELDefault model slug for embedding tool calls when no model is provided.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| seed | any | いいえ | 決定論的な出力を生成するための乱数シード |
| stop | any | いいえ | 停止シーケンスのリスト |
| model | any | いいえ | モデル識別子(例:"anthropic/claude-sonnet-4"、"openai/gpt-4o")。 指定しない場合は、DEFAULT_TEXT_MODEL 環境変数を使用します。 |
| top_k | any | いいえ | Top-k サンプリング(対象とする上位トークンの数) |
| top_p | any | いいえ | ニュークリアスサンプリングのしきい値 0-1 |
| prompt | any | いいえ | 送信するユーザーメッセージ(prompt または messages のいずれか一方を指定してください) |
| system | any | いいえ | コンテキストを設定するための任意のシステムプロンプト |
| messages | any | いいえ | {role, content} 辞書のリストとして指定する複数ターンの会話 (prompt または messages のいずれか一方を指定してください) |
| provider | any | いいえ | プロバイダーのルーティング制御(例:{"order": ["Anthropic", "Google"]}) |
| json_mode | boolean | いいえ | True の場合、JSON 形式の応答をリクエストします(後方互換性のため) |
| max_tokens | any | いいえ | 応答の最大トークン数(指定しない場合はモデルのデフォルト値) |
| temperature | any | いいえ | サンプリング温度 0-2(指定しない場合はモデルのデフォルト値) |
| response_format | any | いいえ | 応答形式の仕様。例:{"type": "json_schema", ...}。 両方が指定された場合、json_mode より優先されます。 |
| presence_penalty | any | いいえ | すでに出現したトークンにペナルティを適用します(-2~2) |
| reasoning_effort | any | いいえ | 推論の強度レベル:"minimal"、"medium"、または "high" |
| assistant_prefill | any | いいえ | アシスタントの応答に事前入力するテキスト |
| frequency_penalty | any | いいえ | 繰り返されたトークンにペナルティを適用します(-2~2) |
詳細
🚀 OpenRouter モデル向けの単一 MCP サーバー 🚀
mcp-openrouter は、Codex、Claude Code、opencode、その他の MCP ホストから、ローカルの stdio ツールを通じて OpenRouter モデルを呼び出せる Python 製 MCP サーバーです。
リトライ処理、ホストを考慮したインストール、オプションのデフォルトモデル環境変数を備えた、小規模な FastMCP サーバーを通じて、チャット、画像生成、埋め込み、モデル一覧表示、モデル検索を提供します。
インストール
検出されたすべての MCP クライアントに公開済みサーバーをインストールします。
uvx mcp-openrouter install --yes
選択したクライアントにインストールします。
uvx mcp-openrouter install --yes --clients codex,claude,opencode
ローカルのチェックアウトから実行します。
git clone https://github.com/tsilva/mcp-openrouter.git
cd mcp-openrouter
uv sync --dev
keyenv doctor
keyenv run -- uv run mcp-openrouter
引数なしで mcp-openrouter を実行すると、stdio サーバーが起動します。明示的なコマンドは uv run mcp-openrouter serve です。
コマンド
uvx mcp-openrouter install --yes # install into detected MCP clients
uvx mcp-openrouter install --yes --force # replace an existing openrouter config
uvx mcp-openrouter uninstall --yes # remove from detected MCP clients
uv run mcp-openrouter # run the local stdio server
uv 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.py
keyenv run -- uv run pytest tests/test_tools.py
uv run ruff check src/
uv run ruff format src/
ツール
| ツール | 用途 |
|---|---|
chat | プロンプトまたはメッセージのリストを OpenRouter のチャットモデルに送信します。 |
generate_image | 画像を 1 枚生成し、必要に応じて絶対パスで指定したローカルファイルに保存します。 |
embed | 文字列または文字列のリストの埋め込みを生成します。 |
list_models | vision、image_gen、embedding、tools、long_context でフィルタリングして、モデルを一覧表示します。 |
find_models | モデル名とスラッグを検索し、一致したモデルを最大 20 件返します。 |
MCP プロンプトの例:
Use openrouter chat with anthropic/claude-sonnet-4 to summarize this file
Use openrouter generate_image with google/gemini-3-pro-image-preview to create a square app icon
Use 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"
設定
すべてのツール呼び出しには OPENROUTER_API_KEY が必要です。ローカルのチェックアウトでは、.keyenv.toml がこの変数を macOS Keychain にマッピングします。keyenv set OPENROUTER_API_KEY で値を置き換え、keyenv doctor で確認し、keyenv run -- ... でサーバーまたはライブテストを起動します。Python は引き続き os.environ から通常どおり値を読み取ります。
オプションのデフォルト値を設定すると、該当するツールでは model パラメーターを省略できます。
DEFAULT_TEXT_MODEL=google/gemini-3-pro-image-preview
DEFAULT_IMAGE_MODEL=google/gemini-3-pro-image-preview
DEFAULT_CODE_MODEL=anthropic/claude-sonnet-4.5
DEFAULT_VISION_MODEL=google/gemini-3-pro-image-preview
DEFAULT_EMBEDDING_MODEL=mistralai/mistral-embed-2312
現在のツールでは DEFAULT_TEXT_MODEL、DEFAULT_IMAGE_MODEL、DEFAULT_EMBEDDING_MODEL を読み取ります。クライアントの慣例に合わせて、DEFAULT_CODE_MODEL と DEFAULT_VISION_MODEL も使用できます。機密情報ではないデフォルト値は .env に保存してもかまいませんが、API キーは保存しないでください。
補足
- Python 3.10 以降が必要です。
- ホストにインストールされる公開版の実行コマンドは
uvx mcp-openrouterです。 - 対応するインストーラーの対象は Codex、Claude Code、opencode です。
generate_image.output_pathには、/Users/you/output.pngのような絶対パスを指定する必要があります。- 単体テストではネットワーク呼び出しをモックします。
tests/test_tools.pyには有効なOPENROUTER_API_KEYが必要です。 - サーバーコードを変更した後は、MCP ホストを再起動して新しいサーバープロセスを起動してください。
- リリース前に
server.json、CHANGELOG.md、パッケージのバージョンを同期してください。Makefile のリリース用ヘルパーはmake release-x.y.zです。
ローカルでの MCP 開発
公開済みの PyPI パッケージではなく、作業中のワーキングツリーを MCP ホストで実行する場合は、ローカルのチェックアウトを登録してください。
Claude Code:
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:
codex mcp add openrouter -- keyenv run --manifest /path/to/mcp-openrouter/.keyenv.toml -- uv run --directory /path/to/mcp-openrouter mcp-openrouter
opencode:
{
"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
}
}
}
アーキテクチャ

ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。