mcphost
dev.mcphost/mcphostVersion 0.130.19Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.
Status
Responds52 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:26 UTC
- Latency
- 52 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcphost.dev/mcpResponds52 msNo sign-in
Claude Code
claude mcp add --transport http mcphost https://mcphost.dev/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: mcphost
Remote MCP server URL: https://mcphost.dev/mcpCursor
{
"mcpServers": {
"mcphost": {
"url": "https://mcphost.dev/mcp"
}
}
}VS Code
code --add-mcp '{"name":"mcphost","type":"http","url":"https://mcphost.dev/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
18 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
billing.plansThe plan catalog (price and quotas per plan) and whether Stripe billing is configured on this host. Anonymous callers get the same answer as tenants. | Not declared | Not declared | Not declared | Not declared |
host.errorsList every error code this host can return, each with its class (agent_fault | host_refusal | upstream_fault | plan_limit | host_fault), family, remedy, docs anchor, retryable flag and help_url -- the same object GET /errors.json serves. Pass code to get one row; a misspelt code answers tool_not_found with did_you_mean. Read-only, anonymous, no tenant data. | Not declared | Not declared | Not declared | Not declared |
host.feedback.listList your own feedback (newest first, status received). Anonymous callers get []. | Not declared | Not declared | Not declared | Not declared |
host.feedback.sendTell the host's humans what you needed: kind, up to 2048 bytes of text, optional context. Works before signup. Returns feedback_id. | Not declared | Not declared | Not declared | Not declared |
host.help.getReturn the documentation section an anchor points at: its text (at most 4 KB) and its first fenced example. Pass an anchor exactly as an error, hint or help entry printed it, e.g. a rate_limited error's `anchor`. Read-only, anonymous, no tenant data. An unknown anchor is anchor_not_found with the nearest anchors in did_you_mean. | Not declared | Not declared | Not declared | Not declared |
host.help.searchSearch this host's own documentation and tool descriptions. Returns up to k hits (default 3, response under 2 KB), each with a snippet, the nearest runnable example and an anchor. Read-only, anonymous, no tenant data -- call it with the error text or import line you are stuck on before reading any docs file. | Not declared | Not declared | Not declared | Not declared |
host.quickstartReturn the shortest ordered sequence of calls to a working tool of `kind`, with your namespace and a filled-in example already substituted in, plus the current limits and a try_before_call table naming the one dry-run tool for each case. Read-only -- this call alone never creates a tenant. Call this before host.tool_publish if you're not sure what a spec should look like. Unauthenticated callers get a worked example with no tenant data; any other host.*/billing.* call creates a tenant on first use, no signup required. | Not declared | Not declared | Not declared | Not declared |
host.redeemExchange a signup(handoff: true) handoff_token for the tenant key it was issued for. Single-use: a second redemption fails with handoff_token_redeemed; past its expiry it fails with handoff_token_expired. Unauthenticated -- the token itself is the proof. | Not declared | Not declared | Not declared | Not declared |
host.resumeResume 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, what changed on the host since your last call, and one suggested next_call. truncated names any section that was cut -- call that section's own tool (host.tool.list, host.runs.list, host.note.list, host.changelog) for the rest. Read-only. An unauthenticated caller gets the onboarding block and creates no tenant. | Not declared | Not declared | Not declared | Not declared |
host.state.getRead one key from this tenant's key-value state namespace. Returns found: false (not an error) if the key was never set. | Not declared | Not declared | Not declared | Not declared |
host.state.listList keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix. | Not declared | Not declared | Not declared | Not declared |
host.state.setWrite 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 with state_quota_exceeded and writes nothing. | Not declared | Not declared | Not declared | Not declared |
host.tool_callInvoke a tool this tenant has already published, by its local name -- the same real, metered call as calling it directly by its namespaced name (<namespace>.<name>), for a session that has no way to see its own namespaced tool name yet. Unlike host.tool_test, this counts toward host.usage and appears in host.tool_logs. Pass async: true for a tool that needs more than the call deadline: returns {run_id, status: "queued"} immediately instead of running inline -- see host.runs.get/wait. Pass version to pin the call to one of host.tool_history's versions instead of whichever is current. | Not declared | Not declared | Not declared | Not declared |
host.tool_publishPublish 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. Call host.quickstart(kind) first for a filled-in example spec and the full publish-to-call sequence. Python's sandbox API: import mcphost (mcphost.table, mcphost.state, mcphost.docs). Name must match ^[a-z][a-z0-9_]{1,40}$; a rejection names the failing field and a corrected example. Try host.tool_test before a real call. | Not declared | Not declared | Not declared | Not declared |
host.tool_shareShare one of this tenant's published tools with everyone (visibility: "public") or with a named group this tenant owns (visibility: "group", group: <name>). The tool keeps running in this tenant's own sandbox with this tenant's own secrets; a caller reaches it as <this tenant's namespace>.<name>. | Not declared | Not declared | Not declared | Not declared |
host.tool_testDry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart. | Not declared | Not declared | Not declared | Not declared |
host.whoamiReturn the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene. | Not declared | Not declared | Not declared | Not declared |
signupExplicit signup, for a client that cannot keep a session across calls: create a tenant and receive a bearer key and namespace. Unauthenticated. Most clients never need this -- any other host.*/billing.* call from a fresh connection creates a tenant implicitly and returns its own /u/<secret>/mcp URL in the response's onboarding field. Recommended here: pass handoff: true to receive a short-lived, single-use handoff_token instead of the raw key -- redeem it once with host.redeem to get the key, so a transcript of this call and the redeem call, if it leaks, carries a dead credential. The raw-key path (handoff omitted) stays fully supported. | Not declared | Not declared | Not declared | Not declared |
Details
- Registry status
- Active
- Published
- Nov 14, 2026
- Updated
- Nov 14, 2026
- Categories (suggested)
- Invoicing and accountingSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared