Context Mode 是一个开源的 MCP 服务器插件,通过沙盒化执行、基于 FTS5 的知识库和会话持久化三大机制,系统性解决 AI 编程助手的上下文窗口爆炸问题。它能将原始数据(如文件内容、日志、网页快照)拦截在上下文窗口之外,仅让精简结果进入对话,官方数据表明可将 315 KB 的输出压缩至 5.4 KB,实现高达 98% 的上下文节省。目前支持包括 Claude Code、Gemini CLI、Cursor、VS Code Copilot 在内的 15 个平台,拥有超过 57,000 名用户。
Context Mode 全面解析:如何用 MCP 服务器将 AI 编码助手的上下文窗口占用降低 98%
当你使用 AI 编码助手(如 Claude Code 或 Cursor)进行长时间开发时,是否遇到过这样的情况:让助手读取一堆文件、分析日志、查看 GitHub Issue 后,不久后它就“忘记”了之前的任务进度和关键决策?这背后的元凶是有限的 上下文窗口。
每一次 MCP 工具调用都会将原始数据塞进对话。一份 Playwright 快照可能占用 56 KB,20 条 GitHub Issue 占用 59 KB,一份访问日志则有 45 KB。半小时的会话就可能消耗掉 40% 的上下文空间。当助手为了腾出空间而压缩对话时,它就会丢失你正在编辑的文件、进行到一半的任务和最后的指令。
Context Mode 就是为了解决这个问题而生的。它不是一个简单的提示词优化工具,而是一个在 模型上下文协议(MCP) 层工作的服务器插件,从数据源头进行拦截和优化。
Context Mode 是什么?
Context Mode 是一个 MCP 服务器插件。你可以把它理解为一个运行在本地的“数据管家”,它坐在你的 AI 编码助手和原始数据之间。它的核心任务是:拦截会产生大量数据输出的工具调用(如文件读取、网页抓取、命令执行),将数据处理过程放在独立的沙盒中完成,只将最精炼、最关键的结果返回给 AI 的上下文窗口。
根据官方数据,通过这种方式,原本需要占用 315 KB 上下文的数据,最终进入对话的可能只有 5.4 KB,节省率高达 98%。
它如何工作?四大支柱
Context Mode 通过一套组合拳来系统性地解决上下文管理难题。
1. 沙盒执行:只让结果进入上下文
这是最核心的节省机制。与其让 AI 直接读取一个巨大的日志文件,不如让它编写一个脚本,在沙盒中执行并只输出关键摘要。
例如,AI 不会调用 47 次 Read() 工具(消耗约 700 KB 上下文),而是调用一次 ctx_execute:
ctx_execute("javascript", `
const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
files.forEach(f => console.log(f + ': ' +
fs.readFileSync('src/'+f,'utf8').split('\\n').length + ' lines'));
`);
这个过程在独立的子进程中运行,只有 console.log() 的标准输出(可能只有 3.6 KB)会进入对话。原始数据永远留在沙盒里。这个引擎支持 Node.js、Python、Go、Rust 等 11 种编程语言。
2. 会话连续性:SQLite 记住一切
即使上下文被压缩,任务也不能中断。Context Mode 会将每一次文件编辑、Git 操作、用户指令和错误信息都记录到本地的 SQLite 数据库中。
当对话被压缩时,它不会把海量原始记录塞回上下文,而是利用 FTS5 全文索引 和 BM25 排名算法 进行智能检索,只把与当前任务最相关的历史事件(例如“用户刚刚决定使用 React Router v6”)提取出来,通过 SessionStart 钩子注入给模型。这样,助手就能无缝衔接之前的工作。
3. 用代码思考:替代重复的工具调用
这个理念是让 AI 从“数据搬运工”转变为“程序员”。面对复杂的数据分析需求,AI 应该写一个脚本来完成,而不是通过多次工具调用把数据读进上下文。
一个脚本可以替代十次甚至几十次工具调用,将上下文消耗降低 10-100 倍。这是 Context Mode 在所有 15 个支持平台上强制推行的核心范式。
4. 不强制输出风格:只管数据,不管表达
与某些工具强制 AI 使用简洁风格不同,Context Mode 只专注于管理数据流向。它不会干预 AI 最终回答的格式、详细程度或语气。输出风格的控制权完全留给用户(通过自己的 CLAUDE.md 或 AGENTS.md 文件)或模型本身。项目认为,强制性的简洁提示可能会损害编码和推理能力。
广泛的平台支持
Context Mode 已经适配了 15 个主流的 AI 编码平台,包括:
- Claude Code
- Gemini CLI
- Cursor
- VS Code Copilot
- JetBrains Copilot
- OpenCode
- Codex CLI
- 以及更多。
不同平台因其架构差异,集成方式和功能完整度略有不同。例如,Claude Code 可以通过插件市场一键安装,并自动注册所有钩子;而 Cursor 和 Codex CLI 则需要手动配置一些钩子文件。但无论哪个平台,其核心的 沙盒执行 和 FTS5 知识库 功能都可以工作。
谁在使用它?
该项目在 Hacker News 上获得过第一名(570+ 点),并被 Microsoft、Google、Meta、Amazon、ByteDance、Stripe 等多家公司的开发团队采用。截至撰写时,已有超过 57,000 名用户。
深入了解更多
本文提供了 Context Mode 的概览。如果你想深入了解其特定方面,可以参考以下系列文章:
- 安装与配置:需要为你的特定平台(如 Cursor 或 Gemini CLI)进行安装?请查看 安装与配置完全指南。
- 技术架构:想了解沙盒执行引擎、FTS5 知识库和钩子路由系统是如何协同工作的?请阅读 架构深度剖析。
- 高级用法:想要掌握
ctx_execute和ctx_search的最佳实践与反模式?请参阅 使用最佳实践。
FAQ
Q: Context Mode 和 Cursor 自带的代码索引/RAG 功能有什么区别? A: 两者解决的问题层面不同。Cursor 的 RAG 主要解决“如何给模型检索相关代码片段”的问题,优化的是输入质量。Context Mode 解决的是“如何不让对话上下文被撑爆”的问题,它在 MCP 协议层拦截数据,优化的是输入的数据量。两者可以同时使用,互不冲突。
Q: 使用 Context Mode 会泄露我的代码或数据吗?
A: 不会。Context Mode 是 100% 本地运行 的,零遥测。所有的会话数据和知识库都存储在本地的 SQLite 数据库中(例如 ~/.claude/context-mode/sessions/),不会上传到任何云端服务器。
Q: 安装后会增加明显的性能开销吗? A: MCP 服务器本身的开销很小。钩子拦截会增加几十毫秒的延迟,但这个微小的开销与它所节省的上下文空间、避免的重复解释和提升的任务连续性相比,是完全值得的。
本系列文章
项目总览、README 和入门文档
核心架构:MCP 服务器、沙箱执行器、FTS5 知识库、安全层
- Context Mode 架构深度剖析:MCP 服务器、沙箱执行引擎与 FTS5 知识库的工作原理
- Context Mode 的 FTS5 搜索引擎:BM25 排名、Markdown 分块策略与模糊纠正的实现细节
- Context Mode 的安全防线:命令拒绝策略、文件路径评估与 Shell 注入检测
跨平台适配器系统:15 个 AI 编码平台的统一抽象
- Context Mode 适配器系统全解:如何为 15 个 AI 编码平台实现统一的 Hook 拦截与路由
- Context Mode 平台检测机制:从环境变量到 MCP clientInfo 的多级优先级解析
- Cursor 适配器实现细节:Native Hook 格式、Stop 事件与 Plugin 检测
会话连续性:SQLite DB、事件提取、快照恢复与统计分析
- Context Mode 会话连续性系统:SQLite 持久化、事件提取与跨压缩恢复的工作原理
- Context Mode 的事件提取引擎:跨语言、跨工具的会话事件捕获与分类
- Context Mode 的多适配器统计聚合:跨平台生命周期数据的收集与展示
Hook 路由系统:PreToolUse 拦截、指导节流与安全策略执行
开发工作流:TDD 纪律、Agent 团队编排与发布流程
- Context Mode 的工程实践:并行 Agent 团队编排、TDD 纪律与 Grill-Me 发布审查
- Context Mode 的反幻觉机制:平台行为验证、refs/ 证据库与 Fan-out Claim Verification