bee-ai-auth-mcp

Self-host · MIT · Phase 2 — read surface merged

Your Bee pendant remembers everything. This lets Claude read it — from your phone.

Bee's official connector runs only on a computer you leave on. This is a small Cloudflare Worker you host yourself — you sign in with GitHub, and your Bee token is captured when you connect and stays encrypted inside your deployment — held by no third party.

The two-leg wire — both legs live

You + your MCP client
Claude on web, iOS, iPadOS, Cowork
Live GitHub OAuth — proves you own this instance
Your Worker (the relay)
Holds your Bee token only in your encrypted grant
Live your Bee token → Bee's API, through a private-CA bridge
Bee API
Read-only — your captured conversations

The gap

Your memory is trapped on a desktop.

Bee ships an MCP server, but it speaks only over local stdio on 127.0.0.1 — so it never reaches Claude on your phone, your iPad, or the web. The pendant captures your life all day; the one place you actually want to ask about it can't get in.

bee-ai-auth-mcp closes that transport gap. It's a hosted-but-self-hosted relay: a remote MCP connector any agent can reach over the network, with a real OAuth front door so only you can use your instance. See how it's built →

How it works

Two legs of trust, kept separate.

One leg authenticates you to your relay. The other carries your Bee credential to Bee. They never mix, and the relay never collects anyone else's token.

1

You connect with GitHub

A standard OAuth redirect proves you're an allowed operator of this instance. Identity only — no repository access, no data read. Logins outside your allow-list are refused.

2

You paste your Bee token once, at connect

It's captured at a consent step and held only inside your own encrypted grant — never a shared Worker secret, never shown to the AI client, never logged. The relay custodies no credential but your own.

3

Claude calls read-only tools

Your MCP client reaches tools that proxy Bee's API through a private-CA bridge. It ships whoami (identity check) plus the Phase-2 read surface — bee_docs and bee_read (read-only retrieval) — merged to main, phone validation pending.

What's true today

Phase 2: the read surface is in.

This project tells you exactly what works and what doesn't — no demo that quietly fakes a working pendant.

Live now
The whole path: GitHub identity gate → your Bee token captured at consent into an encrypted grant → a private-CA Container bridge → Bee. whoami returns your Bee identity over the live connector, validated on mobile.
Later, eyes-open
A hosted multi-tenant option, deferred on purpose. Why →

Why self-host

No central pile of keys to lose.

A hosted store of everyone's tokens

  • Holds long-lived credentials for many people at once
  • One breach exposes every connected account
  • Someone must harden, rotate, and watch it forever
  • Only safe once the upstream issues short-lived keys

Self-host — what this is

  • Your Bee token lives only in your own encrypted grant, nowhere central
  • The blast radius is exactly one person: you
  • No trust required in an operator you've never met
  • Revoke any time: disconnect deletes the copy; re-pair in the Bee app

Read the full security model →

Run your own

Self-host in a few steps.

You'll need a Cloudflare account (Workers Paid, for the bridge container), a GitHub OAuth App, and a Bee token. The short version: create a KV namespace, register a GitHub OAuth App pointed at your /callback, set your GitHub secrets and your allow-list, push to deploy, then connect it in Claude and paste your Bee token at the consent screen.