Skip to main content

mcphost

dev.mcphost/mcphostVersion 0.130.19

Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.

Status

Responds52 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
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 ms
No sign-in

Claude Code

claude mcp add --transport http mcphost https://mcphost.dev/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: mcphost
Remote MCP server URL: https://mcphost.dev/mcp

Cursor

{
  "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.

Host your own MCP server on run.zero

Tools

18 tools

Tools of mcphost
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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot declared
host.feedback.listList your own feedback (newest first, status received). Anonymous callers get [].Not declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot declared
host.state.listList keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix.Not declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot declared
host.tool_testDry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart.Not declaredNot declaredNot declaredNot declared
host.whoamiReturn the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene.Not declaredNot declaredNot declaredNot 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 declaredNot declaredNot declaredNot 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

Are you the operator? Claim this listing