mcpField
O
openrouter-models

openrouter-models

github.com/openrouterteamエージェントワークフロー309878 回インストール1 日前に更新
リポジトリ

openrouter-models について

OpenRouter を利用するエージェント開発者向けに、モデルの一覧、検索、名前解決、比較を行うスクリプト集です。提供元ごとのレイテンシ、稼働率、スループットも確認でき、曖昧なモデル名を正確な ID に変換できます。

主な機能

  1. 01モデルの一覧表示、絞り込み、検索
  2. 02曖昧な名前からモデル ID を解決
  3. 03価格、コンテキスト、スループットの比較
  4. 04提供元の性能と状態の照会
  5. 05モダリティと対応パラメーターの確認

活用シーン

  1. 01カテゴリや価格でモデルを探す
  2. 02通称に対応するモデル ID の特定
  3. 03モデルの価格とコンテキスト長の比較
  4. 04提供元のレイテンシと稼働率の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openrouterteam/skills --skill openrouter-models

インストール後、Claude Code で/openrouter-modelsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
scripts/
compare-models.ts
get-endpoints.ts
lib.ts
list-models.ts
package-lock.json
package.json
resolve-model.ts
search-models.ts

詳細

OpenRouter のモデル

OpenRouter で利用できる 300 以上の AI モデルを見つけ、検索し、比較できます。料金、コンテキスト長、プロバイダーごとのレイテンシと稼働率、スループット、対応モダリティ、対応パラメーターなどのライブデータを照会できます。

前提条件

ほとんどのスクリプトでは、環境変数 OPENROUTER_API_KEY は任意です。この変数が必要なのは、プロバイダーのパフォーマンスデータを取得する get-endpoints.ts のみです。キーは https://openrouter.ai/keys で取得できます。

初回セットアップ

cd <skill-path>/scripts && npm install

判断ツリー

ユーザーの要望に応じて、適切なスクリプトを選んでください。

ユーザーの要望スクリプト例
利用可能なすべてのモデルを確認するlist-models.ts「OpenRouter にはどのようなモデルがありますか?」
最近追加されたモデルを見つけるlist-models.ts --sort newest「最も新しいモデルは何ですか?」
最も安価なモデルを見つけるlist-models.ts --sort price「最も安価なモデルは何ですか?」
スループットが最も高いモデルを見つけるlist-models.ts --sort throughput「出力性能が最も高いモデルはどれですか?」
カテゴリー別にモデルを見つけるlist-models.ts --category X「プログラミングに最適なモデルは?」
名前で検索するsearch-models.ts "query"「Claude はありますか?」
あいまいなモデル名を解決するresolve-model.ts "query"「nano banana 2.0 モデルを使って」
画像対応モデルを見つけるsearch-models.ts --modality image「画像を受け付けるモデルはどれですか?」
特定のモデルを比較するcompare-models.ts A B「Claude と GPT-4o を比較して」
スループットで比較するcompare-models.ts A B --sort throughput「Claude と GPT-4o では、どちらのスループットが高いですか?」
プロバイダーのパフォーマンスを確認するget-endpoints.ts "model-id"「Claude で最速のプロバイダーはどれですか?」
最速のプロバイダーを見つけるget-endpoints.ts "model-id" --sort throughput「Claude Sonnet で最速のプロバイダーは?」
レイテンシが最も低いプロバイダーを見つけるget-endpoints.ts "model-id" --sort latency「GPT-4o でレイテンシが最も低いプロバイダーは?」
モデルの利用可能状況を確認するget-endpoints.ts "model-id"「Claude Sonnet 4 は現在利用できますか?」

モデル名を解決する

ファジーマッチングを使って、あいまいなモデル名を正確な OpenRouter モデル ID に解決します。

cd <skill-path>/scripts && npx tsx resolve-model.ts "claude sonnet"
cd <skill-path>/scripts && npx tsx resolve-model.ts "gpt 4o mini"
cd <skill-path>/scripts && npx tsx resolve-model.ts "llama 3.1"

結果には confidence レベルと score が含まれます。

信頼度スコア対応
high (≥0.85)モデルをそのまま使用します。一致先は明確です
medium (≥0.55)先にユーザーに確認してから進めます
low (≥0.30)一致候補を提示し、ユーザーに確認を求めます

