Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

dev.mcphost/mcphost

REMOTE · MCPHOST.DEV · SCANNED OCT 12

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

Available components

−1 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
Transport & Reachability100
Schema Quality & AI Usability60
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3997 tokens (~285/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability check failed: schema churn in the 30 days we've observed: 36 tool removals, 0 breaking changes, 0 auth/transport breaks, 3 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "host.tool_publish" implies "publish" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the dev.mcphost/mcphost MCP server?

dev.mcphost/mcphost is a hosted endpoint at https://mcphost.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcphost.dev

# add to Claude Code
claude mcp add --transport http dev-mcphost-mcphost 'https://mcphost.dev/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "dev-mcphost-mcphost": {
      "url": "https://mcphost.dev/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "dev-mcphost-mcphost": {
      "type": "http",
      "url": "https://mcphost.dev/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.dev-mcphost-mcphost]
url = "https://mcphost.dev/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-mcphost-mcphost": {
      "type": "remote",
      "url": "https://mcphost.dev/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-mcphost-mcphost --url 'https://mcphost.dev/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dev-mcphost-mcphost:
    url: "https://mcphost.dev/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "dev-mcphost-mcphost": {
      "Transport": "http",
      "Url": "https://mcphost.dev/mcp"
    }
  }
}
# add to Vellum
assistant mcp add dev-mcphost-mcphost -t streamable-http -u 'https://mcphost.dev/mcp'
// mcp.json
{
  "mcpServers": {
    "dev-mcphost-mcphost": {
      "type": "http",
      "url": "https://mcphost.dev/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 12 Oct 26 −1
    • HSTS header: fail → pass ▲ security
    • The server changed its declared name: rmcp → mcphost security
    • Tool “host.tool_publish” rewrote its description, which is the text the model reads security
    • Tool “host.tool_test” rewrote its description, which is the text the model reads security
    • Schema quality: 3317 → 3997 ▼ functional
    • Server version: 0.107.46+contract.1.5a7228fb2ecb → 0.107.48+contract.1.5a7228fb2ecb functional
    • Server version: 0.107.44+contract.1.4a049ed570d0 → 0.107.46+contract.1.5a7228fb2ecb functional
    • Server version: 0.107.40+contract.1.e697cb1d3dd1 → 0.107.44+contract.1.4a049ed570d0 functional
    • Server version: 3.3.0 → 0.107.40+contract.1.e697cb1d3dd1 functional
    • New tool “host.feedback.list” functional
    • New tool “host.feedback.send” functional
    • “host.state.set” added an optional parameter “dry_run” cosmetic
    • “host.tool_call” added an optional parameter “dry_run” cosmetic
    • “host.tool_publish” added an optional parameter “dry_run” cosmetic
    • “host.tool_test” added an optional parameter “fixtures” cosmetic
    • “host.tool_publish” reworded the description of “kind” cosmetic
    • “host.tool_publish” reworded the description of “spec” cosmetic
    • “host.quickstart” made “kind” optional cosmetic
  • 5 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • “billing.plans” reworded the description of “tenant_key” cosmetic
    • “host.quickstart” reworded the description of “tenant_key” cosmetic
    • “host.redeem” reworded the description of “tenant_key” cosmetic
    • “host.state.get” reworded the description of “tenant_key” cosmetic
    • “host.state.list” reworded the description of “tenant_key” cosmetic
    • “host.state.set” reworded the description of “tenant_key” cosmetic
    • “host.tool_call” reworded the description of “tenant_key” cosmetic
    • “host.tool_publish” reworded the description of “tenant_key” cosmetic
    • “host.tool_share” reworded the description of “tenant_key” cosmetic
    • “host.tool_test” reworded the description of “tenant_key” cosmetic
    • “host.whoami” reworded the description of “tenant_key” cosmetic
  • 4 Oct 26 0
    • Tool “host.tool_publish” rewrote its description, which is the text the model reads security
    • Tool “host.tool_test” rewrote its description, which is the text the model reads security
    • “host.tool_publish” reworded the description of “spec” cosmetic
  • 3 Oct 26 −8
    • Stability: 0.87 → fail ▼ security
    • A breaking change shipped without a version bump: still 3.3.0 ▼ security
    • Tool “billing.checkout” was removed ▼ security
    • Tool “billing.status” was removed ▼ security
    • Tool “host.agent.contact_accept” was removed ▼ security
    • Tool “host.agent.contact_deny” was removed ▼ security
    • Tool “host.agent.contact_request” was removed ▼ security
    • Tool “host.agent.contacts” was removed ▼ security
    • Tool “host.agent.contacts_import” was removed ▼ security
    • Tool “host.agent.lookup” was removed ▼ security
    • Tool “host.agent.mute” was removed ▼ security
    • Tool “host.agent.profile_set” was removed ▼ security
    • Tool “host.agent.search” was removed ▼ security
    • Tool “host.agent.unmute” was removed ▼ security
    • Tool “host.agent.whoami” was removed ▼ security
    • Tool “host.bridge_test” was removed ▼ security
    • Tool “host.catalog.get” was removed ▼ security
    • Tool “host.catalog.search” was removed ▼ security
    • Tool “host.changelog” was removed ▼ security
    • Tool “host.channel.close” was removed ▼ security
    • Tool “host.channel.freeze” was removed ▼ security
    • Tool “host.channel.open” was removed ▼ security
    • Tool “host.channel.post” was removed ▼ security
    • Tool “host.channel.read” was removed ▼ security
    • Tool “host.channel.unfreeze” was removed ▼ security
    • Tool “host.docs.delete” was removed ▼ security
    • Tool “host.docs.get” was removed ▼ security
    • Tool “host.docs.index_config” was removed ▼ security
    • Tool “host.docs.list” was removed ▼ security
    • Tool “host.docs.purge” was removed ▼ security
    • Tool “host.docs.put” was removed ▼ security
    • Tool “host.docs.reindex” was removed ▼ security
    • Tool “host.docs.search” was removed ▼ security
    • Tool “host.docs.status” was removed ▼ security
    • Tool “host.enduser.assertion_secret_rotate” was removed ▼ security
    • Tool “host.enduser.audit” was removed ▼ security
    • Tool “host.enduser.export” was removed ▼ security
    • Tool “host.enduser.get” was removed ▼ security
    • Tool “host.enduser.list” was removed ▼ security
    • Tool “host.enduser.purge” was removed ▼ security
    • Tool “host.enduser.revoke” was removed ▼ security
    • Tool “host.enduser.unrevoke” was removed ▼ security
    • Tool “host.enduser.whoami” was removed ▼ security
    • Tool “host.export” was removed ▼ security
    • Tool “host.group.add” was removed ▼ security
    • Tool “host.group.create” was removed ▼ security
    • Tool “host.group.list” was removed ▼ security
    • Tool “host.group.remove” was removed ▼ security
    • Tool “host.key_rotate” was removed ▼ security
    • Tool “host.lineage.blast_radius” was removed ▼ security
    • Tool “host.lineage.trace” was removed ▼ security
    • Tool “host.lineage.trace_page” was removed ▼ security
    • Tool “host.msg.ack” was removed ▼ security
    • Tool “host.msg.block” was removed ▼ security
    • Tool “host.msg.inbox” was removed ▼ security
    • Tool “host.msg.reply” was removed ▼ security
    • Tool “host.msg.send” was removed ▼ security
    • Tool “host.msg.thread” was removed ▼ security
    • Tool “host.msg.unblock” was removed ▼ security
    • Tool “host.msg.wait” was removed ▼ security
    • Tool “host.oauth.audit” was removed ▼ security
    • Tool “host.oauth.audit_export” was removed ▼ security
    • Tool “host.oauth.client_approve” was removed ▼ security
    • Tool “host.oauth.client_deny” was removed ▼ security
    • Tool “host.oauth.doctor” was removed ▼ security
    • Tool “host.oauth.grant_revoke” was removed ▼ security
    • Tool “host.oauth.grants” was removed ▼ security
    • Tool “host.oauth.issuer_remove” was removed ▼ security
    • Tool “host.oauth.issuer_set” was removed ▼ security
    • Tool “host.oauth.issuers” was removed ▼ security
    • Tool “host.oauth.pending” was removed ▼ security
    • Tool “host.oauth.policy” was removed ▼ security
    • Tool “host.oauth.policy_set” was removed ▼ security
    • Tool “host.oauth.provider” was removed ▼ security
    • Tool “host.oauth.provider_remove” was removed ▼ security
    • Tool “host.oauth.provider_set” was removed ▼ security
    • Tool “host.oauth.revoke_all” was removed ▼ security
    • Tool “host.oauth.scope_set” was removed ▼ security
    • Tool “host.oauth.scopes” was removed ▼ security
    • Tool “host.oauth.trusted_issuer_remove” was removed ▼ security
    • Tool “host.oauth.trusted_issuer_set” was removed ▼ security
    • Tool “host.oauth.trusted_issuers” was removed ▼ security
    • Tool “host.progress” was removed ▼ security
    • Tool “host.registry_publish” was removed ▼ security
    • Tool “host.runs.cancel” was removed ▼ security
    • Tool “host.runs.get” was removed ▼ security
    • Tool “host.runs.list” was removed ▼ security
    • Tool “host.runs.part” was removed ▼ security
    • Tool “host.runs.purge” was removed ▼ security
    • Tool “host.runs.wait” was removed ▼ security
    • Tool “host.secret_list” was removed ▼ security
    • Tool “host.secret_set” was removed ▼ security
    • Tool “host.self_offboard” was removed ▼ security
    • Tool “host.share.caller_limit” was removed ▼ security
    • Tool “host.share.caller_limit_remove” was removed ▼ security
    • Tool “host.state.delete” was removed ▼ security
    • Tool “host.state.delete_rows” was removed ▼ security
    • Tool “host.state.insert” was removed ▼ security
    • Tool “host.state.query” was removed ▼ security
    • Tool “host.state.table_create” was removed ▼ security
    • Tool “host.state.table_drop” was removed ▼ security
    • Tool “host.table.append” was removed ▼ security
    • Tool “host.table.chart” was removed ▼ security
    • Tool “host.table.charts” was removed ▼ security
    • Tool “host.table.create” was removed ▼ security
    • Tool “host.table.describe” was removed ▼ security
    • Tool “host.table.drop” was removed ▼ security
    • Tool “host.table.list” was removed ▼ security
    • Tool “host.table.model_set” was removed ▼ security
    • Tool “host.table.models” was removed ▼ security
    • Tool “host.table.query” was removed ▼ security
    • Tool “host.table.schema” was removed ▼ security
    • Tool “host.tool_diff” was removed ▼ security
    • Tool “host.tool_history” was removed ▼ security
    • Tool “host.tool_list” was removed ▼ security
    • Tool “host.tool_logs” was removed ▼ security
    • Tool “host.tool_remove” was removed ▼ security
    • Tool “host.tool_rollback” was removed ▼ security
    • Tool “host.tool_run” was removed ▼ security
    • Tool “host.tool_spec_shared” was removed ▼ security
    • Tool “host.tool_unshare” was removed ▼ security
    • Tool “host.trigger.fire” was removed ▼ security
    • Tool “host.trigger.get” was removed ▼ security
    • Tool “host.trigger.list” was removed ▼ security
    • Tool “host.trigger.pause” was removed ▼ security
    • Tool “host.trigger.remove” was removed ▼ security
    • Tool “host.trigger.replay” was removed ▼ security
    • Tool “host.trigger.resume” was removed ▼ security
    • Tool “host.trigger.set” was removed ▼ security
    • Tool “host.trigger.test” was removed ▼ security
    • Tool “host.usage” was removed ▼ security
    • Tool “host.vault.connect_link” was removed ▼ security
    • Tool “host.vault.disconnect” was removed ▼ security
    • Tool “host.vault.provider_remove” was removed ▼ security
    • Tool “host.vault.provider_set” was removed ▼ security
    • Tool “host.vault.providers” was removed ▼ security
    • Tool “host.vault.status” was removed ▼ security
    • Schema quality: 192 → 255 ▼ functional
  • 2 Oct 26 +1
    • Tool “host.agent.unmute” rewrote its description, which is the text the model reads security
    • Tool “host.docs.search” rewrote its description, which is the text the model reads security
    • Tool “host.msg.unblock” rewrote its description, which is the text the model reads security
    • Tool “host.table.drop” rewrote its description, which is the text the model reads security
    • New tool “host.lineage.blast_radius” functional
    • New tool “host.lineage.trace” functional
    • New tool “host.lineage.trace_page” functional
    • New tool “host.table.chart” functional
    • New tool “host.table.charts” functional
    • New tool “host.vault.connect_link” functional
    • New tool “host.vault.disconnect” functional
    • New tool “host.vault.provider_remove” functional
    • New tool “host.vault.provider_set” functional
    • New tool “host.vault.providers” functional
    • New tool “host.vault.status” functional
    • “host.docs.search” added an optional parameter “mode” cosmetic
    • “host.table.drop” added an optional parameter “confirm” cosmetic
  • 1 Oct 26 −1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

    • Schema quality: 132 → 191 ▼ functional
    • “billing.checkout” reworded the description of “tenant_key” cosmetic
    • “billing.plans” reworded the description of “tenant_key” cosmetic
    • “billing.status” reworded the description of “tenant_key” cosmetic
    • “host.agent.contact_accept” reworded the description of “tenant_key” cosmetic
    • “host.agent.contact_deny” reworded the description of “tenant_key” cosmetic
    • “host.agent.contact_request” reworded the description of “tenant_key” cosmetic
    • “host.agent.contacts” reworded the description of “tenant_key” cosmetic
    • “host.agent.contacts_import” reworded the description of “tenant_key” cosmetic
  • 29 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 28 Sept 26 +4

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 12 Oct 2026 · Probed https://mcphost.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcphost.dev CN=YE2,O=Let's Encrypt,C=US 6 Sept 2026 5 Dec 2026 ECDSA 256 ECDSA-SHA384 6d90eafb56dfa48bc01e1e08da1962e263e
SANs: mcphost.dev
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcphost.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
mcphost.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcphost.dev/.well-known/oauth-protected-resource", scope="mcp"

Bearer resource_metadata="https://mcphost.dev/.well-known/oauth-protected-resource", scope="mcp"
Header Value
strict-transport-security max-age=15552000; includeSubDomains

Protected resource metadata

Document https://mcphost.dev/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcphost.dev
Authorisation server https://mcphost.dev
toolconf-probe

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcphost.dev/mcp Verified 200
http (plaintext) http://mcphost.dev/mcp HTTPS enforced 308 https://mcphost.dev/mcp
MCP tools · 14 exposed · ~3,504 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
billing.plans ~145

The plan catalog (price and quotas per plan) and whether Stripe billing is configured on this host. Anonymous callers get the same answer as tenants.

NameTypeReqDescription
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.feedback.list ~151

List your own feedback (newest first, status received). Anonymous callers get [].

NameTypeReqDescription
limitinteger–Max rows, up to 100; default 20.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.feedback.send ~203

Tell the host's humans what you needed: kind, up to 2048 bytes of text, optional context. Works before signup. Returns feedback_id.

NameTypeReqDescription
contextobject–Optional, at most 1 KB: tool, error_code, free.
kindstringyesWhat you are telling the host.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…
textstringyesWhat you needed or saw; 1 to 2048 bytes after trim.

No output schema declared.

No examples provided.

host.quickstart ~277

Return 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.

NameTypeReqDescription
kindstring–Which registered kind to return a worked example for, e.g. echo, http, python -- or a job-word alias (webhook, event, cron, ...) for its recipe. Omit to see every kind, alias and recipe name.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.redeem ~194

Exchange 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.

NameTypeReqDescription
handoff_tokenstringyesThe handoff_token signup(handoff: true) returned.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.state.get ~209

Read one key from this tenant's key-value state namespace. Returns found: false (not an error) if the key was never set.

NameTypeReqDescription
end_userstring|null–"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
keystringyesKey to read from this tenant's key-value state namespace.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.state.list ~219

List keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix.

NameTypeReqDescription
end_userstring|null–"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
limitinteger–Max keys to return; default 100.
prefixstring–Only list keys starting with this prefix; default: all keys.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.state.set ~251

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 with state_quota_exceeded and writes nothing.

NameTypeReqDescription
dry_runboolean–return the diff this call would make and commit nothing
end_userstring|null–"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
keystringyesKey to write in this tenant's key-value state namespace.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…
value–yesAny JSON value to store under key.

No output schema declared.

No examples provided.

host.tool_call ~460

Invoke 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.

NameTypeReqDescription
argsobjectyesArguments to pass, validated against the tool's own args_schema.
asyncboolean–Run as a job instead of inline: returns {run_id, status} within ~50ms under the plan's job_max_s deadline; default false.
budgetobject–Lowers this call's budget below the plan default: any subset of max_child_calls, max_est_tokens, max_tool_latency_ms, max_wall_ms. A value above the plan's own ceiling is a validation error naming it…
dry_runboolean–Ask instead of call: runs every admission check the real call runs, dispatches nothing, writes no call row, and returns {fits, units, remaining, refusal}; same as host.estimate. Default false.
namestringyesLocal name of the tool to invoke.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…
versioninteger–Pin the call to this version instead of whichever is current; see host.tool_history. An unknown version is an argument error.

No output schema declared.

No examples provided.

host.tool_publish ~534

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

NameTypeReqDescription
dry_runboolean–return the diff this call would make and commit nothing
kindstringyesWhich registered kind to publish under: one of this field's `enum` (host.quickstart with no kind lists every kind, alias and recipe). A job-word alias in the enum also resolves here -- webhook-style…
namestringyesLocal name for the new tool; must match ^[a-z][a-z0-9_]{1,40}$.
scopesarray–OAuth scopes a token must carry (directly, or via mcp) to reach this tool: catalogued names from host.oauth.scopes, or the built-ins read/write. At most 8. Omit (or [] ) to require only mcp -- unaffe…
specobjectyesThe kind-specific spec object; see host.quickstart(kind) for a filled-in example. For python's network field: "none" (every plan), "public" (requires the pro plan), "egress" (requires the pro plan) -…
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.tool_share ~283

Share 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>.

NameTypeReqDescription
descriptionstring–Catalog-facing blurb; shown by host.catalog.search/get.
expose_specboolean–Default false. When true, any tenant this tool is shared with may call host.tool_spec_shared to read its (redacted) spec.
groupstring–Required when visibility is "group"; must already exist (host.group.create).
namestringyesLocal name of the tool to share.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…
visibilitystringyes"public" or "group".

No output schema declared.

No examples provided.

host.tool_test ~245

Dry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart.

NameTypeReqDescription
argsobjectyesArguments to pass, same shape as a real call.
fixturesobject–Chain tools only: {"<step number or tool name>": <recorded result>}. A fixtured step executes nothing (no upstream call); later mappings resolve against it. host.runs.get(run_id, as_fixtures=true) ex…
namestringyesLocal name of the already-published tool to dry-run.
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

host.whoami ~138

Return the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene.

NameTypeReqDescription
tenant_keystring–The key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connec…

No output schema declared.

No examples provided.

signup ~195

Explicit 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.

NameTypeReqDescription
handoffboolean–Recommended: true to receive a handoff_token (redeem via host.redeem) instead of the raw key. Default false (raw key, unchanged).
namestringyesdisplay name

No output schema declared.

No examples provided.

Common questions

What is the dev.mcphost/mcphost MCP server?

dev.mcphost/mcphost is an MCP server listed in the public MCP registry as dev.mcphost/mcphost. Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working. This page covers its hosted endpoint (https://mcphost.dev/mcp).

Is the dev.mcphost/mcphost MCP server safe to use?

dev.mcphost/mcphost scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the dev.mcphost/mcphost MCP server expose?

dev.mcphost/mcphost exposes 14 tools: signup, host.quickstart, host.redeem, billing.plans, host.whoami, and 9 more. Their descriptions and schemas cost roughly 3,504 tokens of context every time the server is loaded.

Does the dev.mcphost/mcphost MCP server require authentication?

Yes. dev.mcphost/mcphost asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the dev.mcphost/mcphost MCP server still maintained?

dev.mcphost/mcphost is still listed as active in the MCP registry. We last reached this channel on 12 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.