这个项目能做什么

Context (supa-media/context) 是一个 MCP 网关,为 AI 客户端(如 ChatGPT、Claude、Codex、Notion AI 等)提供单一端点,使其能够读写个人知识库。该知识库为存储在用户控制的账户(Dropbox、Cloudflare R2、AWS S3、Backblaze B2 或任何 S3 兼容存储)中的纯 Markdown 文件。 README 描述了三个相关单元:**brain**(以用户姓名命名的个人上下文)、**workspace**(与他人共享的上下文)以及 **context**(由你的 brain、他人与你共享的 brain 以及你的 workspace 组成)。连接单一端点的目的是为了避免每个新助手都需要重新学习你的项目、决策和历史记录。 ## 两个平面 该设计将控制平面与数据平面分离,README 将此拆分视为项目的核心。 - **控制平面** (`apps/convex`) —— 处理账户、工作区、OAuth 授权和存储绑定。据称仅持有元数据:不存储笔记,也没有第二份副本。 - **数据平面** —— 用户的 Dropbox 文件夹或对象存储存储桶。删除 Context 账户会清除控制平面,而数据平面保持不变。 MCP 网关 (`apps/mcp`) 被描述为一个自包含的 Cloudflare Worker,如果托管服务消失,用户可以自行部署,且存储桶将继续工作。 ## 存储与可移植性主张 - 纯文件是权威的:Markdown 可在 Obsidian 中读取,支持 greppable,或使用 `rclone` 移除;没有将专有数据库作为唯一副本。 - 存储保持其原生形态 —— Dropbox 中的普通文件夹,或对象存储中的存储桶级租户,无需重写键或命名空间路径。现有 brain 据称无需迁移即可连接。 - 索引(搜索缓存、嵌入)被描述为可丢弃的衍生品,可从文件中重建。 ## 工具与约定 **`orient`** 是建议连接客户端首先调用的工具。它返回首页、最近修改的笔记以及带有笔记计数的文件夹映射。其大部分输出源自存储桶并在每次调用时重建。README 指出,此指令存在于连接中而非客户端中,因此建议使用客户端自定义指令、系统提示词或规则文件使其持久化。 **`index.md`** 是存储桶根目录下由用户拥有的普通 Markdown 文件。设置过程会写入初始版本;代理被告知应在其中添加内容而非替换,且应先陈述更改。可选的 `index-private.md` 可与其并列,用于仅面向个人连接的内容。连接已包含笔记的存储桶不会覆盖任何内容,因此导入的 brain 可能没有 `index.md`,此时 `orient` 会予以提示。 **`save_context`** 是代理在会话结束时调用的工具。其行为由用户通过 `index.md` 中的 `## Save context` 部分定义,包含 `destination:` 行及用户希望遵循的任何流程。 **会话结束钩子 (Session-end hook)** —— 通过 `npx -y @supa-media/context-hook install` 进行一次性登录,并为 Claude Code 添加 `SessionEnd` 钩子,使会话中用户可见的消息自动进入 `0-inbox/`。README 表示它仅请求捕获权限,无法读取笔记,显示在 Connections 中且可单独撤销。源码位于 `packages/hook`。 ## 组织结构 设置过程会搭建一个 PARA 风格的结构 —— `0-inbox/`、`1-projects/`、`2-areas/`、`3-resources/`、`4-archive/` —— 这被视为建议而非强制模式。工具基于路径操作,因此用户自定义的结构同样适用。 ## 隐私 每篇笔记被标记为 `private`(私有)或 `team`(团队)。文件夹默认值在存储桶根目录的 `privacy.md` 清单中声明,对所有者可见并在服务器端返回内容前强制执行,单个笔记可以向任何方向覆盖其文件夹设置。`team` 定义为具名人员,绝非公开互联网;不存在匿名层级。 ## 仓库布局 | 路径 | 用途 | | --- | --- | | `apps/convex/` | 控制平面 —— 账户、工作区、存储绑定、授权 | | `apps/mobile/` | Expo 应用 (iOS, Android, web) —— 入职引导和仪表盘 | | `apps/mcp/` | MCP 网关 Worker —— 工具、隐私引擎、存储适配器 | | `packages/shared/` | 各应用间共享的类型和常量 | | `packages/hook/` | 可通过 `npx` 安装的会话结束钩子 | ## 开发 ```sh pnpm install npx convex dev # 创建你的 Convex 部署 pnpm dev # 同时运行 Convex + Expo cd apps/mcp && pnpm test # README 提到有 442 项检查,无依赖,无网络 ``` 该项目据称构建在 supa-framework 之上。