Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the OpenRouter MCP server

Vendor MCP
Open markdown

The OpenRouter MCP connector routes your AI agent's tool calls to OpenRouter's own MCP server through Scalekit. Each user signs in to OpenRouter once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 23 tools.

Tools
23
What they doRead · write · destructive
18 · 5 · 018 read5 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the OpenRouter MCP connection

    In AgentKit > Connections, create an OpenRouter MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for OpenRouter MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'openroutermcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize OpenRouter MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'openroutermcp_get_credits',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • openroutermcp_get_creditsCheck the remaining account credit balance before running a workload.Read-only

    Get Credits

    Check the remaining account credit balance before running a workload.

    Inputs

    This tool takes no inputs.

  • openroutermcp_get_endpoint_uptime_historyGet the hourly uptime history of every provider endpoint serving a model over the last 72 hours — the same per-provider uptime timeline shown on the model page.Read-only

    Get Endpoint Uptime History

    Get the hourly uptime history of every provider endpoint serving a model over the last 72 hours — the same per-provider uptime timeline shown on the model page. Use it to find which provider degraded during a window (e.g. "model X was failing between 05:00 and 08:30 UTC — whose uptime dipped?").

    Inputs

    authorstringrequired
    The model author/organization, e.g. "deepseek"
    slugstringrequired
    The model slug, optionally with a variant suffix, e.g. "deepseek-chat" or "deepseek-chat:free"
    fromstring
    Optional ISO 8601 start of the window, e.g. "2026-07-23T05:00:00Z". Data covers the last 72 hours.
    tostring
    Optional ISO 8601 end of the window, e.g. "2026-07-23T09:00:00Z"
  • openroutermcp_get_generationInspect cost, token counts, and serving provider for a specific generation id, to debug spend and routing.Read-only

    Get Generation

    Inspect cost, token counts, and serving provider for a specific generation id, to debug spend and routing. send-message returns the generation id of each call in its output.

    Inputs

    requestobjectrequired
    Identifies the generation to inspect.
  • openroutermcp_get_modelGet full details for one model by author/slug (supports :variant suffixes and slug aliases) without fetching the whole catalog.Read-only

    Get Model

    Get full details for one model by author/slug (supports :variant suffixes and slug aliases) without fetching the whole catalog. Use this instead of list-models when the model is already known.

    Inputs

    requestobjectrequired
    Identifies the model to fetch by author and slug.
  • openroutermcp_get_presetGet one saved preset by slug, including its designated version's config bundle (model, system prompt, temperature, and other sampling parameters), to inspect or reuse that configuration in a request.Read-only

    Get Preset

    Get one saved preset by slug, including its designated version's config bundle (model, system prompt, temperature, and other sampling parameters), to inspect or reuse that configuration in a request. Find slugs with list-presets.

    Inputs

    requestobjectrequired
    Identifies the preset to fetch.
  • openroutermcp_install_ori_harnessGet the instructions for installing and using Ori Harness, then follow them.Read-only

    Install Ori Harness

    Get the instructions for installing and using Ori Harness, then follow them. Call this tool FIRST when the user asks to install Ori, run their existing coding agent CLI through Ori, sign in to Ori, upgrade Ori, or choose an OpenRouter model for a local agent. It returns the complete recipe for installing Ori, signing in with OAuth without an API key, running an agent CLI under Ori, passing any OpenRouter model id with `--model`, upgrading with `ori update`, and verifying the installation. Do not use it for Ori model evaluations, plain unit tests, or when the user only wants to run an already-installed agent directly. Takes no arguments; the same document is published at https://openrouter.ai/skills/install-ori-harness.

    Inputs

    This tool takes no inputs.

  • openroutermcp_list_app_rankingsSee which APPS/products drive the most OpenRouter traffic, filterable by category, to gauge ecosystem adoption and find example use cases.Read-only

    List App Rankings

    See which APPS/products drive the most OpenRouter traffic, filterable by category, to gauge ecosystem adoption and find example use cases. For model rankings use list-daily-model-rankings instead.

    Inputs

    requestobject
    Optional filters and pagination for the app ranking query.
  • openroutermcp_list_benchmarksCompare model quality beyond price using third-party benchmarks.Read-only

    List Benchmarks

    Compare model quality beyond price using third-party benchmarks. The optional source arg selects the dataset and the result shape: source=artificial-analysis returns intelligence, coding, and agentic index scores; source=design-arena returns head-to-head standings (elo, win rate) filterable by arena and category. Omit source to get results from all sources in one call. Optional task_type (coding, intelligence, agentic) narrows to models suited for that workload.

    Inputs

    requestobject
    Optional filters for the benchmark query.