目录

Context Mode:解决AI编程Agent上下文危机的MCP服务器

Context Mode:解决AI编程Agent上下文危机的MCP服务器

📋 学习目标

  • 理解Context Mode解决的核心问题——AI编程工具的上下文窗口危机
  • 掌握6个核心工具的工作原理和使用场景
  • 理解FTS5+BM25知识库如何实现会话连续性
  • 学会在不同平台(Claude Code/Gemini/Cursor等)上安装和配置Context Mode
  • 掌握Think in Code范式——让AI写代码计算,而非读取数据

📖 项目概述

什么是Context Mode

Context Mode是一个MCP服务器,专门解决AI编程工具的上下文窗口危机

核心洞察:

每一次MCP工具调用都会向上下文窗口倾倒原始数据。一个Playwright快照消耗56KB。30分钟后,40%的上下文空间消失了。当Agent压缩对话时,它会忘记正在编辑的文件、进行中的任务、上一次的要求。

三大核心能力

能力说明效果
Context Saving沙箱工具保持原始数据不入上下文315KB → 5.4KB,节省98%
Session ContinuitySQLite FTS5知识库追踪文件编辑、任务、错误对话压缩后完美恢复
Think in CodeLLM生成计算脚本,而非读取数据100倍上下文节省

核心数据

指标数值
GitHub Stars7.1k
Forks483
Watch48
贡献者34人
最新版本v1.0.75 (2026-04-06)
许可证Elastic License 2.0 (ELv2)
语言TypeScript 49.4%, JavaScript 46.1%

🛠️ 6个核心工具

工具一览

工具功能上下文节省
ctx_batch_execute一次调用执行多条命令+搜索986KB → 62KB
ctx_execute在11种语言中运行代码,仅stdout进入上下文56KB → 299B
ctx_execute_file在沙箱中处理文件,原始内容永不离开45KB → 155B
ctx_index将markdown分块存入FTS5,BM25排序60KB → 40B
ctx_search多查询一次调用搜索索引内容按需检索
ctx_fetch_and_index获取URL,转换HTML为markdown,分块索引60KB → 40B

实用命令

命令功能
ctx_stats显示上下文节省、调用次数、会话统计
ctx_doctor诊断安装:运行时、钩子、FTS5、版本
ctx_upgrade从GitHub升级,重建,重配钩子
ctx_purge永久删除知识库中的所有索引内容

🏗️ 沙箱执行原理

工作流程

用户请求
    ↓
ctx_execute 调用
    ↓
隔离子进程启动(独立进程边界)
    ↓
脚本在沙箱中运行
    ↓
仅 stdout 进入上下文
    ↓
原始数据(日志、API响应、快照)永不离开沙箱

支持的运行时

11种语言运行时:JavaScript, TypeScript, Python, Shell, Ruby, Go, Rust, PHP, Perl, R, Elixir

Bun自动检测:JS/TS执行速度提升3-5倍

智能过滤

当输出超过5KB且提供了intent时:

  1. 将完整输出索引到知识库
  2. 搜索与intent匹配的部分
  3. 仅返回相关匹配+可搜索词汇

📚 知识库工作原理

SQLite FTS5架构

ctx_index 工具
    ↓
按标题分块markdown(代码块保持完整)
    ↓
存储到 SQLite FTS5 表
    ↓
BM25排序算法评分

检索策略: Reciprocal Rank Fusion (RRF)

两种并行策略融合:

策略说明
Porter词干FTS5 MATCH + porter分词器。“caching"匹配"cached”, “caches”, “cach”
Trigram子串FTS5 trigram分词器。“useEff"找到"useEffect”

高级特性

特性说明
Proximity Reranking查询词越近的结果排名越高
Fuzzy CorrectionLevenshtein距离纠错。“kuberntes” → “kubernetes”
Smart Snippets智能提取而非截断
TTL Cache24小时TTL,14天清理

🔄 会话连续性

四大钩子协同

钩子功能Claude CodeGemini CLIVS Code CopilotCursorOpenCodeOpenClaw
PreToolUse工具执行前强制沙箱路由Plugin
PostToolUse每次工具调用后捕获事件PluginPlugin
PreCompact对话压缩前建立快照PluginPlugin-
SessionStart压缩或恢复后恢复状态--Plugin

不同平台的会话完整性

平台完整性
Claude Code完整
Gemini CLI
VS Code Copilot
OpenCode高(缺SessionStart)
Cursor部分(缺SessionStart)
Codex CLI等待上游钩子分发

