Command overview
beacon mcp connect adds the Beacon Cloud MCP server to the MCP configuration of each harness it
finds, so an agent can search the session history this endpoint forwards to Beacon Cloud.
beacon mcp disconnect removes exactly what connect added, and beacon mcp status shows what is
configured where.
Command syntax
beacon-managed. The local server that
beacon mcp serve runs is called beacon. The two are different servers
with different names, so neither entry ever overwrites the other:
Beacon Cloud MCP reads your forwarded history with
beacon_search_sessions, beacon_grep,
beacon_read_session, beacon_get_event, beacon_lookup and beacon_usage, and your Beacon
Cloud findings with beacon_findings_list and beacon_get_finding, and recalls memory approved in
Beacon Cloud with beacon_memory_search and beacon_memory_get. A connection signed in with
write access can also share sessions, publish lenses, give feedback on findings, and file and
review memory candidates; see
Beacon Cloud MCP.
Tokens from beacon mcp token create are always read-only.
beacon mcp connect never runs on an unattended install. The interactive onboarding wizard runs
it for you after you choose Beacon Cloud, unless you turn “Beacon Cloud MCP” off on its
agent tools screen; if you turn it off, the install
suggests it instead. It refuses to run as root, and in CI or without a terminal it runs only
with --yes.beacon mcp connect
Example output
-
Harnesses. Without
--harness, connect acts on every harnessbeacon endpoint discoverdetects.--harnessaccepts the same names asbeacon endpoint install --harness, such asclaude,codex,cursor,vscode,gemini,opencodeandomp. -
URL. The URL is
--url, or the Beacon Cloud URL recorded bybeacon endpoint connectwith/mcpadded. The Beacon Cloud backend may name its own canonical MCP URL,https://mcp.beacon.shin production. When it does, connect uses that URL. Without either, connect stops and asks you to runbeacon endpoint connector pass--url. -
URL check. Before writing anything, connect fetches
<origin>/.well-known/oauth-protected-resourceand requires itsresourceto be the URL. The URL must behttps://(plainhttpis allowed only for a loopback development server). This is the command’s only network request. It sends no token or cookie, and it does not follow redirects. -
Plan. For each harness connect shows the file, the action and the auth mode:
-
Confirm and write. Connect asks before writing, unless you pass
--yes. Each changed file is first backed up next to itself as<file>.beacon.<UTC time>.bak, then replaced atomically. The file keeps its permissions, and a file Beacon creates is0600.
How files are edited
Harness configs are your files, and several of them hold other servers’ credentials. Connect never decodes and re-encodes a whole config. It adds or removes its one entry as text, keeping every other byte, including comments, trailing commas, indentation and line endings. It then parses the result and checks that the only difference from the original is thebeacon-managed entry.
If anything else would change, nothing is written. A symlinked config, such as one managed by a
dotfiles tool, is written through the link.
Codex CLI, OpenCode and Oh My Pi turn a server off with an enabled key inside its entry. That
key is yours: if you switch beacon-managed off, connect keeps your value whenever it writes the
entry, so running it again, or changing the auth mode, never turns the server back on.
What connect wrote is recorded in ~/.beacon/mcp/connections.json (0600): the harness, file, URL,
auth mode, variable name and backup, and never a token. disconnect uses this record rather than
a comment in the config, because some harnesses rewrite their config files and drop comments.
Flags
Authentication: OAuth or a token
OAuth is the default and the recommended mode. Connect writes only the URL. The first time the harness connects, Beacon Cloud answers401 with a pointer to its OAuth metadata. The harness
then registers itself, opens a browser, and you approve access on beacon.sh. No secret is written
by Beacon, and you can disconnect the app on the MCP Access page.
A personal token is for harnesses or setups where browser sign-in does not work. Create one
with beacon mcp token create (or at Dashboard → Identity → MCP Access), export it, and connect
with --token-env:
--token-env value that looks like a token rather than a variable
name. The harness must be started from an environment where the variable is set.
Create a token from the CLI
beacon mcp token create uses your beacon login session to create a personal MCP token. The
token is printed to stdout once and cannot be shown again; its name, prefix, expiry and the MCP URL
go to stderr, so $(...) captures only the token. --json prints the token and its details as
JSON on stdout instead. Beacon never writes the token to a file.
The token reads your Beacon Cloud data, counts toward the limit of 25 active tokens, and is
revoked at Dashboard → Identity → MCP Access. It needs the
mcp:token:create permission, which
beacon login requests and the sign-in page lists; a session from an older beacon login is
refused with a prompt to sign in again.
Per-harness notes
Connect writes these entries (OAuth mode shown, then what--token-env NAME adds):
- VS Code asks for the token the first time the server starts and keeps it in its own secret
storage, so in token mode it does not read
NAME. - Gemini CLI loads MCP servers only in trusted folders. In an untrusted folder,
beacon-managedshows as disabled. - OpenCode reads
opencode.jsonwhen both it andopencode.jsoncexist. Connect edits the same file OpenCode’s ownopencode mcp addwould. - Oh My Pi signs in only when you run
/mcp reauth beacon-managed; until then it reportsbeacon-managedas failing to connect each time it starts. It readsmcp.jsonas plain JSON and ignores a file with comments or trailing commas, so connect skips such a file instead of editing it. Connect writes only the active profile; run it withOMP_PROFILEset to connect another. Oh My Pi also loads the MCP servers of Claude Code, Codex CLI, Cursor, Gemini CLI and OpenCode, so abeacon-managedentry connect wrote for one of those appears in Oh My Pi as well, and stays afterbeacon mcp disconnect --harness omp. Its own entry takes precedence over those.
Harnesses you add by hand
These harnesses have no MCP OAuth support Beacon has confirmed, so connect writes nothing for them. It prints the command or snippet instead, with a<token> placeholder for a token from
Dashboard → Identity → MCP Access:
- GitHub Copilot CLI:
copilot mcp add --transport http beacon-managed <url> --header "Authorization: Bearer <token>" - Cline: a
streamableHttpentry incline_mcp_settings.json - Kiro:
~/.kiro/settings/mcp.json - Devin Desktop:
~/.codeium/windsurf/mcp_config.json(serverUrl) - Qwen Code:
~/.qwen/settings.json(httpUrl) - Factory Droid:
droid mcp add beacon-managed <url> --type http --header … - Hermes Agent:
mcp_serversinconfig.yamlin the Hermes home (~/.hermesunlessHERMES_HOMEor a profile is set) - Kimi Code:
kimi mcp add --transport http beacon-managed <url> --header … - Antigravity CLI:
~/.gemini/antigravity/mcp_config.json(serverUrl)
beacon mcp disconnect
- When a file has not changed since connect wrote it, disconnect restores the exact original bytes from the backup.
- Otherwise, disconnect removes only the
beacon-managedentry. It also removes anymcpServers-style container Beacon created, if nothing else is in it. - A config file that connect created is deleted once nothing else is in it.
beacon mcp status
Example output
AUTH is oauth, token-env (the entry references
a variable), or token (the entry has a header written outside Beacon, whose value is never
shown). Status makes no network request unless you pass --check, which runs the same URL check
as connect and exits non-zero if it fails.
What Beacon Cloud MCP can find
Beacon Cloud MCP searches what this endpoint forwarded, which limits what it can find:- Each retained string is capped at 4 KB before it is written locally. Text past that point in a long tool output or diff is never forwarded, so it cannot be grepped.
- An endpoint connected in Metadata-only mode forwards no prompts, responses, tool arguments or output. For such an endpoint, grep and read return little beyond identifiers, counts and token usage.
Related
beacon mcp
The local Beacon MCP server and its tools.
beacon mcp doctor
Validate the local server and print its client config.
beacon endpoint connect
Connect this endpoint to Beacon Cloud.
Redaction and size limits
What is retained, truncated and forwarded.