Token导航 LogoToken导航TokenDH.com
Code Compress logo
开发工具未说明官方级别未说明来源级核验

Code Compress

MCP Server

CodeCompress是一款代码智能工具,可作为MCP服务器或独立CLI使用,为AI编码代理提供代码库的即时记忆功能,显著减少上下文加载的令牌消耗。

工具数

22

提示词数

0

GitHub Stars

0

资源数

0
代码索引C#Claude开发工具Claude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MCrank

提供方

MCrank

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

CodeCompress — MCP Server & CLI

AI代理的持久代码索引。确切地问你需要什么。

![CI](https://github.com/MCrank/code-compress/actions/workflows/ci.yml) ![Release](https://github.com/MCrank/code-compress/actions/workflows/release.yml) ![NuGet](https://www.nuget.org/packages/CodeCompress.Server) ](https://www.nuget.org/packages/CodeCompress.Server) ![License: MIT](LICENSE) ![.NET 10](https://dotnet.microsoft.com/download/dotnet/10.0)

______________________________________________________________________

什么是CodeCompress?

CodeCompress是一个 代码智能工具 --可用作两者 MCP服务器 和一个 独立CLI --这赋予了AI编码代理 代码库的即时记忆.使用适合您工作流程的任何界面:MCP服务器直接与Claude Code等AI工具集成,而CLI在任何有终端的地方都可以工作。

代理不会在每次对话开始时扫描每个文件,而是查询一个持久的SQLite索引,以获取他们所需的符号、类型和依赖关系——只需一小部分令牌。

无CodeCompress有CodeCompress
Agent读取50多个文件以了解您的项目Agent调用 project_outline -获得约3–8k代币的完整API表面
每个会话在上下文上浪费了30-150k+个令牌上下文加载令牌减少了80-90%
子代理各自独立扫描相同的文件所有代理共享一个持久索引
更大的代码库=每次等待时间更长首次运行后索引时间恒定(增量)

快速开始

先决条件

选项A:MCP服务器(推荐用于AI工具)

选择你的工具并添加MCP服务器——就是这样。

Claude Code

claude mcp add --transport stdio codecompress -- dnx CodeCompress.Server --yes

VS Code / GitHub Copilot

创建 .vscode/mcp.json 在您的项目中:

{
  "servers": {
    "codecompress": {
      "type": "stdio",
      "command": "dnx",
      "args": ["CodeCompress.Server", "--yes"]
    }
  }
}

Claude Desktop

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "codecompress": {
      "command": "dnx",
      "args": ["CodeCompress.Server", "--yes"]
    }
  }
}

Cursor

创建 .cursor/mcp.json 在您的项目中:

{
  "mcpServers": {
    "codecompress": {
      "type": "stdio",
      "command": "dnx",
      "args": ["CodeCompress.Server", "--yes"]
    }
  }
}

Windsurf

增添 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "codecompress": {
      "command": "dnx",
      "args": ["CodeCompress.Server", "--yes"]
    }
  }
}

Other MCP clients

CodeCompress使用stdio传输。为您的客户指出:

dnx CodeCompress.Server --yes

Share with your team (.mcp.json)

将此文件提交到仓库的根目录。Claude Code和VS Code会自动获取它——每个团队成员都可以在零设置的情况下获得CodeCompress:

{
  "mcpServers": {
    "codecompress": {
      "type": "stdio",
      "command": "dnx",
      "args": ["CodeCompress.Server", "--yes"]
    }
  }
}

选项B:CLI(用于没有MCP的终端、脚本和代理)

作为全局安装。NET工具:

dotnet tool install -g CodeCompress

然后从任何终端使用它:

codecompress index --path /path/to/project
codecompress outline --path /path/to/project
codecompress search --path /path/to/project --query "MyClass"

CLI和MCP服务器共享同一个索引数据库,可以互换使用。跑 codecompress --help 对于所有命令,或 codecompress agent-instructions 为AI代理生成即贴指令块。

选项C:Web仪表板(本地UI)

启动暗模式的ExpressRoute仪表板,从浏览器浏览索引存储库、搜索符号并触发重新索引:

codecompress web

打开时间 http://localhost:7070 默认情况下。选项:

codecompress web --port 8080        # custom port
codecompress web --open             # open browser automatically
codecompress web --bind 0.0.0.0    # bind to all interfaces (LAN access)

仪表板显示相同的全局 ~/.code-compress/index.db 作为MCP服务器和CLI,无需单独设置。

要更新,请执行以下操作: dotnet tool update -g CodeCompress

2.为你的项目建立索引

你的AI代理会打电话给你 index_project 当它需要代码库上下文时自动执行。您还可以显式触发它:

index_project(path: "/path/to/your/project")

第一次运行做了一个 全文索引 --解析每个源文件并将符号存储在SQLite中。后续运行是 渐进的 --只有SHA-256哈希值更改的文件才会被重新解析。

3.开始编码

就是这样。你的代理现在可以即时访问你的代码库结构。它将自动使用以下工具 project_outline, get_symbol,以及 search_symbols 而不是读取原始文件。

运作原理

AI Agent    CodeCompress Server ──┐
                                                      │
Developer    CodeCompress CLI ──────┤
                                                      │
                                                 Index Engine
                                                   /      \
                                          Language       SQLite Store
                                          Parsers      ~/.code-compress/
                                    (C#, Java, Go, TS,  index.db
                                    Rust, Python, …)

MCP服务器和CLI共享同一个索引数据库——您可以使用其中一个进行索引,使用另一个进行查询。

  1. 索引 --CodeCompress遍历您的源文件,对每个文件进行哈希(SHA-256),并使用特定语言的解析器提取符号(函数、类、类型、常量)和依赖关系(导入/要求)。
  1. 商店 --所有内容都会进入本地SQLite数据库 .code-compress/index.db 在项目目录中。该数据库使用FTS5虚拟表进行快速全文搜索。
  1. 查询 --代理调用MCP工具以获取压缩轮廓,按名称查找特定符号,在代码库中搜索,或检查自快照以来发生了什么变化。
  1. 与时俱进 --重新索引是增量的。只有内容哈希值更改的文件才会被重新解析。呼叫 index_project 在任何会话开始时,或在进行更改后,它都会在几秒钟内完成。

保持索引最新

CodeCompress旨在以最小的努力保持最新状态:

场景该怎么办
启动新的代理会话呼叫 index_project --如果没有任何变化,则需要几秒钟
编辑文件后呼叫 index_project 再次,只有更改的文件才会被重新解析
跨会话跟踪更改使用 snapshot_create 上班前,然后 changes_since 看看有什么不同
强制重新索引呼叫 invalidate_cache 然后 index_project
CLAUDE.md/系统提示提示: 添加如下指令 *“每次会话开始时,请致电 index_project 要刷新代码库索引,请使用 project_outline 了解项目结构。"* 这可以确保您的代理始终有一个新的索引。

可用的MCP工具

索引

工具它做什么
index_project为项目目录建立索引(默认情况下为增量)
snapshot_create创建一个命名快照以跟踪随时间的变化
invalidate_cache强制对下一个进行全面重新索引 index_project 呼叫
list_repos列出全局数据库中索引的所有项目

上下文组装

工具它做什么
assemble_context一键式上下文构建器 --在令牌预算内搜索符号、检索源代码并构建结构化概述。将5-10次手动工具调用替换为1。提供一个查询+可选的活动文件,用文件树、源代码块和令牌使用统计数据返回Markdown。大符号自动汇总。
何时使用 assemble_context: 在任务开始时,当你需要广泛的背景时。对于特定符号的外科检索,请使用 get_symbolexpand_symbol 直接。

查询

工具它做什么
project_outline整个项目的压缩API表面-类型、函数、签名
get_symbol按名称检索单个符号的完整源代码(支持 Parent:Child 合格名称)
get_symbols在一次呼叫中批量检索多个符号(最多50个)
get_module_api单个文件/模块的完整公共API
expand_symbol从大型类中提取单个方法(比大型类少约60%的标记 get_symbol)
get_hot_path仅返回符号中包含特定标识符和周围上下文的行(令牌比正文少10-40倍)
search_symbols在符号名称、签名、父类型和文档之间进行全文搜索。当精确的FTS5返回零结果时,包含匹配的自动重试。
search_text跨文件内容的原始文本搜索(使用glob过滤)
topic_outline基于主题的搜索,结果以大纲格式分组
find_references在代码库中查找对符号的所有引用

更改跟踪和导航

工具它做什么
changes_since增量报告——自快照以来更改了哪些文件/符号
file_tree带注释的项目文件树
dependency_graph导入/要求文件的依赖关系图
project_dependencies项目间依赖关系图(.NET解决方案)

相关性分析

工具它做什么
blast_radius反向BFS——如果给定的文件或符号发生更改,则查找所有受影响的文件
find_unused_symbols尽力而为的死代码检测——没有传入引用的公共符号

