About this project
Context (supa-media/context) is an MCP gateway that gives AI clients — ChatGPT, Claude, Codex, Notion AI and others — a single endpoint through which they can read and write a personal knowledge base. The knowledge base is plain Markdown stored in an account the user controls: Dropbox, Cloudflare R2, AWS S3, Backblaze B2, or any S3-compatible storage.
The README describes three related units: a **brain** (personal context addressed by your name), a **workspace** (context shared with others), and **context** as the union of your brain, the brains shared with you, and your workspaces. Connecting one endpoint is meant to spare each new assistant from being re-taught your projects, decisions and history.
## Two planes
The design separates a control plane from a data plane, and the README treats that split as the core of the project.
- **Control plane** (`apps/convex`) — accounts, workspaces, OAuth grants and storage bindings. It is stated to hold metadata only: no notes, no second copy.
- **Data plane** — the user's Dropbox folder or object-storage bucket. Deleting the Context account clears the control plane while the data plane is left untouched.
The MCP gateway (`apps/mcp`) is described as a self-contained Cloudflare Worker that can be deployed by the user if the hosted service disappears, with the bucket continuing to work.
## Storage and portability claims
- Plain files are canonical: Markdown readable in Obsidian, greppable, or removable with `rclone`; no proprietary database as sole copy.
- Storage keeps its native shape — an ordinary folder in Dropbox, bucket-level tenancy in object storage, without rewriting keys or namespacing paths. An existing brain is said to connect without migration.
- Indexes (search caches, embeddings) are described as disposable derivatives rebuildable from the files.
## Tools and conventions
**`orient`** is the first tool connected clients are told to call. It returns the front page, recently touched notes, and a map of folders with note counts. Most of its output is derived from the bucket and rebuilt on each call. The README notes that this instruction lives in the connection rather than the client, so a client-side custom instruction, system prompt or rules file is suggested to make it persistent.
**`index.md`** is an ordinary Markdown file at the bucket root, owned by the user. Setup writes a starting version; agents are told to add to it rather than replace it and to state changes first. An optional `index-private.md` can sit beside it for content intended only for a personal connection. Connecting a bucket that already holds notes does not overwrite anything, so an imported brain may have no `index.md` and `orient` will say so.
**`save_context`** is an agent-called tool at session end. Its behaviour is user-defined through a `## Save context` section in `index.md` with a `destination:` line and any procedure the user wants followed.
**Session-end hook** — `npx -y @supa-media/context-hook install` signs in once and adds a `SessionEnd` hook to Claude Code so a session's user-visible messages land in `0-inbox/` automatically. The README says it requests capture access only, cannot read notes, appears in Connections and is separately revocable. Source is in `packages/hook`.
## Organization
Setup scaffolds a PARA-style structure — `0-inbox/`, `1-projects/`, `2-areas/`, `3-resources/`, `4-archive/` — presented as a suggestion rather than a schema. Tools operate on paths, so a user-supplied structure is said to work the same way.
## Privacy
Every note is `private` or `team`. Folder defaults are declared in a `privacy.md` manifest at the bucket root, visible to the owner and enforced server-side before content is returned, with individual notes able to override their folder in either direction. `team` is defined as named people, never the public internet; there is no anonymous tier.
## Repository layout
| Path | Purpose |
| --- | --- |
| `apps/convex/` | Control plane — accounts, workspaces, storage bindings, grants |
| `apps/mobile/` | Expo app (iOS, Android, web) — onboarding and dashboard |
| `apps/mcp/` | MCP gateway Worker — tools, privacy engine, storage adapter |
| `packages/shared/` | Types and constants shared across apps |
| `packages/hook/` | The `npx`-installable session-end hook |
## Development
```sh
pnpm install
npx convex dev # creates your Convex deployment
pnpm dev # Convex + Expo together
cd apps/mcp && pnpm test # README cites 442 checks, no dependencies, no network
```
The project is stated to be built on supa-framework.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.