代码上下文缓存服务

为Claude Code提供持久化的MCP服务器,避免重复读取相同文件和重复获取相同文档,支持代码图、Web缓存和会话记忆等功能。

  • by nayanjaiswal1
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 nayanjaiswal1/mcp-context-cache

使用说明

mcp上下文缓存

持久化MCP服务器 克劳德代码。阻止Claude在每个会话中重新读取相同的文件和重新获取相同的文档。

  • 代码图 --树型索引符号、调用图BFS、影响分析
  • Web缓存 --获取URL一次,缓存24小时,ETag无效
  • 会话内存 --在会议期间坚持调查结果、决策和研究
  • 自动同步 --PostToolUse钩子在编辑时保持索引最新
search_code("authenticate")  →  found in eigeneval/authentication.py:28
get_callers("authenticate")  →  3 callers across 2 files
memory_set("auth-decision")  →  persists across restarts
fetch_url_cached(django_url) →  cached: true on second call

安装

npx mcp-context-cache init
npx mcp-context-cache index

就是这样。Claude Code通过以下方式自动获取MCP服务器 .mcp.json.

需求

  • Node.js≥20
  • 克劳德代码

它做什么

在第一次运行时, init 创造 .context-cache/ 在你的项目中,写道 .mcp.json,并安装git钩子。 index 使用树状图解析每个源文件,并将符号+调用边存储在本地SQLite数据库中。

Claude Code有14个可用工具:

工具 它做什么
search_code FTS5符号搜索——比grep快
get_callers 谁调用此函数(BFS,可配置深度)
get_callees 这个函数调用什么
get_impact 爆炸半径:所有受影响的符号+风险评分
read_file_cached 使用基于哈希的更改检测读取文件
fetch_url_cached 获取URL,缓存24小时,Etag无效
web_cache_list 列出/检查缓存的URL
memory_set/get/search FTS5的持久键值存储
memory_delete/clear_namespace 管理存储的内存
project_index 从MCP工具调用重新索引
project_status 文件计数、节点/边缘计数、缓存大小

如何更改同步

更改 同步触发器
Claude代码编辑 PostToolUse钩子(自动,每个文件)
git pull / git merge post-merge git挂钩(自动)
git checkout /分支开关 post-checkout git挂钩(自动)
手动编辑(vim、VS代码) mcp-context-cache serve --mcp --watch
任何时候 mcp-context-cache index

命令行界面

mcp-context-cache init          # scaffold, create .mcp.json, install git hooks
mcp-context-cache index         # full index (or re-index)
mcp-context-cache sync          # incremental sync (changed files only)
mcp-context-cache serve --mcp   # start MCP stdio server
mcp-context-cache status        # show index stats
mcp-context-cache clean         # prune expired cache entries
mcp-context-cache doctor        # validate install, DB health, config

支持的语言

TypeScript·JavaScript·Python·Go·Rust·Java

运作原理

Claude Code session
      │
      │  MCP tool calls
      ▼
mcp-context-cache server
  ├── Code graph  (tree-sitter → SQLite + FTS5)
  ├── Web cache   (undici + ETag → SQLite)
  └── Memory      (FTS5 KV store → SQLite)
      │
      │  PostToolUse hook (per edit)
      │  git post-merge hook (per pull)
      ▼
  Incremental sync

每个项目一个SQLite文件 .context-cache/default.db。没有后台守护进程。没有云。一切都是当地的。

许可证

麻省理工学院