LLM Broker

One key, every model: measured scores and live prices, routed per request to the cheapest fit.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,249Tokens (tool definitions)
~867 BTypical response size
Moderate attention impact (0.98% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "broker": {
      "url": "https://api.llm-broker.net/api/v1/broker/mcp"
    }
  }
}

Remote endpoints

https://api.llm-broker.net/api/v1/broker/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_models(category, limit, currency, region, max_price_per_mtok)

Models on the broker with benchmark scores per category (0–1, measured by us), price per 1M tokens (default USD, any currency from GET /api/v1/broker/currencies) and regions. Filter by category, region and price; sorted by score in the category, else by price.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "coding",
        "instruction_following",
        "math",
        "reasoning"
      ]
    },
    "limit": {
      "default": 10,
      "maximum": 50,
      "type": "integer",
      "minimum": 1
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 code, default USD"
    },
    "region": {
      "type": "string",
      "enum": [
        "ch",
        "eu",
        "us",
        "asia",
        "global"
      ]
    },
    "max_price_per_mtok": {
      "type": "number",
      "description": "Max output price per 1M tokens, in currency"
    }
  }
}
🟢get_model(id, currency)

One model from list_models by id: measured scores per category, price per 1M tokens (default USD), regions, context and capabilities.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217, default USD"
    }
  },
  "required": [
    "id"
  ]
}
🟢recommend_model(category, currency, region, capabilities, min_score, ...)

Picks from the published catalog (our own benchmark scores, list prices): best = highest score in the category, best_value = score per output price, plus alternatives. Only measured models are recommended. Returns chat_arguments for that model and a routing object to let the broker pick per request.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "coding",
        "instruction_following",
        "math",
        "reasoning"
      ]
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217, default USD"
    },
    "region": {
      "type": "string",
      "enum": [
        "ch",
        "eu",
        "us",
        "asia",
        "global"
      ]
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "reasoning",
          "structured_output",
          "tools",
          "vision"
        ]
      }
    },
    "min_score": {
      "maximum": 1,
      "type": "number",
      "minimum": 0
    },
    "max_price_per_mtok": {
      "type": "number",
      "description": "Max output price per 1M tokens, in currency"
    }
  },
  "required": [
    "category"
  ]
}
🟢estimate_cost(currency, model, input_tokens, output_tokens)

Cost estimate at list price for a model and token counts, in your currency. The bill follows the offer the router actually picks (broker.cost in the chat result).

Input Schema

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "ISO 4217, default USD"
    },
    "model": {
      "type": "string"
    },
    "input_tokens": {
      "default": 0,
      "type": "integer",
      "minimum": 0
    },
    "output_tokens": {
      "default": 0,
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "model"
  ]
}
🟢chat(messages, prompt, model, max_tokens, routing)

Sends messages to the broker (OpenAI chat completions). model defaults to `taylor` (strongest measured model); any id from list_models works. routing sets criteria per request, e.g. {"category": "coding", "level": "best"}. Needs Authorization: Bearer ast_sk_… — billed like the REST API.

Input Schema

{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "prompt": {
      "type": "string",
      "description": "Shortcut for a single user message"
    },
    "model": {
      "default": "taylor",
      "type": "string"
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 1
    },
    "routing": {
      "type": "object"
    }
  }
}
🟢get_balance

Balance, credit limit and spend this month (CHF, the book currency), billing mode and payment currency of the account behind Authorization: Bearer ast_sk_….

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢report_outcome(reason, request_id, outcome)

Tell the broker if the answer to a request worked for your task — request_id comes from broker.receipt of every chat answer. Outcomes appear per model in list_models as reported (failures_30d / outcomes_30d), so the scores are checked against real tasks. No refund, no price change.

Input Schema

{
  "type": "object",
  "properties": {
    "reason": {
      "type": "string",
      "maxLength": 500
    },
    "request_id": {
      "type": "string"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "success",
        "failure"
      ]
    }
  },
  "required": [
    "request_id",
    "outcome"
  ]
}
🟡create_account(level, category, limit, currency, amount, ...)

Creates a card checkout (Stripe) for a new broker account — same as POST /api/v1/broker/accounts. Give checkout_url to your human; after payment the API key is shown exactly once at status_url (GET, poll until 200). topup: amount 10/25/50, monthly: limit 50/100/250 (USD/EUR/CHF; other currencies: GET /api/v1/broker/currencies). Omit category and level to choose per request.

Input Schema

{
  "type": "object",
  "properties": {
    "level": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "description": "optional, with level: a fixed performance promise"
    },
    "limit": {
      "type": "integer",
      "description": "monthly credit limit in currency"
    },
    "currency": {
      "default": "USD",
      "type": "string"
    },
    "amount": {
      "type": "integer",
      "description": "topup amount in currency"
    },
    "billing": {
      "type": "string",
      "enum": [
        "topup",
        "monthly"
      ]
    }
  },
  "required": [
    "billing"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools