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, orguidance. 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
intentsfor new callers; false does not remove any explicit intent.
A Free fit, available now
{
"messagesPerDay": 10,
"intents": ["notify"],
"recipients": "me"
}
Returns recommended: "public-free",
fits: true, and availableNow: true.
A future fit, not available now
{
"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
{
"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.