2 段階のワークフロー: まず resolve-model.ts であいまいな名前を解決し、次に解決された id を他のスクリプト(compare-models.ts、get-endpoints.ts など)に渡します。

モデルを一覧表示する

cd <skill-path>/scripts && npx tsx list-models.ts
カテゴリーで絞り込む

サーバー側でカテゴリーを絞り込みます。

cd <skill-path>/scripts && npx tsx list-models.ts --category programming

カテゴリー:programming、roleplay、marketing、marketing/seo、technology、science、translation、legal、finance、health、trivia、academia

結果を並べ替える
cd <skill-path>/scripts && npx tsx list-models.ts --sort newest      # Recently added first
cd <skill-path>/scripts && npx tsx list-models.ts --sort price       # Cheapest first
cd <skill-path>/scripts && npx tsx list-models.ts --sort context     # Largest context first
cd <skill-path>/scripts && npx tsx list-models.ts --sort throughput  # Most output tokens first

expiration_date が近づいているモデルがある場合、stderr に警告が出力されます。

モデルを検索する

cd <skill-path>/scripts && npx tsx search-models.ts "claude"
cd <skill-path>/scripts && npx tsx search-models.ts --modality image
cd <skill-path>/scripts && npx tsx search-models.ts "gpt" --modality text

モダリティ:text、image、audio、file

モデルを比較する

100 万トークンあたりの料金で、2 つ以上のモデルを並べて比較します。ID は完全一致で照合されます。openai/gpt-4o はそのモデルだけに一致し、gpt-4o-mini などのバリエーションには一致しません。

cd <skill-path>/scripts && npx tsx compare-models.ts "anthropic/claude-sonnet-4" "openai/gpt-4o"
cd <skill-path>/scripts && npx tsx compare-models.ts "anthropic/claude-sonnet-4" "openai/gpt-4o" "google/gemini-2.5-pro" --sort price

並べ替えのオプション:price(安い順)、context(大きい順)、speed/throughput(出力トークン数が多い順)

プロバイダーのパフォーマンス(エンドポイント)

任意のモデルについて、プロバイダーごとのレイテンシ、稼働率、スループットを取得します。

cd <skill-path>/scripts && npx tsx get-endpoints.ts "anthropic/claude-sonnet-4"
cd <skill-path>/scripts && npx tsx get-endpoints.ts "anthropic/claude-sonnet-4" --sort throughput
cd <skill-path>/scripts && npx tsx get-endpoints.ts "openai/gpt-4o" --sort latency

並べ替えオプション:throughput(トークン/秒が速い順)、latency(p50 のミリ秒数が少ない順)、uptime(信頼性が高い順)、price(価格が安い順)

各プロバイダーについて、以下の情報を返します。

  • レイテンシ(ミリ秒単位の p50/p75/p90/p99)— 中央値から最悪時までの応答時間
  • スループット(トークン/秒単位の p50/p75/p90/p99)— 生成速度
  • 稼働率 — 過去 30 分間の割合
  • ステータス — operational または degraded
  • プロバイダー固有の価格設定 — 割引を提供しているプロバイダーもあります
  • サポートされているパラメーター — プロバイダーによって異なります(すべての機能に対応しているとは限りません)

API レスポンスの形式

GET /api/v1/models は { data: Model[] } を返します。フィールドの詳細については、Models のリファレンスを参照してください。

クエリパラメーター(すべて省略可能):

パラメーター例効果
category?category=programmingサーバー側でカテゴリを絞り込みます
supported_parameters?supported_parameters=toolsこのパラメーターをサポートするモデルのみを対象にします

レスポンスを扱う際のヒント:

  • モデルが機能をサポートしているか確認するには、model.supported_parameters(例:.includes("tools"))を使用するか、?supported_parameters=tools でサーバー側の絞り込みを行います。
  • モダリティを確認するには、model.architecture.input_modalities/model.architecture.output_modalities を使用します。
  • 価格は米ドル建てのトークン単価を文字列で表したものです。100 万トークンあたりの価格にするには、1,000,000 を掛けてください。
  • knowledge_cutoff と expiration_date は、日付文字列または null です。
  • links.details は、そのモデルのプロバイダーごとのエンドポイント API を示します。GET /api/v1/models/{author}/{slug}/endpoints は { data: { id, name, endpoints: Endpoint[] } } を返します。
  • エンドポイントの status:0 = 稼働中、0 以外 = パフォーマンス低下。
  • エンドポイントの latency_last_30m/throughput_last_30m:p50、p75、p90、p99 を含むパーセンタイルオブジェクトです。

