Skip to content

Quickstart — the Worker alone

Goal: a working Fermi MCP server in your Cloudflare account, connected to one AI host, in about 15 minutes. Nothing here touches your Mac or AWS.

Pick the row that matches your goal:

You wantDo
Shared memory/skills across Claude hostsThis page, then connect each host
The agent to also have hands on a MacThis page, then The Daemon
Disposable cloud agentsThis page, then Neutrinos
To understand it before running itSystem map

Prerequisites

  • A Cloudflare account on the Workers Paid plan ($5/mo — D1, R2, KV, Vectorize stay near free tier at single-user volume)
  • Bun and Node 22+
  • wrangler logged in: bunx wrangler login

Install and deploy

bash
git clone https://github.com/abel30567/fermi-mcp
cd fermi-mcp
bun install

# Provisions D1, R2, KV, Vectorize on your account and writes
# packages/worker/wrangler.jsonc from the template. Idempotent.
./bootstrap.sh

# Schema, then ship it
cd packages/worker
bun run migrate:remote
bunx wrangler deploy

Set the secrets the Worker needs (each is optional until the feature that uses it):

bash
bunx wrangler secret put FERMI_BEARER_TOKEN    # admin endpoints; generate something long
bunx wrangler secret put FERMI_SECRETS_KEY     # encrypts your stored secrets at rest
bunx wrangler secret put FERMI_OWNER_SECRET    # OAuth consent screen password
bunx wrangler secret put ANTHROPIC_API_KEY     # optional; team_spawn / leftover Worker inference

Then turn the auth gate on for any deployment that isn't localhost:

bash
bunx wrangler secret put FERMI_AUTH_ENABLED    # value: true

Open mode is really open

With FERMI_AUTH_ENABLED unset, /mcp has no transport auth. That is a local-dev convenience, not a deployment mode. A deployed Worker in open mode is a public agent with your memory in it.

Connect a host

  • Claude.ai / Claude Desktop — add a custom connector pointing at https://<your-worker>.workers.dev/mcp; complete the OAuth consent (owner secret + TOTP if configured). Walkthrough with screenshots: docs/connect-claude-desktop.md.
  • Claude Codeclaude mcp add fermi --transport http https://<your-worker>.workers.dev/mcp.
  • Cursor / VS Code — same URL in the MCP settings pane.
  • ChatGPT — chatgpt.com/plugins → "+" → New Plugin → name + your /mcp URL (auth: OAuth, or None on a trusted deployment). The normal tool surface works; risk: high approval-gated tools (like execute) don't fit ChatGPT's one-shot tool model — see Harness dependence.

What success looks like

  • [ ] curl https://<your-worker>.workers.dev/health returns 200
  • [ ] Your host lists ~60 mcp__fermi tools
  • [ ] memory_write in one host, memory_recall finds it in another
  • [ ] skill_search returns the five seed skills (POST /admin/seed-skills with your bearer token if empty)

If setup does not work

SymptomCauseFix
bootstrap.sh fails creating resourceswrangler not logged in / free planbunx wrangler login; upgrade to Workers Paid
Host connects but sees 0 toolsHit /sse with a streamable-HTTP client or vice versaUse /mcp for modern hosts; /sse is legacy
OAuth consent loopsFERMI_OWNER_SECRET unset while FERMI_AUTH_ENABLED=trueSet the secret, redeploy
Typecheck fails on a fresh cloneYou regenerated the lockfileKeep the committed bun.lock; two MCP-SDK majors otherwise coexist and clash

Next: Setup tiers to decide how much more of the system you want.

MIT licensed. Built for people who want to own their agent.