Second Brain on Cloudflare Workers: One MCP Memory Layer for Claude, ChatGPT and Cursor
One memory layer, every AI tool. Store anything once — recall it in Claude, ChatGPT, Cursor, or any MCP client. Self-hosted on Cloudflare's free tier.
At a glance
- What is it?
- A self-hosted memory Worker backed by D1, Vectorize, Workers AI and KV, with a Personal and Shared layer and a desktop installer. The design is sound, but the README leaves deployment, pricing limits and the Vectorize fallback underspecified.
- Who is it for?
- Adopt it if you already run your AI work through several MCP clients and want one memory store inside your own Cloudflare account, or if a small team wants a Shared layer with per-author edit rights. Do not adopt it if you need multiple shared teams today, if you want the desktop installer to configure everything for you without inspecting the Worker, or if you cannot accept that semantic recall degrades to keyword search when Vectorize is unavailable.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The context duplication problem this Worker is built to remove
Claude, ChatGPT, Cursor and Codex each keep their own context. The README states the consequence plainly: you end up repeating the same projects, decisions and preferences in every app. Second Brain answers that with a single Cloudflare Worker that all of those clients talk to, so there is nothing to copy or synchronise between tools. It is aimed at people who already use more than one MCP-compatible client and are tired of re-explaining themselves, and at small teams that want a shared layer without giving up a private one. The Team Edition adds a Personal workspace that nobody else can read plus a Shared layer visible to the team. Memories are private by default and enter the Shared layer only when someone deliberately shares them. That default matters more than the feature list: a memory system that leaks by accident is worse than no memory system.
Capture, organise, recall: the three-stage pipeline behind the Worker
The architecture is a Cloudflare Worker backed by D1, Vectorize, Workers AI and KV, exposed over REST and the Model Context Protocol. The README describes three stages. Capture saves a decision, preference, project update, note or source from any connected client. Organise classifies it, checks for duplicates and contradictions, creates relationships and indexes it for semantic search. Recall takes a natural-language question, retrieves relevant memories, follows connections and returns source-backed context to whichever tool asked. The tool surface is explicit: remember, append, update, recall, list_recent, get, forget, set_status, link, unlink, connections and share. On a team brain these accept a workspace of personal or company, where company is the wire value for the Shared layer. Without a workspace argument, captures use the member and team defaults while recall searches everything that person is allowed to see. Sharing moves one canonical memory rather than copying it, the author stays visible, and only the author or an admin can edit, delete or un-share it.
The Vectorize failure mode and what still works without it
This is the most useful paragraph in the README and the one most likely to be missed. If Vectorize is unavailable, captures and keyword recall continue working, and memories remain usable while semantic indexing is restored. So the system degrades rather than stops. The documentation also notes that keyword recall handles Japanese, Chinese and other scripts written without spaces, and full-width text, while the shipped embedding models read English best. The desktop app's Settings can switch a brain to what the README calls a multilingual reading. Read those two statements together and the practical shape is clear: search quality is model-dependent, and the fallback path is the one that covers non-English text well. Anyone storing mostly non-English memories should treat the embedding model choice as a first-class decision, not a setting to leave alone.
Getting it running: the installer path and the CLI path
There are two entry points. The desktop app is described as the easiest way to start, building the brain and connecting AI tools in about two minutes with no terminal or Cloudflare setup required, with downloads for Mac and Windows under releases/latest. The manual path is the Deploy to Cloudflare button, which points at the repository URL and provisions the Worker in your own account. The README does not list the binding names, D1 schema, or the Vectorize index configuration in the material available here, so treat the Worker's own configuration files as the source of truth once you clone it. What the README does give is the CLI shape, and it is short enough to quote directly: brain remember --workspace company "We ship on Thursdays" followed by brain recall --workspace company "when do we ship?". That pair is the whole mental model. Write with an optional workspace, read with the same optional workspace, and the Worker decides what you are permitted to see.
One shared team per brain, and the forward-compatibility tax
The v3.0.0 scope statement is unusually candid: each brain has one shared team. The API and MCP layer already include optional team parameters and a list_teams tool so multi-team support can ship later without breaking changes, but the dashboard and admin flows do not create or switch between multiple teams yet. In practice you can omit those parameters entirely, because the primary team is used automatically. This is a deliberate trade: the wire format is frozen ahead of the feature, which means early adopters carry a small amount of unused surface area in exchange for not having to migrate later. If your organisation needs two or more distinct shared layers today, this release is the wrong tool. The README says so itself rather than leaving it to be discovered.
Prompt Capsules and the gateway use case
Prompt Capsules are described as deterministic, read-only projections for gateways and custom agents that can place stable context before a changing user prompt. The get_prompt_capsule tool reads either a core or a project context projection, and the README frames it as a gateway-controlled prompt prefix. Determinism is the point: a gateway that injects context before every request needs the same input to produce the same prefix, otherwise prompt caching and diffing break. The material provided cuts off mid-sentence in this section, so the exact projection rules, size limits and which memories qualify for a capsule cannot be confirmed from what is available. Anyone building a gateway integration should read the wiki page rather than infer behaviour from the tool name.
Where this sits against a local-first notes store like Obsidian
The obvious alternative for personal knowledge management is a local-first tool such as Obsidian, and the difference in approach is not cosmetic. A local vault keeps files on your disk, and retrieval is whatever the vault's own search and plugins provide; nothing is reachable from ChatGPT or Cursor unless you build the bridge. Second Brain inverts that. The memory lives in Cloudflare's infrastructure under your account, and the value comes precisely from every MCP client being able to reach it. The cost is that recall depends on a hosted service, an embedding model and a network round trip. The repository ships an Obsidian plugin as one of the capture sources, which suggests the maintainer sees the two as complementary rather than competing. If you want your notes to remain plain files on disk that outlive any vendor, the local vault is the safer default. If you want the same context available inside five different AI tools, the Worker is the only one of the two that does that.
Licence, maintenance and what the release cadence tells you
The project is MIT licensed, which permits commercial use and modification provided the copyright notice and permission notice are retained. That is a permissive licence, and it does not obligate the maintainer to support you or to keep the hosted deploy path working. The release history shows three installer releases in roughly two weeks: 1.4.1 on 2026-08-23, 3.0.0 on 2026-09-06 and 3.1.0 on 2026-09-07. A jump from 1.4.1 to 3.0.0 in that window, followed by a patch the next day, indicates a fast-moving surface where the desktop app and the Worker are versioned separately. The README also notes that existing v2 memories become the owner's private memories during upgrade and nothing is exposed to a team automatically, which is the right default for a migration that touches personal data. Budget for upgrade work rather than assuming the installer handles every schema change silently. This is not legal advice; check the LICENSE file and your own obligations before shipping anything built on it.
Editorial conclusion
Adopt it if you already run your AI work through several MCP clients and want one memory store inside your own Cloudflare account, or if a small team wants a Shared layer with per-author edit rights. Do not adopt it if you need multiple shared teams today, if you want the desktop installer to configure everything for you without inspecting the Worker, or if you cannot accept that semantic recall degrades to keyword search when Vectorize is unavailable. Before committing, verify three things yourself: the current Cloudflare free tier limits for D1, Vectorize, Workers AI and KV against your expected capture volume; the exact embedding model and language coverage of the brain you deploy; and the team setup steps in the wiki, since the README points to a Team Setup guide rather than describing member management inline.
Community notes