LLM Broker
by llm-broker.net · remote · no sign-in to list tools · v1.3.0 · published by net.llm-broker
One key, every model: measured scores and live prices, routed per request to the cheapest fit.
8 tools: 2 do something that can't be undone, 3 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone2Claude Code: ask: see these tools
- Changes things3Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http broker https://api.llm-broker.net/api/v1/broker/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Can't be undone 2Claude Code: ask
chatSends messages to the broker (OpenAI chat completions).No findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: false
create_accountCreates a card checkout (Stripe) for a new broker account — same as POST /api/v1/broker/accounts.No findings
Why it is in this group
- The name "create_account" says "create": a word for a change.
- The input carries an amount (input.amount) and a currency, so it moves money.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: false
- destructiveHint: false
Changes things 3Claude Code: ask
estimate_costCost estimate at list price for a model and token counts, in your currency.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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).
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
recommend_modelPicks from the published catalog (our own benchmark scores, list prices): best = highest score in the category, best_value = score per output price, plus alternatives.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
report_outcomeTell the broker if the answer to a request worked for your task — request_id comes from broker.receipt of every chat answer.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
Only reads 3Claude Code: allow
get_balanceBalance, credit limit and spend this month (CHF, the book currency), billing mode and payment currency of the account behind Authorization: Bearer ast_sk_….No findings
Why it is in this group
- The name "get_balance" says "get": a word for reading.
Description, as the server wrote it Balance, credit limit and spend this month (CHF, the book currency), billing mode and payment currency of the account behind Authorization: Bearer ast_sk_….
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
get_modelOne model from list_models by id: measured scores per category, price per 1M tokens (default USD), regions, context and capabilities.No findings
Why it is in this group
- The name "get_model" says "get": a word for reading.
Description, as the server wrote it One model from list_models by id: measured scores per category, price per 1M tokens (default USD), regions, context and capabilities.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
list_modelsModels 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.No findings
Why it is in this group
- The name "list_models" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http broker https://api.llm-broker.net/api/v1/broker/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__broker__list_models",
"mcp__broker__get_model",
"mcp__broker__get_balance"
],
"ask": [
"mcp__broker__recommend_model",
"mcp__broker__estimate_cost",
"mcp__broker__chat",
"mcp__broker__report_outcome",
"mcp__broker__create_account"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as broker. Review it before you use it.