Categories › AI & Agents › Multi-agent, orchestration & workflows
Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.
Remote server: your requests and data go to mcphost.dev. Claude Code: claude mcp add --transport http mcphost https://mcphost.dev/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
signup — Explicit signup, for a client that cannot keep a session across calls: create a tenant and receive a bearer key and namespace. Unauthenticathost.quickstart — Return the shortest ordered sequence of calls to a working tool of `kind`, with your namespace and a filled-in example already substituted ihost.help.search — Search this host's own documentation and tool descriptions. Returns up to k hits (default 3, response under 2 KB), each with a snippet, the host.help.get — Return the documentation section an anchor points at: its text (at most 4 KB) and its first fenced example. Pass an anchor exactly as an errhost.errors — List every error code this host can return, each with its class (agent_fault | host_refusal | upstream_fault | plan_limit | host_fault), famhost.redeem — Exchange a signup(handoff: true) handoff_token for the tenant key it was issued for. Single-use: a second redemption fails with handoff_tokebilling.plans — The plan catalog (price and quotas per plan) and whether Stripe billing is configured on this host. Anonymous callers get the same answer ashost.whoami — Return the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene.host.tool_publish — Publish a tool of a registered kind (e.g. python, http or echo; the kind argument's enum lists them all) under this tenant's namespace. Callhost.tool_call — Invoke a tool this tenant has already published, by its local name -- the same real, metered call as calling it directly by its namespaced nhost.tool_test — Dry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart.host.state.set — Write one key in this tenant's key-value state namespace; value may be any JSON value. Overrun of the plan's state_bytes_max quota fails withost.state.get — Read one key from this tenant's key-value state namespace. Returns found: false (not an error) if the key was never set.host.state.list — List keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix.host.tool_share — Share one of this tenant's published tools with everyone (visibility: "public") or with a named group this tenant owns (visibility: "group",host.feedback.send — Tell the host's humans what you needed: kind, up to 2048 bytes of text, optional context. Works before signup. Returns feedback_id.host.feedback.list — List your own feedback (newest first, status received). Anonymous callers get [].host.resume — Resume where you left off in one call (at most 4096 bytes): your tools with each one's last call status, unfinished runs, your newest notes,Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.