💾 性能基准测试

典型场景压缩效果

场景原始大小压缩后节省率
Playwright快照56.2 KB299 B99%
20个GitHub Issues58.9 KB1.1 KB98%
500条访问日志45.1 KB155 B100%
Context7 React文档5.9 KB261 B96%
分析CSV (500行)85.5 KB222 B100%
Git日志 (153次提交)11.6 KB107 B99%
子Agent研究986 KB62 KB94%

全会话效果

315KB原始输出 → 5.4KB。会话时间从30分钟延长到3小时。


📦 安装配置

Claude Code(推荐,自动)

# 前置要求:Claude Code v1.0.33+
claude --version

# 如果 /plugin 不识别,先更新
brew upgrade claude-code
# 或
npm update -g @anthropic-ai/claude-code

# 安装
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode

# 重启Claude Code(或运行 /reload-plugins)

# 验证
/context-mode:ctx-doctor

其他平台

平台安装方式
Gemini CLI配置文件,钩子内置
VS Code Copilot钩子+SessionStart
Cursor钩子+停止支持
OpenCodeTypeScript插件+钩子
KiloCodeTypeScript插件+钩子
OpenClaw/Pi Agent原生网关插件
Codex CLIMCP+钩子(等待上游分发)
AntigravityMCP仅限,无钩子
Kiro钩子+转向文件
ZedMCP仅限,无钩子

🎯 Think in Code范式

核心理念

LLM应该编程分析,而不是计算数据。

与其将50个文件读入上下文来计数函数,不如让Agent写一个脚本来计数并console.log()结果。

对比示例

传统方式(浪费上下文)

读取50个文件 → 数函数 → 返回结果
上下文消耗:50 × 10KB = 500KB

Think in Code(节省98%)

生成并运行计数脚本 → 仅返回结果
上下文消耗:脚本 + 结果 = 0.3KB

🔒 安全与隐私

安全模型

Context Mode在你已有的权限规则基础上执行——并将其扩展到MCP沙箱。

配置示例

{
  "permissions": {
    "deny": [
      "Bash(sudo *)",
      "Bash(rm -rf /*)",
      "Read(.env)",
      "Read(**/.env*)"
    ],
    "allow": [
      "Bash(git:*)",
      "Bash(npm:*)"
    ]
  }
  }
}

隐私承诺

  • 数据不离本地:无遥测、无云同步、无使用追踪
  • SQLite数据库:存储在你的home目录
  • 会话结束即销毁:无持久化数据

📊 路由强制执行

钩子 vs 指令文件

方式效果
钩子(Hooks)程序化拦截,可阻止危险命令,~98%节省
指令文件指导模型,无法阻止任何操作,~60%节省

结论:在支持钩子的平台上,始终启用钩子。


🚀 实用示例

示例1:深度仓库研究(5次调用,62KB上下文)

Research https://github.com/modelcontextprotocol/servers — architecture, tech stack, top contributors, open issues, and recent activity. Then run /context-mode:ctx-stats.

示例2:Git历史分析(1次调用,5.6KB上下文)

Clone https://github.com/facebook/react and analyze the last 500 commits: top contributors, commit frequency by month, and most changed files. Then run /context-mode:ctx-stats.

示例3:会话连续性(压缩恢复)

# 开始多步骤任务
"Create a REST API with Express — add routes, tests, and error handling."

# 20+次工具调用后
ctx stats  # 查看会话事件数

# 当上下文压缩时
# 模型从上次提示继续,任务、文件、决策完整保留

🌟 生态兼容

平台MCP ServerPreToolUsePostToolUseSessionStartPreCompact
Claude Code
Gemini CLI
VS Code Copilot
CursorPlugin
OpenCodePluginPluginPlugin
OpenClawPlugin-
Codex CLI-
Antigravity
Kiro
Zed
Pi Coding Agent

✅ 总结

Context Mode是AI编程工具的上下文危机解决方案

  1. 98%上下文节省:沙箱执行让原始数据永不进入上下文
  2. 会话连续性:对话压缩后完美恢复,无需重复
  3. Think in Code:让AI写代码计算,而非浪费上下文读取
  4. 12平台支持:覆盖主流AI编程工具
  5. 安全隐私:本地处理,无遥测无追踪
  6. 开源可用:ELv2许可证,源码可用

🦞