Security
Letting a cloud agent reach tools on your laptop has to be safe by construction. These are the properties webmcp.fast is built around.
The daemon only dials out
The daemon opens one outbound WebSocket to the gateway. Your machine listens on no new port, and needs no tunnel, VPN or firewall change. Each device authenticates with an Ed25519 key generated on that device. The private key never leaves it, and revoking the device on the dashboard closes its connection at once.
One credential opens one endpoint
Every connector is bound to exactly one /<device>/<server>/mcp URL. An OAuth access token's audience must equal the URL it is presented to, and the grant names the same handle, device and server. A token for one endpoint is simply invalid at every other endpoint and on every other handle. Nothing is ever anonymous: an unauthenticated request, including initialize, gets 401.
The dashboard can only narrow exposure
A server can be added in one place only: on your machine, with webmcp attach. The gateway never asks a device to run anything. From the dashboard you can disable a server, remove it, require approval for new servers, revoke a device or disconnect an agent. Someone who took over your dashboard session could switch things off. They could not expose anything new.
No raw shell
The gateway has no tools of its own and the daemon exposes only the MCP servers you configured, each as the command or local URL you gave it. There is no "run a command" facility anywhere in the system.
Tenant isolation
The hostname is the only routing key. Each handle has its own Durable Object, and the audience check happens before that object is ever addressed. Tenant hostnames serve no HTML and read no cookies, which removes cross-tenant cookie and scripting problems.
Audit, without the content
Every relayed call records its time, device, server, MCP method, tool name, duration and outcome for 30 days, visible to you. Argument and result bodies are not recorded, and relayed traffic is not stored. See the privacy policy.
Sign-in
No passwords. A 6-digit code, stored hashed, valid for 10 minutes, single use, bound to the browser that asked for it, with attempt and rate limits. An agent is never given the code.
Reporting a problem
Write to support@webmcp.fast with "security" in the subject. The technical detail is in the security model.