route.tools

the local-first tool router

Good tools. Smaller bills.

You.com for search. Your tools for everything else.

cheapest first · local on ties · $0 tool budget by default

curl -sS https://api.route.tools/v1/route -H "Authorization: Bearer $ROUTE_TOOLS_API_KEY" -H "Content-Type: application/json" -d '{"tool":"search","query":"TypeScript generics"}'
route.tools / request → decision example

$ POST /v1/route browser.json

{
  "tool": "browser",
  "query": "Read a public documentation page",
  "candidates": [
    {
      "id": "my-browser",
      "description": "Read pages in a local browser",
      "capabilities": [
        "browser"
      ],
      "location": "local",
      "available": true,
      "cost_usd": 0
    }
  ]
}

↳ routing decision selected fields

{
  "tool": "my-browser",
  "location": "local",
  "execution": "caller",
  "strategy": "capability",
  "estimated_tool_cost_usd": 0
}

Your available tools. Cheapest first. Local wins a price tie.

$ POST /v1/route sandbox.json

{
  "tool": "sandbox",
  "query": "Run a Python calculation",
  "candidates": [
    {
      "id": "my-sandbox",
      "description": "Run Python in a local sandbox",
      "capabilities": [
        "sandbox"
      ],
      "location": "local",
      "available": true,
      "cost_usd": 0
    }
  ]
}

↳ routing decision selected fields

{
  "tool": "my-sandbox",
  "location": "local",
  "execution": "caller",
  "estimated_tool_cost_usd": 0
}

Use the sandbox you already have. Your client runs the task.

selection ≠ executionyour agent stays in control

Illustrative API examples, not a live session. Decisions use the inventory you supply.

Don’t rent what you already have.

Your agent already has tools. Give the router a task and a list of what’s available. It picks the cheapest matching tool and returns a decision. Your client handles execution.

search
You.com only. Not a preference. Not a fallback.
everything else
Match capabilities, check availability, stay inside budget.
equal price?
Choose local. Keep the work on your machine.
nothing fits?
Return an error. Never silently choose a paid tool.

Search and single-tool matches take the fast path. When several tools qualify, the router checks task suitability before choosing the cheapest. No model settings to configure.

One search provider. Bring the rest.

taskwhere it goeswho runs it
web searchYou.com free MCP profileyour client
browseryour available browser toolsyour client
sandboxyour available sandbox toolsyour client
anything elsematching tools you supplyyour client

You.com’s free profile currently allows 100 queries/day, subject to its limits. No automatic upgrade to paid search. Candidate capabilities, availability, and prices are supplied by you.

Less ceremony. More building.

Create a Route Tools API key, set ROUTE_TOOLS_API_KEY in your environment, and ask for a route.

terminal
curl https://api.route.tools/v1/route \
  -H "Authorization: Bearer $ROUTE_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"search","query":"TypeScript generics"}'

You’ll get the You.com MCP endpoint and tool name back—not search results. Connect your client to that endpoint to run the search.

Free-first. Not a free-everything promise.

The selection endpoint doesn’t debit Route Tools credits. Its default tool budget is $0. Hosting, internal suitability checks, local compute, and remote tools you explicitly budget for may still cost money.

What about the hosted execution API?

/v1/tools/search and the hosted MCP web_search tool also use You.com only, but use the billed API. They are separate from the free, caller-executed MCP route. Other hosted tool categories and the marketplace retain their own pricing.

Does Route Tools run anything on my machine?

No. It selects from the inventory you supply. Your client executes the tool with your existing connections and permissions. It does not install browsers, create local sandboxes, or access your filesystem.