Context
Enables the MCP server to use Backblaze B2 as a storage backend for managing Markdown notes, folders, and privacy settings, with data stored in the user's own B2 bucket.
Enables the MCP server to use Cloudflare R2 as a storage backend for managing Markdown notes, folders, and privacy settings, with data stored in the user's own R2 bucket.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ContextSave these notes to my projects folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Context
Free your context. Share your context.
Your context is the durable layer. AI clients are replaceable interfaces.
Every context is a workspace. Your own is one per person, addressed by your name; others are shared, with several members. Your workspace, the ones people share with you, and the ones you belong to are, together, your context.
Context gives you one MCP endpoint you add everywhere — ChatGPT, Claude, Codex, Notion AI, whatever comes next — so every tool starts already knowing your projects, decisions, and history. You stop re-teaching each new assistant from scratch.
The deal
You keep your data. Connect Dropbox in one click, or bring a bucket you own outright — Cloudflare R2, AWS S3, Backblaze B2, or any S3-compatible storage. Either way, your notes stay plain Markdown in a storage account you control. Disconnect Context and every file is still there, still readable, still yours.
That's not a feature we might remove later. It's the architecture:
Plain files are canonical. Markdown you can open in Obsidian, grep, or
rcloneout. Never a proprietary database that becomes the only copy.Your storage keeps its native shape. In Dropbox, your workspace is an ordinary folder. In object storage, tenancy is bucket-level: we never rewrite your keys or namespace your paths. An existing one connects without a migration.
The gateway is portable.
apps/mcpis a self-contained Cloudflare Worker. If Context.LC disappears tomorrow, deploy it yourself and your bucket keeps working.Indexes are disposable. Search caches and embeddings are derivatives that can be rebuilt from the files. The files are the truth.
Related MCP server: S3 MCP Server
How it works
Your AI clients Context.LC Your storage
┌────────────────────┐ ┌──────────────────────┐ ┌────────────────────┐
│ ChatGPT │ │ Control plane │ │ R2 / S3 / B2 │
│ Claude │─────▶│ (Convex) │ │ │
│ Codex │ MCP │ accounts, │ │ 0-inbox/ │
│ Notion AI │ over │ workspaces, │ │ 1-projects/ │
│ … │ OAuth│ OAuth grants, │ │ 2-areas/ │
└────────────────────┘ │ storage bindings │ │ 3-resources/ │
├──────────────────────┤ │ 4-archive/ │
│ MCP gateway │─────▶│ index.md │
│ (Cloudflare Worker) │OAuth │ privacy.md │
└──────────────────────┘/keys │ .context/ │
└────────────────────┘
control plane holds metadata only — never your notes, never a second copyTwo planes, and the split is the whole point. The control plane knows who you are, which storage is yours, and which AI clients you've authorized. The data plane is your Dropbox folder or bucket. Delete your Context account and the control plane forgets you; the data plane is untouched.
Structure your context however you like
We suggest PARA and will scaffold it for you on setup:
Folder | Holds |
| raw captures, unfiled |
| active work with an end state |
| ongoing responsibilities |
| reference material |
| anything no longer active |
It's a suggestion, not a schema. Bring your own structure and Context works the same — the tools operate on paths, not on a fixed taxonomy.
Context-owned data is kept under one reserved tree so the bucket root stays human-readable:
.context/
├── manifest.json
├── access/note-acl/
├── assets/images/
├── audit/
├── history/
├── integrations/granola/events/
├── meetings/sessions/
├── migrations/
├── probes/
├── proposals/
└── search/Buckets created before storage-layout v1 continue to work through dual reads;
the owner-only migrate_storage_layout tool copies and verifies legacy objects,
keeps them for a seven-day rollback window, and removes them only in a separate
explicit cleanup phase.
index.md — the front page every agent reads
Every connected client is told to call one tool first, orient. It is cheap on
purpose: your front page, what you touched most recently, and a map of your
folders with note counts. It is the difference between an AI client that knows
you already have a project on this and one that asks you to explain yourself
again.
That instruction lives in the connection, though, not in the client — a fresh chat can still forget to act on it. To make it permanent, paste this into the client's own custom instructions, system prompt, or rules file (the connect screen shows you exactly where, per client):
Always orient using the Context MCP (call
orient) before answering anything about me or my work, and save what you learn withsave_contextbefore you finish.
Most of what orient returns is derived from the bucket and rebuilt on every
call. One part is not: index.md, an ordinary Markdown file at the root of your
bucket that you own. Setting up a new workspace writes a starting one describing
the conventions; what makes it earn its place is the part only you can write.
# Context
Building the gateway; consulting on the side. Mornings are for deep work.
## Now
- 1-projects/gateway — shipping the MCP server. Decisions in decisions.md.
- 1-projects/acme — client work, weekly check-in Thursdays.
## Where things go
- Anything a client said → 1-projects/<client>/notes.md
- Reusable how-to → 3-resources/
- Mail I send myself lands in 0-inbox/ and I file it on Fridays.Nothing about the format is enforced. Edit it in Obsidian, in your editor, or
ask an agent to bring it up to date — it is a note like any other, so it obeys
the same privacy rules, keeps the same history, and travels with the bucket.
Agents are told to add to it rather than replace it, and to say what they are
changing first. Owners can add an index-private.md beside it for anything that
should only reach a personal connection.
Connecting a bucket that already has months of notes in it never overwrites
anything, so an imported workspace may have no index.md at all. orient then
says so and tells the agent what it's for, which is usually enough to get one
written.
Sessions save themselves
orient gets an agent to read your context. The other half is getting what it
learned back in, and the honest position is that agents forget: a long session
ends, and the decision worth keeping was never written down.
Two answers, and you want both:
save_context, a tool the agent calls when it finishes. What it does is yours to define — put a## Save contextsection in yourindex.mdwith adestination:line and whatever procedure you want followed, andorienthands it to every agent that connects.A session-end hook, for when the agent does not call it:
npx -y @supa-media/context-hook installSigns you in once and adds a
SessionEndhook to Claude Code. From then on a session's user-visible messages land in0-inbox/on their own. It asks for capture access only — it can add to your inbox and cannot read a single note — and it shows up in Connections like any other client, revocable on its own. Seepackages/hook.
Privacy tiers
Every note is private or team. Folder defaults live in a privacy.md
manifest at the root of your bucket — visible to you in Obsidian, enforced
server-side before any content is returned. Exact notes can override their
folder in either direction.
team means people you've named, never the public internet. There is no
anonymous tier.
Repository layout
Path | What it is |
| Control plane — accounts, workspaces, storage bindings, grants |
| Expo app (iOS, Android, web) — onboarding and dashboard |
| The MCP gateway Worker — tools, privacy engine, storage adapter |
| Types and constants shared across apps |
|
|
Development
Production monitoring, privacy rules, release verification, and the incident runbook live in docs/observability.md.
pnpm install
npx convex dev # creates your Convex deployment
pnpm dev # Convex + Expo together
cd apps/mcp && pnpm test # 442 checks, no dependencies, no networkBuilt on supa-framework.
This server cannot be deployed
Maintenance
Related MCP Connectors
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Personal context for every AI: search, read, and write back to your private Markdown library.
Portable AI memory shared across models and harnesses - plain markdown you own.
Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI models to interact with Akave's S3-compatible storage by providing tools for managing storage buckets and objects through standardized Model Context Protocol (MCP).1310 npm3-
- AlicenseAqualityDmaintenanceEnables interaction with S3-compatible storage services like AWS S3 and Cloudflare R2, supporting bucket management, object listing, reading, uploading, and deletion operations.5199 npmISC
- AlicenseNot gradedqualityDmaintenanceIt Integration for MinIO / S3-compatible object storage, providing AI assistants with direct access to bucket management, object CRUD, presigned URLs, policies, lifecycle rules, and storage analytics.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to securely read and write to an Obsidian-compatible Markdown vault with per-agent access control, audit logging, and conflict resolution.Apache 2.0