Skip to main content
Glama

YourAITools MCP Hub

ToolRoute: Route a task to the right tools

route_tools
Read-onlyIdempotent

Which of my tools does this task need? Send "set_id" (from register_tools) or "tools", plus "query" (the task). Returns a ranked shortlist (adaptive 3-12 tools, or "k"), confidence (high/medium/low/none), matched terms, token savings and the definitions ready to inject ("format": mcp, openai, anthropic, gemini or names). BM25 keyword ranking, no LLM. Free: 200 calls/day per IP, then $0.001 per call via x402 or credits. Not for: tool sets small enough to send whole (under about 10 tools).

[ToolRoute via YourAITools MCP Hub] Free tier: same as ToolRoute's own MCP server (call without payment and without tier). Paid: route $0.001 per call, with a credits key (Authorization: Bearer yatc_...) or x402 (USDC; the hub returns the payment terms). Failed tool calls aren't charged: credits are refunded automatically and x402 payments only settle on success.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "route_tools"
  }
}

Input Schema

NameRequiredDescriptionDefault
kNoFixed shortlist size (default adaptive)
tierNoPaid tier: route $0.001. Omit tier (with no credits key or x402 payment) to use the free tier.
max_kNoUpper bound for the adaptive size (default 12)
queryYesThe task or user request to route, e.g. "check if this wallet is sanctioned".
toolsNoTool definitions (MCP, OpenAI, Anthropic, Gemini or Bedrock form), max 500. For route: only if you have no set_id (the set is registered on the fly).
formatNoDefinition format (default mcp; names = names only)
set_idNoset_id ("ts_..." from register, or a ToolFit pin).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / query / examples
      Added value: +[
      +  "check if this wallet is sanctioned"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / tier / description
      Previous value: -"Paid tier: route $0.0005. Omit tier (with no credits key or x402 payment) to use the free tier."New value: +"Paid tier: route $0.001. Omit tier (with no credits key or x402 payment) to use the free tier."
  3. Changed2 schema fields changed
    • removedInput schema / properties / tools / items / additionalProperties
      Removed value: -true
    • removedInput schema / properties / tools / items / properties / inputSchema / additionalProperties
      Removed value: -true
  4. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive/open-world and the description stays consistent while adding substantive context they don't cover: BM25 keyword ranking with no LLM, the free-tier ceiling (200 calls/day per IP), per-call pricing with x402 or credits, and the refund policy for failed calls (credits auto-refunded, x402 settles only on success). That is a material behavioral disclosure an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and the exclusion are front-loaded and the input contract is compressed into a single dense sentence that carries a lot of signal. The second paragraph of hub/payment boilerplate is long and mildly repetitive with the pricing already mentioned in the first paragraph, which is the main thing keeping it below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates fully: it enumerates the return payload (ranked shortlist of 3-12 or k, confidence high/medium/low/none, matched terms, token savings, injectable definitions in the requested format). Combined with coverage of auth, pricing, rate limits and failure handling, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: the set_id vs tools mutual exclusion ("only if you have no set_id"), the adaptive 3-12 shortlist unless "k" is supplied, and the enumeration of format outputs (mcp, openai, anthropic, gemini, names). It stops short of explaining k vs max_k interplay, which it leaves to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with the exact question the tool answers ("Which of my tools does this task need?") and then states the concrete mechanism: takes set_id or tools plus a query, returns a ranked shortlist. Clearly distinguishable from siblings like register_tools (which produces set_id) and audit_tools/scan_tools (which inspect tool definitions rather than route to them).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit input routing ("Send set_id (from register_tools) or tools, plus query"), names the sibling that produces set_id, and adds an explicit exclusion: "Not for: tool sets small enough to send whole (under about 10 tools)." It also spells out the tier conditions for free vs paid invocation, so an agent knows exactly under what circumstances to call it and when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources