---
name: set-up-webmcp-fast
description: Get a user's local MCP server online through webmcp.fast so that Claude, ChatGPT, Grok or another cloud agent can use it at a stable OAuth-protected URL. Use when a user asks to set up webmcp.fast, to expose or share a local MCP server with a cloud agent, or to make a stdio MCP server reachable remotely without opening a port.
---

# Set up webmcp.fast for a local MCP server

## When to use

Use webmcp.fast when a user wants a cloud agent (Claude, ChatGPT, Grok, Cursor, or any remote-MCP client) to use an MCP server that runs on the user's own machine: a filesystem, git, database, browser, memory or coding-agent server, or anything else that speaks MCP over stdio or local HTTP. It fits when they do not want to open a port, run a tunnel, or host the server elsewhere.

Do not use it to host an MCP server in the cloud, to merge several servers behind one URL (every connector is exactly one server on one device), or to reach a machine the user does not control.

## Before you start

Tell the user three things: it is free to start (1 handle, 1 device, 1 server, 1 connector), they will receive one email with a 6-digit code that they type into their own browser, and they will approve each cloud agent on a consent screen. Ask which MCP server they want to expose if they have not said.

## Steps

1. **Install the daemon.** `curl -fsSL https://webmcp.fast/install.sh | sh` (coming with the first public release). Coming with the first public release: the install script is not published yet. macOS (Apple silicon and Intel) comes first, `brew install webmcp` later. Until then the daemon is built from source. The daemon is open source.
2. **Run `webmcp up`.** It generates a device key on the machine and prints one link, https://webmcp.fast/activate?code=XXXX-XXXX. Show that link to the human and wait; `webmcp up` returns when they have approved. It also offers any MCP servers it finds in existing Claude, Cursor and Codex configs.
3. **The human opens the link in their own browser.** They sign in with the 6-digit code emailed to them (this creates the account if they have none), pick a handle, and approve the device. The code is never given to the agent: do not ask for it, and do not offer to type it.
4. **Attach the server.** `webmcp attach <alias> -- <command> [args...]` for a stdio server, or `webmcp attach <alias> --http <local url>` for one already listening on localhost. The alias is 1 to 32 characters of `a-z`, `0-9` and `-`.
5. **Keep it online.** `webmcp service install` registers a launchd service so the daemon starts at login and reconnects by itself.
6. **Hand over the connector URL.** Print `https://<handle>.webmcp.fast/<device>/<server>/mcp` with the real handle, device and alias. The human pastes it into Claude, ChatGPT or Grok as a custom connector, signs in, and clicks Allow.

## The two human acts

Two steps are deliberately left to the human, and no agent can do them:

- **Proving they own the email address.** The 6-digit code goes to their inbox and is typed into their own browser. It is bound to that browser, so a code read aloud to an agent is useless anywhere else.
- **Approving each cloud agent.** Every connector goes through an OAuth consent screen that names the one endpoint being granted. The human clicks Allow, once per agent per server.

## Without a shell

A cloud agent can use the management MCP server at `https://webmcp.fast/mcp`:

- `check_handle` (anonymous): Check whether a handle (the <handle> in https://<handle>.webmcp.fast) is valid and still available to claim.
- `start_setup` (anonymous): Begin setting up webmcp.fast for a user from an agent that has no shell. Returns the exact commands the user runs on their machine and what to expect at each step. The user still signs in and approves the device in their own browser.
- `setup_status` (anonymous): Report how far a setup started with start_setup has got: waiting for the human to approve, device paired, server attached, device online.
- `list_devices` (OAuth scope `manage`): List the signed-in user's handles, their devices, whether each device is online, and the MCP servers each one offers.
- `connect_url` (OAuth scope `manage`): Return the connector URL, https://<handle>.webmcp.fast/<device>/<server>/mcp, for one server on one of the signed-in user's devices, with the steps to add it to Claude, ChatGPT or Grok.

Call `start_setup`, relay the command it returns, and poll `setup_status`.

## Rules

- Never ask for the emailed code, a connector token or a cookie.
- Attach only the server the user asked for.
- Do not report success until `webmcp up` has returned and `webmcp servers` shows the server as ready.
- Print the final URL exactly as the tools report it. Do not guess the handle or device name.
- If `webmcp attach` says the server is held back by the plan limit, say so. The free tier exposes one server per device, and a paid tier is not yet available.

## References

- Walkthrough: https://webmcp.fast/docs/agents
- Quickstart: https://webmcp.fast/docs/quickstart
- Security model: https://webmcp.fast/docs/security-model
- Authentication: https://webmcp.fast/auth.md
- OpenAPI: https://webmcp.fast/openapi.json
- Summary: https://webmcp.fast/llms.txt