スクリプトの出力形式

以下のスクリプトは、API の生データを再整形します。API を直接呼び出す場合(例:fetch を使用する場合)は、フィールド名について OpenAPI 仕様を参照してください。

list-models.ts / search-models.ts

API の生データから一部のフィールドを抽出します。スクリプトでは formatModel() を実行し、canonical_slug、hugging_face_id、default_parameters、knowledge_cutoff、links を除外します。これらのフィールドが必要な場合は、API を直接呼び出してください。

compare-models.ts
{
  "id": "anthropic/claude-sonnet-4",
  "name": "Anthropic: Claude Sonnet 4",
  "context_length": 1000000,
  "max_completion_tokens": 64000,
  "per_request_limits": null,
  "pricing_per_million_tokens": {
    "prompt": "$3.00",
    "completion": "$15.00",
    "cached_input": "$0.30"
  },
  "modalities": { "input": ["text", "image"], "output": ["text"] },
  "supported_parameters": ["max_tokens", "temperature", "..."],
  "is_moderated": false
}
get-endpoints.ts
{
  "model_id": "anthropic/claude-sonnet-4",
  "model_name": "Anthropic: Claude Sonnet 4",
  "total_providers": 5,
  "endpoints": [
    {
      "provider": "Anthropic",
      "tag": "anthropic",
      "status": "operational",
      "uptime_30m": "100.00%",
      "latency_30m_ms": { "p50": 800, "p75": 1200, "p90": 2000, "p99": 5000 },
      "throughput_30m_tokens_per_sec": { "p50": 45, "p75": 55, "p90": 65, "p99": 90 },
      "context_length": 1000000,
      "max_completion_tokens": 64000,
      "pricing_per_million_tokens": { "prompt": "$3.00", "completion": "$15.00", "cached_input": "$0.30" },
      "supports_implicit_caching": true,
      "supported_parameters": ["max_tokens", "temperature", "tools", "..."]
    }
  ]
}

主なフィールド

フィールド意味
pricing.prompt / pricing.completion米ドル建てのトークン単価です。100 万トークンあたりの価格にするには、1,000,000 を掛けてください
context_length入力と出力を合わせた最大トークン数
top_provider.max_completion_tokens最上位プロバイダーからの最大出力トークン数
top_provider.is_moderatedコンテンツモデレーションが適用されるかどうか
per_request_limitsリクエストごとのトークン制限(null 以外の場合)
supported_parametersモデルが受け付ける API パラメーター(例:tools、structured_outputs、reasoning、web_search_options)
createdUnix タイムスタンプ — 新しい順に並べ替える場合に使用します
expiration_datenull 以外の場合、モデルは廃止予定です
latency_30m_ms.p50過去 30 分間の応答レイテンシの中央値
throughput_30m_tokens_per_sec.p50過去 30 分間の生成速度の中央値
uptime_30m過去 30 分間のプロバイダー稼働率

結果の提示

  • ユーザーがモデルを通称で指定した場合は、まず resolve-model.ts を使用し、解決された id を他のスクリプトに渡します
  • 読みやすさのため、料金をトークン100万個あたりの形式に換算します
  • 比較する場合は、モデルを列に配置した Markdown テーブルを使用します
  • プロバイダーのエンドポイントについては、最速(p50 レイテンシが最も低い)と最も信頼性の高い(稼働率が最も高い)プロバイダーを強調します
  • 対応している注目すべきパラメーターとして、tools、structured_outputs、reasoning、web_search_options を挙げます
  • 利用可能な場合はキャッシュ料金を記載します。入力コストを90%以上削減できることがあります
  • expiration_date が設定されているモデルには、非推奨であることを明記します
  • 複数のプロバイダーが異なる価格でモデルを提供している場合は、最も安価な選択肢を記載します

コメント