Redeem
your invite
Two ways in, one of them a single download. At the end your machine holds a key nobody else has, and the registry answers your questions.
Install — one click
Download the bundle and open it. Claude Desktop asks which folders to profile, and that is the install.
Or from a terminal, checking what you got against the published hash:
curl -fLO https://mcp.cyborg.support/download/cyborg-local-macosx_11_0_arm64.mcpb && shasum -a 256 cyborg-local-*.mcpbIt is the reduced-isolation build. The scanner and publisher stay separate processes, but not separate containers, so the scanner runs with your privileges instead of in a sandbox with no network. Point it at material you already trust. It also does not carry git, cloc or universal-ctags — document archives profile fully without them, code projects come back thinner and tell you which signals are missing.
Then skip to step 4.
Install — hardened
Docker instead. The scanner gets read-only mounts and no network at all. This is the install the security claims are written about.
Get the source and configure
curl -fLO https://mcp.cyborg.support/download/cyborg-support-src.tar.gz && tar xzf cyborg-support-src.tar.gz && cd mcp.cyborg.support && cp .env.example .envSet SCAN_ROOT_1 to an absolute path you want profiled — it ships empty, so the stack starts with nothing to look at until you do. Generate a salt with openssl rand -hex 32 and paste it into PROJECT_ID_SALT; publishing is refused without one.
Start it
make build upAdd the local MCP
claude mcp add cyborg-local -- docker compose -f /path/to/mcp.cyborg.support/docker-compose.yml run --rm -T brokerRedeem the invite
Your code looks like A1B2-C3D4-E5F6-7890-ABCD-EF12. Most work once; some allow a few registrations, and a refused code has been used up.
Ask your agent to call register_with_registry with your code. It makes the keypair, signs the code to prove you hold it, and stores the token.
register_with_registry(invite: "A1B2-C3D4-E5F6-7890-ABCD-EF12") → registered: true The token is stored in state/identity/ and is not shown here.
Nothing about any project is sent. The request carries a public key and a signature.
Your first profile
analyze_project returns facts. Your own model writes the description from them and shows you, and submit_profile stores what you approve. Reading it before it is stored is the consent step.
Point it at anything under a scan root: a whole repo, one package of a monorepo, or one folder of an archive.
analyze_project(path: "~/code/some-project") submit_profile(path: "~/code/some-project", purpose: …) → stored locally, disclosure: private
Everything stays private until you publish it.
Publishing
publish_profile takes one project path. There is no publish-all. Your key signs the profile, so a stolen token cannot publish as you.
This cannot be undone
Lowering a tier later is not deletion. Copies already fetched or cached cannot be recalled. Treat every publish as permanent.
Back up state/ with make backup. It holds your private key, and there is no recovery path. Losing it means losing the ability to update what you published.
If something is wrong
- Every registry call returns 401
- Your machine is not registered, or the token header is missing.
- The invite is refused
- It has been used up. Ask for another.
- Publishing returns 403 about a signature
- The token and the key have come apart, usually a backup that restored one and not the other. You need a new invite.
make upfails on a port- Set
REGISTRY_HOST_PORTin.env.