Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Code Cache

FreeNot checked

A persistent, tree-sitter-backed code knowledge cache MCP server that reduces token usage by storing parsed structure and enabling fast symbol lookup, inheritan

GitHubEmbed

About

A persistent, tree-sitter-backed code knowledge cache MCP server that reduces token usage by storing parsed structure and enabling fast symbol lookup, inheritance graph, call graph, and semantic search.

README

A lightweight, tree-sitter-backed code knowledge cache for AI agents — delivered as an MCP server.

轻量级代码知识缓存 MCP 服务,基于 tree-sitter 语法分析,专为 AI 编码助手设计。


Overview / 概述

AI agents repeatedly read source files to answer code questions — burning tokens every time. code-cache-mcp changes this: the agent queries the cache first, gets symbol positions + inheritance + call graph, and only reads the specific line range on a true miss.

Code structure is parsed once using tree-sitter and stored in SQLite. Only structure is persisted — symbol names, kinds, line ranges, inheritance edges, call graph. No raw source code is ever stored.

AI 助手反复读源文件查符号,每次都烧 token。code-cache-mcp 先查缓存:返回符号位置 + 继承关系 + 调用图,仅在 miss 时才按行范围精确读取。代码结构用 tree-sitter 一次解析存入 SQLite,仅存结构不存源码


Features / 功能特性

  • Symbol cache — classes, interfaces, enums, methods, functions, fields with line ranges
  • Inheritance graphextends / implements relationships, resolved lazily
  • Call graph — method invocation edges (caller → callee)
  • AI location memory — auto-persisted when query hits, instant retrieval in future sessions
  • Auto-invalidation — FileWatcher detects file changes, re-parses automatically
  • Cold-start auto-index — indexes cwd in background when cache is empty
  • Multi-language — Java, TypeScript/JavaScript, Python, Go, Rust
  • Zero infrastructure — single SQLite file, no server process
  • Lightweight — 66MB node_modules (vs 389MB in v0.1), lazy WASM loading

MCP Tools / MCP 工具

v0.2 provides 3 tools (v0.1 had 8):

Tool Description Parameters
query_code_cache FAST symbol lookup: file:line + hierarchy + call graph symbol, file_path, kinds, include_relationships
store_code_context Parse and cache a source file's structure file_path, language
index_directory Batch-index all source files in a directory directory, force

query_code_cache auto-indexes on miss and retries — no manual setup needed. Cache hits automatically persist as AI locations for future sessions.

query_code_cache 在 miss 时自动索引并重试——无需手动 setup。命中自动存储为 AI location,供后续会话直接命中。


Supported Languages / 支持语言

Language Extension
Java .java
TypeScript / TSX .ts .tsx
JavaScript / JSX .js .mjs .jsx
Python .py
Go .go
Rust .rs

Setup / 安装配置

Prerequisites / 前提条件

  • Node.js ≥ 18

Install / 安装

cd /path/to/code-cache-mcp
npm install

Register with Claude Code / 注册到 Claude Code

claude mcp add code-cache-mcp npx tsx "$(pwd)/packages/server/src/index.ts"

Or add manually to ~/.claude.json under mcpServers:

"code-cache-mcp": {
  "type": "stdio",
  "command": "npx",
  "args": ["tsx", "/absolute/path/to/code-cache-mcp/packages/server/src/index.ts"]
}

Environment Variables / 环境变量

Variable Default Description
CODE_CACHE_DIR .code-cache Directory for the SQLite database

Architecture / 架构

code-cache-mcp/
├── packages/
│   ├── sdk/                  # Core library (no MCP dependency)
│   │   └── src/
│   │       ├── types.ts      # Shared interfaces
│   │       ├── db.ts         # SQLite schema + queries
│   │       ├── code-cache.ts # CodeCacheStore — orchestrator
│   │       ├── parser-*.ts   # Language-specific parsers
│   │       ├── parser-registry.ts  # Lazy language dispatcher
│   │       └── watcher.ts    # FileWatcher (debounced fs.watch)
│   ├── server/               # MCP server entry point
│   │   └── src/
│   │       ├── index.ts      # CLI entry
│   │       └── mcp.ts        # 3 tool registrations
│   └── wasm/                 # tree-sitter WASM grammar binaries

Database schema / 数据库结构

Table Contents
file_versions File path, hash, language, line count
symbols Every class / method / field with line range
class_relationships Inheritance / implementation edges
call_edges Method invocation graph
ai_locations Auto-persisted AI query hits with reason
stats Global cache hit/miss counters, tokens saved

v0.2 Changes from v0.1 / v0.2 相比 v0.1 的变化

Metric v0.1 v0.2 Change
MCP tools 8 3 -62%
query parameters 11 4 -64%
node_modules 389MB 66MB -83%
mcp.ts lines 783 ~290 -64%
DB tables 10 6 -40%
Dependencies ~200+ ~102 -50%

Removed in v0.2

  • Semantic search (@xenova/transformers, 45MB + 23MB model cache)
  • TokenTracker (@anthropic-ai/sdk)
  • PostgreSQL metrics (pg dual-write)
  • Cross-session query history (SHA-256 hashing, diff computation)
  • Code snippet similarity (Jaccard token matching, unified diff)
  • Session dedup cache and session stats table
  • AST nodes table and include_ast parameter
  • 5 MCP tools: cache_hotness, invalidate_cache, store_ai_location, get_ai_locations, cache_clear
  • report.ts and claude-log-reader.ts

Tech Stack / 技术栈

Component Technology
Language TypeScript (ESM)
Runtime Node.js + npx tsx
Database SQLite via @tursodatabase/database (libSQL)
Code parsing web-tree-sitter + language WASM grammars (lazy)
MCP SDK @modelcontextprotocol/sdk
Validation zod

Guiding AI to Use the Cache / 引导 AI 使用缓存

AI agents default to Read / grep / LSP because they're familiar. To increase adoption:

  1. SessionStart hook — Add to ~/.claude/settings.json:
"SessionStart": [{ "hooks": [{ "type": "command", "command": "cat ~/.claude/code-cache-hint.txt" }] }]

Create ~/.claude/code-cache-hint.txt:

When navigating code, prefer query_code_cache over Read/grep for symbol lookups. It returns file:line positions, inheritance, and call graph — faster than reading whole files. After reading a source file, call store_code_context to cache it.
  1. Cold-start auto-index — Built-in. When cache is empty, indexes cwd in background automatically.

  2. Teaching tip — Built-in. Cache hits include: "tip": "3 symbols found via cache. Use Read with offset/limit for the specific line ranges above."

  3. CLAUDE.md — Add to project root:

## Code Navigation
- Use `query_code_cache` BEFORE `Read` to find symbols. Returns file:line + hierarchy + call graph.
- After `Read` on a source file, call `store_code_context` to build cache.

License / 许可证

MIT

from github.com/eurekame2000/code-cache-mcp

Installing Code Cache

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/eurekame2000/code-cache-mcp

FAQ

Is Code Cache MCP free?

Yes, Code Cache MCP is free — one-click install via Unyly at no cost.

Does Code Cache need an API key?

No, Code Cache runs without API keys or environment variables.

Is Code Cache hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Code Cache in Claude Desktop, Claude Code or Cursor?

Open Code Cache on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Code Cache with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs