Skip to main content
Glama
aaryanptl
by aaryanptl

openrouter-mcp

An mcp-use MCP App that lets Claude / ChatGPT reason about OpenRouter's 300+ models — price, context, capabilities, cost and rankings — each tool paired with a React widget in one file, deployable on Manufact.

Everything is powered by one public, key-less endpoint:

GET https://openrouter.ai/api/v1/models

It returns id, context length, per-token pricing, modalities, supported params and arena/benchmark scores for every model. We fetch it once, cache it 6h, and every tool is a pure transform over that array — no auth, no pagination.

Tools

Tool

Prompt

What it does

model-card

"what's claude-opus-4.8?"

Price, context, capabilities & arena ELO for one model

compare-models

"gpt-5 vs sonnet vs deepseek?"

2–4 models side by side, best value marked per metric

cheapest-for

"cheapest vision model, 200K+ ctx?"

Filter by needs, sort by input price

cost-estimator

"cost for 2M in / 0.5M out?"

Interactive calculator — tweak tokens, watch the total recompute live

usage-rankings

"top coding models right now?"

Models ranked by design-arena ELO leaderboard

Run locally

npm install
npm run dev          # server on :3000 + Inspector

In the Inspector, call each tool:

{ "model": "claude-opus-4.8" }
{ "models": ["gpt-5", "claude-sonnet-4.6", "deepseek-v4"] }
{ "needs": ["vision"], "minContext": 200000 }
{ "model": "deepseek-v4", "inputTokens": 2000000, "outputTokens": 500000 }
{ "arena": "coding", "limit": 10 }

Structure

openrouter-mcp/
├── index.ts               # MCPServer + 5 server.tool(...) defs
├── src/openrouter.ts      # getModels() 6h cache + normalize() + findModel()
└── resources/
    ├── card.tsx           # model-card
    ├── compare.tsx        # compare-models
    ├── cheapest.tsx       # cheapest-for
    ├── cost.tsx           # cost-estimator (interactive React state)
    └── rankings.tsx       # usage-rankings

Deploy on Manufact

  1. Push this repo to GitHub.

  2. Connect it on manufact.com via the Manufact GitHub App.

  3. No env vars needed — the catalog API is public. (Add OPENROUTER_API_KEY only if you later add live inference / routing.)

  4. Every push auto-deploys with a preview URL, SSL, logs and metrics.

Notes

  • Pricing is a per-token decimal string — multiply by 1e6 for $/1M (src/openrouter.ts).

  • Not every model has arena ELO — widgets guard for null.

  • input_modalities (not modality) is the reliable vision/audio signal.

  • OpenRouter exposes no clean public JSON for token-share usage, so usage-rankings ranks by the real design-arena ELO carried in the same cached /models call.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aaryanptl/openrouter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server