服务器管理

工具它做什么
stop_server优雅地关闭服务器以释放资源和DLL锁
注: 像Claude Code这样的MCP客户端会在下一次工具调用时自动重启服务器,因此停止它总是安全的。

MCP提示

CodeCompress提供4个预构建的工作流提示。在Claude Code和其他支持提示的MCP客户端中,您可以按名称调用它们,将分步工作流指南直接加载到您的上下文中。

提示工作流
explore_codebaseindex_projectproject_outlinesearch_symbolsget_symbol
find_impactindex_projectblast_radiusfind_referencesdependency_graph
review_changessnapshot_create → _\[进行更改\]_ → index_projectchanges_since
debug_symbolsearch_symbolsget_hot_pathget_symbolfind_references

每个提示符返回一个 ChatRole.User 该消息包含完整的工作流程、每个工具的令牌估计以及何时选择一种工具而非另一种工具的指导。

CLI:codecompress prompts 列出所有提示,或 codecompress prompts --name explore_codebase 打印特定提示的全文。

支持的语言

语言扩展状态解析器
卢奥(Roblox).luau, .lua可用基于正则表达式/模式
CNET.cs可用树保姆AST
变量/剃刀.razor可用指令提取+C#委托
地形/HCL.tf, .tfvars可用基于正则表达式/模式
Java .java可用树保姆AST
去吧.go可用树保姆AST
Types/JavaScript.ts, .tsx, .js, .jsx, .mjs, .cjs可用树保姆AST
生锈.rs可用树保姆AST
python .py, .pyi可用树保姆AST
.NET项目文件.csproj, .fsproj, .props可用基于XML
JSON配置.json可用基于结构
YAML配置.yaml, .yml可用基于结构

添加新语言需要实现一个 ILanguageParser 接口——存储、索引或MCP工具没有变化。

我的数据存储在哪里?

所有索引数据都存储在 单一全局数据库 在您的主目录中:

~/.code-compress/index.db
  • 一个SQLite数据库在所有索引项目中共享
  • 包含:文件元数据、解析符号、依赖关系、FTS5搜索索引、每个索引项目的快照
  • 没有数据离开您的机器 --无网络呼叫,无遥测
  • 项目目录中没有存储任何内容——没有 .gitignore 所需条目

要清除特定项目的索引,请调用 invalidate_cache (MCP)或 codecompress invalidate-cache --path (CLI)。要列出所有索引项目,请使用 list_repos (MCP)或 codecompress list (CLI)。

安全

  • 只读 --永远不要修改源文件
  • 路径遍历预防 --根据项目根进行规范化和验证的所有文件路径
  • SQL注入预防 --所有查询都使用参数化语句
  • 快速注射防护措施 --工具输出是结构化数据;原始输入永远不会回显为自由文本
  • 仅限本地 --没有网络调用,没有遥测,你的代码留在你的机器上

代理配置

将以下内容粘贴到您的 CLAUDE.md, .cursorrules、系统提示或代理配置文件,以教导AI代理如何使用CodeCompress:

提示: 您还可以通过运行以下命令来生成此块 codecompress agent-instructions 如果您安装了CLI。
# CodeCompress — Agent Instructions

CodeCompress is a code intelligence tool that provides compressed, symbol-level access
to the indexed codebase. Use it as your PRIMARY tool for code discovery instead of reading
raw files — it saves 80-90% tokens.

## Workflow

1. **Index first** — `index_project` (MCP) or `codecompress index --path ` (CLI).
   Builds/updates the symbol database. Incremental — only changed files are re-parsed.
2. **Assemble context** — `assemble_context` / `codecompress assemble` for one-shot task context.
   Combines search + source retrieval + file overview within a token budget.
3. **Get an overview** — `project_outline` / `codecompress outline` for the full codebase structure.
4. **Search** — `search_symbols` / `codecompress search` for FTS5 full-text symbol search.
   `search_text` / `codecompress search-text` for raw file content search.
5. **Read symbols** — `get_symbol` / `codecompress get-symbol` to retrieve exact source code.
   `expand_symbol` / `codecompress expand-symbol` for a single method (~60% fewer tokens).
6. **Find references** — `find_references` / `codecompress find-references` to trace usage.
7. **Dependencies** — `dependency_graph` / `codecompress deps` for import relationships.

## Tips

