RouteToHuman

For agents and their developers

An agent guide.

Free is available now: notifications to yourself, up to ten messages a day. Solo and Team are draft future plans on the waitlist, not plans you can buy or use today. Start with the Free quickstart or compare the published plans.

Browser tools inspect pricing. They do not send messages.

The pricing page offers two read-only WebMCP tools. Their answers come from the same catalog as its comparison table; no sign-in or credential is needed. Both return plain JSON values, not an MCP content envelope. Tool calls may send the limited, unattributed usage event described in our privacy policy.

get_rth_pricing

Pass an empty object. The result contains prices, daily allowances, message types, recipient limits, history, and availability. Free has a zero price; Solo and Team have no announced price and are marked waitlist.

check_rth_plan_fit

Pass the volume, message types, and recipients you need. All requested requirements must fit the same plan.

messagesPerDay
Optional non-negative safe integer; defaults to zero. Fractions, negative numbers, and numeric strings are rejected.
intents
Optional non-empty array of notify, acknowledge, approveReject, choose, or guidance. Defaults to ["notify"]. Request every type you need; choices and guidance need the future Team plan, not Solo.
recipients
Optional non-empty string; defaults to "me". Whitespace and case are normalized. Any other value means people at your company; use "others", not a real address.
needsAnswers
Optional legacy boolean; defaults to false. True adds both acknowledgements and approvals to your requirements. It does not request choices or guidance. Prefer explicit intents for new callers; false does not remove any explicit intent.

A Free fit, available now

check_rth_plan_fit — Free
{
  "messagesPerDay": 10,
  "intents": ["notify"],
  "recipients": "me"
}

Returns recommended: "public-free", fits: true, and availableNow: true.

A future fit, not available now

check_rth_plan_fit — future Team
{
  "messagesPerDay": 10,
  "intents": ["choose", "guidance"],
  "recipients": "me"
}

Returns recommended: "public-team" and fits: true, but availability: "waitlist" and availableNow: false. A catalog fit is not a promise of current access.

No published fit

check_rth_plan_fit — no published fit
{
  "messagesPerDay": 10001,
  "intents": ["notify"],
  "recipients": "me"
}

Returns fits: false, recommended: null, availability: null, and availableNow: false. It does not recommend Free as a fallback. Contact hello@routetohuman.com to discuss a need beyond the published plans.

Every fit result includes normalized requirements and a why explanation. Invalid input instead returns error: "invalid_input" with a hint explaining how to correct the call. Duplicate intents are harmless; unsupported intent names and empty arrays are rejected.

This is a catalog check, not a live account check. It does not read your remaining daily allowance or evaluate request rate limits. A fitting workload can still receive a rate-limit 429; follow the response's Retry-After guidance.

Browser support is detected, not assumed.

Open the pricing page in a browser or extension that exposes a compatible model context, then look for these tool names in that agent's tool list. This guide does not register the tools itself.

The page checks document.modelContext and navigator.modelContext independently. It watches for about ten seconds for a late-loading extension. There is no polyfill or origin-trial token here, and we do not promise native support in every browser. If a tool is absent, check your browser or extension's support and reload the pricing page after enabling it.

Without browser support, the complete pricing table, structured data, and llms.txt are available without JavaScript. Missing WebMCP support does not prevent you from reading prices or using the HTTP API.

The remote MCP endpoint is a different surface.

Configure an approved OAuth-capable Streamable HTTP client with https://mcp.routetohuman.com/mcp. Unlike the browser pricing tools, this endpoint requires authentication and can send messages. Free exposes notifications through inform_human; paid-only message types are not available on Free.

Client admission is currently curated, not open dynamic client registration. Follow the approved-client prerequisites before connecting. Supporting OAuth alone does not mean a client has been admitted.

An unauthenticated protocol POST receives an OAuth challenge pointing to protected-resource metadata. A browser GET of the stateless endpoint is not a connectivity test. For the HTTP API's supported methods and payloads, read the OpenAPI document and the Free quickstart.