- Add `--json` to any CLI command for machine-readable output (snake_case keys).
- The index persists at `~/.code-compress/index.db` (global) — shared between MCP server and CLI.
- PREFER these tools over raw file reading. They are faster, more precise, and dramatically
  reduce token consumption.

从源头构建

git clone https://github.com/MCrank/code-compress.git
cd code-compress
dotnet build CodeCompress.slnx
dotnet test --solution CodeCompress.slnx

要在本地运行MCP服务器:

dotnet run --project src/CodeCompress.Server

要配置客户端以使用本地版本,请执行以下操作:

claude mcp add --transport stdio codecompress -- dotnet run --project /absolute/path/to/src/CodeCompress.Server

CLI工具

CLI提供与MCP服务器相同的功能——使用适合您工作流程的功能。两者共享相同 ~/.code-compress/index.db 全球数据库。

安装

dotnet tool install -g CodeCompress

要更新到最新版本:

dotnet tool update -g CodeCompress

用法

# Index a project (must be run first)
codecompress index --path /path/to/project

# Assemble task-relevant context in one call (new!)
codecompress assemble --path /path/to/project --query "authentication" --budget 30000

# Get a compressed codebase overview
codecompress outline --path /path/to/project

# Search for symbols (auto-retries with contains-match on zero results)
codecompress search --path /path/to/project --query "Authentication*"

# Retrieve a specific symbol's source code
codecompress get-symbol --path /path/to/project --name MyClass:MyMethod

# Search raw file contents
codecompress search-text --path /path/to/project --query "TODO"

# Retrieve a nested method without loading the whole class (~60% token savings)
codecompress expand-symbol --path /path/to/project --name MyClass:MyMethod

# Return only lines matching specific identifiers within a symbol (~10-40x fewer tokens)
codecompress get-hot-path --path /path/to/project --name MyClass:MyMethod --identifiers "userId,status"

# Batch retrieve multiple symbols at once
codecompress get-symbols --path /path/to/project --names "Foo,Bar,Baz"

# Get the public API surface of a single file
codecompress get-module-api --path /path/to/project --module src/Core/Foo.cs

# Search by topic — returns results in outline format
codecompress topic-outline --path /path/to/project --topic authentication

# Find all references to a symbol across the codebase
codecompress find-references --path /path/to/project --name ISymbolStore

# View directory structure (no index required)
codecompress file-tree --path /path/to/project

# Show file-level dependency graph
codecompress deps --path /path/to/project

# Show inter-project dependencies (.NET solutions)
codecompress project-deps --path /path/to/project

# Snapshot + change tracking
codecompress snapshot --path /path/to/project --label before-refactor
codecompress changes --path /path/to/project --label before-refactor

# Delete index to force full re-index
codecompress invalidate-cache --path /path/to/project

# Launch the web dashboard
codecompress web [--port 7070] [--bind localhost] [--open]

JSON输出

添加 --json 对于机器可读JSON输出的任何命令(匹配MCP服务器输出的snake_case密钥):

codecompress search --path /path/to/project --query "Parser" --json

代理说明

为AI代理生成可粘贴指令块:

codecompress agent-instructions

这将输出一个可以粘贴到其中的markdown块 CLAUDE.md、系统提示或代理配置文件,以教导AI代理如何使用CLI进行代码发现。

CLI到MCP的等效性

CLI命令MCP工具说明
indexindex_project构建/更新符号数据库
assembleassemble_context令牌预算内的一次性上下文组装
outlineproject_outline压缩代码库概述
get-symbolget_symbol检索符号源代码
expand-symbolexpand_symbol提取嵌套符号(令牌减少约60%)
get-hot-pathget_hot_path仅返回与符号内的标识符匹配的行
get-symbolsget_symbols批量检索多个符号
get-module-apiget_module_api文件的公共API表面
searchsearch_symbolsFTS5符号搜索(自动包含匹配回退)
search-textsearch_textFTS5原始内容搜索
topic-outlinetopic_outline大纲格式的基于主题的搜索
find-referencesfind_references查找所有符号引用
changeschanges_since自快照以来的增量
snapshotsnapshot_create创建索引快照
file-treefile_tree目录树
depsdependency_graph文件级依赖关系图
project-depsproject_dependencies项目间依赖关系(.NET)
invalidate-cacheinvalidate_cache强制全面重新索引
web--启动本地的DateTimeweb仪表板

许可证

麻省理工学院

目录标签

目录标签

代码索引C#Claude开发工具代码智能本地部署AI辅助开发

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

22

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP