尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

GitHub - DeusData/codebase-memory-mcp:高性能代码智能 MCP 服务器。将代码库索引到持久化知识图谱——平均毫秒级处理仓库。

GitHub - DeusData/codebase-memory-mcp:高性能代码智能 MCP 服务器。将代码库索引到持久化知识图谱——平均毫秒级处理仓库。
📅 发布时间:2026/6/19 4:15:25

codebase-memory-mcp

面向 AI 编程 Agent 的最快、最高效的代码智能引擎。可在毫秒内完成对普通代码库的全量索引,Linux 内核(2800 万行代码,75K 个文件)仅需 3 分钟。结构化查询响应时间低于 1ms。以单一静态二进制文件的形式分发,支持 macOS、Linux 和 Windows——下载、运行install,搞定。

通过 tree-sitter AST 分析实现对全部 158 种编程语言的高质量解析,并结合Hybrid LSP语义类型解析,支持 Python、TypeScript / JavaScript / JSX / TSX、PHP、C#、Go、C、C++、Java、Kotlin 和 Rust——生成涵盖函数、类、调用链、HTTP 路由及跨服务链接的持久化知识图谱。14 个 MCP 工具。零依赖。可无缝接入 11 种编程 Agent。

研究— 本项目的设计思路与基准测试详见预印本Codebase-Memory: Tree-Sitter-Based Knowledge Graphs for LLM Code Exploration via MCP(arXiv:2603.27277)。在 31 个真实代码库上的评估结果:答案质量达 83%,相比逐文件探索方式减少 10 倍 token 消耗,减少 2.1 倍工具调用次数。

安全与信任— 本工具会读取你的代码库,并向你的 Agent 配置文件写入内容,这正是它的设计用途。如果你希望在运行前先进行审计,完整源代码在此——每个发布的二进制文件均已签名、校验和,并经 70 余个杀毒引擎扫描。所有处理均在本地完成,你的代码绝不会离开你的机器。发现安全问题?我们希望知晓——请参阅 SECURITY.md。安全是我们的第一优先级。

内置 3D 图谱可视化界面(UI 版本)——在 localhost:9749 探索你的知识图谱

为什么选择 codebase-memory-mcp

  • 极速索引— Linux 内核(2800 万行代码,75K 个文件)仅需 3 分钟。内存优先流水线:LZ4 压缩、内存版 SQLite、融合 Aho-Corasick 模式匹配。索引完成后内存即释放。

  • 即插即用— 适用于 macOS(arm64/amd64)、Linux(arm64/amd64)和 Windows(amd64)的单一静态二进制文件。无需 Docker,无运行时依赖,无需 API 密钥。下载 →install→ 重启 Agent → 完成。

  • 158 种语言— tree-sitter 语法文件已预编译进二进制文件。无需额外安装,不会出现兼容性问题。

  • 减少 120 倍 token 消耗— 5 次结构化查询约消耗 3,400 个 token,而逐文件搜索约消耗 412,000 个 token。一次图谱查询可替代数十次 grep/read 操作。

  • 11 个 Agent,一条命令—install自动检测 Claude Code、Codex CLI、Gemini CLI、Zed、OpenCode、Antigravity、Aider、KiloCode、VS Code、OpenClaw 和 Kiro——为每个 Agent 配置 MCP 条目、指令文件和预工具钩子。

  • 内置图谱可视化— 在localhost:9749提供 3D 交互界面(可选 UI 二进制版本)。

  • 基础设施即代码索引— Dockerfile、Kubernetes 清单和 Kustomize 覆盖层作为图谱节点进行索引并建立交叉引用。K8s 类型对应Resource节点,Kustomize 覆盖层对应Module节点,并通过IMPORTS边连接到所引用的资源。

  • 14 个 MCP 工具— 搜索、追踪、架构分析、影响分析、Cypher 查询、死代码检测、跨服务 HTTP 链接、ADR 管理等。

快速开始

一行安装命令(macOS / Linux):

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

含图谱可视化界面:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui

Windows(PowerShell):

# 1. Download the installer Invoke-WebRequest - Uri https: // raw.githubusercontent.com / DeusData / codebase - memory - mcp / main / install.ps1 - OutFile install.ps1 # 2. (Optional but recommended) Inspect the script notepad install.ps1 # 3. Run it .\install.ps1

选项:--ui(图谱可视化)、--skip-config(仅二进制文件,不配置 Agent)、--dir=(自定义安装路径)。

重启你的编程 Agent。说一句"Index this project"——完成。

手动安装

  • 下载最新版本中适用于你平台的压缩包:codebase-memory-mcp- - .tar.gz(macOS/Linux)或.zip(Windows)——标准版

  • codebase-memory-mcp-ui- - .tar.gz/.zip— 含图谱可视化版本

  • 解压并安装(每个压缩包均包含install.sh或install.ps1):macOS / Linux:tar xzf codebase-memory-mcp- * .tar.gz ./install.shWindows(PowerShell):Expand-Archive codebase - memory - mcp - windows - amd64.zip - DestinationPath . .\install.ps1

  • 重启你的编程 Agent。

install命令会自动去除 macOS 隔离属性并对二进制文件进行临时签名——无需手动执行xattr/codesign。

install命令会自动检测所有已安装的编程 Agent,并为每个 Agent 配置 MCP 服务器条目、指令文件、技能和预工具钩子。

图谱可视化界面

如果你下载的是ui版本:

codebase-memory-mcp --ui=true --port=9749

在浏览器中打开http://localhost:9749。界面以后台线程方式与 MCP 服务器并行运行——只要你的 Agent 已连接,界面便随时可用。

自动索引

在 MCP 会话启动时启用自动索引:

codebase-memory-mcp config set auto_index true

启用后,新项目在首次连接时会自动进行索引。已索引的项目会注册到后台监视器,持续进行基于 git 的变更检测。可配置文件数量上限:config set auto_index_limit 50000。

保持更新

codebase-memory-mcp update

MCP 服务器还会在启动时检查更新,若有新版本发布,会在首次工具调用时发出通知。

卸载

codebase-memory-mcp uninstall

移除所有 Agent 配置、技能、钩子和指令文件,但不会删除二进制文件或 SQLite 数据库。

功能特性

图谱与分析

  • 架构概览:get_architecture通过单次调用返回编程语言、包、入口点、路由、热点、边界、层次和模块集群

  • 架构决策记录:manage_adr跨会话持久化架构决策

  • Louvain 社区检测:通过对调用边进行聚类,发现功能模块

  • Git diff 影响映射:detect_changes将未提交的变更映射到受影响的符号,并进行风险分级

  • 调用图谱:跨文件和包解析函数调用(支持导入感知、类型推断)

  • 死代码检测:查找零调用方的函数,排除入口点

  • 类 Cypher 查询:MATCH (f:Function)-[:CALLS]->(g) WHERE f.name = 'main' RETURN g.name

搜索

  • 语义搜索(semantic_query):基于整个图谱的向量搜索,由内置的 Nomicnomic-embed-code嵌入(40K token,768 维 int8)驱动,已编译进二进制文件——无需 API 密钥,无需 Ollama,无需 Docker。11 路信号综合评分(TF-IDF、RRI、API/类型/装饰器签名、AST 特征、数据流、Halstead-lite、MinHash、模块邻近度、图谱扩散)。

  • BM25 全文搜索:通过 SQLite FTS5 与cbm_camel_split分词器实现(支持 camelCase / snake_case)

  • 结构化搜索(search_graph):正则名称模式、标签过滤、最小/最大度数、文件范围限定

  • 代码搜索(search_code):仅在已索引文件上进行图谱增强的 grep

跨服务链接

  • HTTP路由 ↔ 调用点匹配,含置信度评分

  • gRPC、GraphQL、tRPC服务检测,支持 protobuf Route 提取

  • 通道检测(EMITS/LISTENS_ON):跨 8 种语言检测 Socket.IO、EventEmitter 及通用发布-订阅模式,支持常量解析

跨代码库智能

  • CROSS_*边:链接在同一存储下索引的多个代码库中的节点

  • 多星系 3D 界面布局:用于跨代码库架构可视化

  • 跨代码库架构摘要:汇总已索引的所有代码库的服务、路由和依赖关系

边类型(部分)

  • CALLS、IMPORTS、DEFINES、IMPLEMENTS、INHERITS

  • HTTP_CALLS、ASYNC_CALLS(跨服务)

  • EMITS、LISTENS_ON(通道)

  • DATA_FLOWS,含参数到形参映射及字段访问链

  • SIMILAR_TO(MinHash + LSH 近似克隆检测,Jaccard 评分)

  • SEMANTICALLY_RELATED(词汇不匹配,相同语言,评分 ≥ 0.80)

索引流水线

  • 158 个预置 tree-sitter 语法文件,已编译进二进制文件

  • 通用包/模块解析— 裸说明符如@myorg/pkg、github.com/foo/bar、use my_crate::foo通过扫描清单文件解析(package.json、go.mod、Cargo.toml、pyproject.toml、composer.json、pubspec.yaml、pom.xml、build.gradle、mix.exs、*.gemspec)

  • 基础设施即代码索引— Dockerfile、Kubernetes 清单、Kustomize 覆盖层作为图谱节点

  • Hybrid LSP 语义类型解析,支持 Python、TypeScript / JavaScript / JSX / TSX、PHP、C#、Go、C、C++、Java、Kotlin 和 Rust——一套轻量级 C 语言实现的类型解析算法,在结构上参考并兼容主流语言服务器,包括 tsserver / typescript-go、pyright、gopls、Roslyn、Eclipse JDT 和 rust-analyzer(参数绑定、返回类型推断、泛型替换、JSX 组件分发、plain JS 文件的 JSDoc 推断、PHP 的命名空间 + trait + 后期静态绑定解析、C# 的文件范围命名空间 + record + LINQ 方法语法、Java 的类层次 + 重载 + lambda 解析、Kotlin 的扩展函数 + 作用域函数解析、Rust 的 trait 方法 + UFCS 解析)

  • 内存优先流水线:LZ4 压缩、内存版 SQLite、结束时一次性落盘。内存随后释放。

分发与运维

  • 单一静态二进制,零基础设施:基于 SQLite,持久化至~/.cache/codebase-memory-mcp/

  • 自动同步:后台监视器检测文件变更并自动重新索引

  • 路由节点:REST 端点作为图谱的一等实体

  • CLI 模式:codebase-memory-mcp cli search_graph '{"name_pattern": ".*Handler.*"}'

  • 可通过以下方式获取:npm、PyPI、Homebrew、Scoop、Winget、Chocolatey、AUR、go install

团队共享图谱产物

将单个压缩文件提交到代码库,你的队友即可跳过重新索引步骤。

.codebase-memory/graph.db.zst是一个 zstd 压缩的知识图谱快照,与你的源代码并排存放。当你进行索引时,该产物会被写入或刷新;当队友克隆代码库并首次运行codebase-memory-mcp时,该产物会被解压,随后通过增量索引填入本地差异。

  • 格式:SQLite 数据库,去除索引,VACUUM INTO压缩,再经 zstd 1.5.7 压缩(典型压缩比 8–13:1)

  • 两个层级:最优(zstd -9+ 去除索引 +VACUUM INTO)——在显式执行index_repository时写入

  • 快速(zstd -3)——由监视器写入,用于低延迟增量更新

  • 引导启动:当本地数据库不存在但产物文件存在时,index_repository会先导入产物,再运行增量索引——从而避免完整重建索引的开销

  • 无合并冲突:首次导出时会自动创建包含merge=ours的.gitattributes行,使得对二进制产物的并发编辑不会产生冲突

  • 可选:除非你希望保留,否则不会提交。如果你希望每个人都从头重新索引,请将.codebase-memory/添加到.gitignore。

其结果在精神上与 graphify 的graphify-out/目录类似,但以单个压缩文件的形式呈现,具备显式的双层导出、完整性校验的导入,以及零合并摩擦。

How It Works

codebase-memory-mcp 是一个结构分析后端—— 它负责构建和查询知识图谱,不内置 LLM。它依赖你的 MCP 客户端(Claude Code 或任何兼容 MCP 的 Agent)作为智能层。

You: "what calls ProcessOrder?" Agent calls: trace_path(function_name="ProcessOrder", direction="inbound") codebase-memory-mcp: executes graph query, returns structured results Agent: presents the call chain in plain English

为什么不内置 LLM?其他代码图谱工具内嵌了 LLM,用于将自然语言转换为图查询。这意味着额外的 API Key、额外的费用,以及需要另外配置一个模型。有了 MCP,你已经在交互的 Agent本身就是查询翻译器。

Performance

在 Apple M3 Pro 上的基准测试结果:

| 操作 | 耗时 | 备注 |

|Linux 内核完整索引|3 分钟| 2800 万行代码,75K 文件 → 481 万节点,772 万边 |

| Linux 内核快速索引 | 1 分 12 秒 | 188 万节点 |

| Django 完整索引 | ~6 秒 | 4.9 万节点,19.6 万边 |

| Cypher 查询 | <1ms | 关系遍历 |

| 名称搜索(正则) | <10ms | SQL LIKE 预过滤 |

| 死代码检测 | ~150ms | 带度过滤的全图扫描 |

| 追踪调用路径(depth=5) | <10ms | BFS 遍历 |

内存优先流水线:所有索引均在内存中运行(LZ4 HC 压缩读取、内存内 SQLite、结束时一次性写盘)。索引完成后内存会释放回操作系统。

Token 效率:通过 codebase-memory-mcp 执行五次结构查询共消耗约 3,400 个 token,而逐文件 grep 探索方式则需消耗约 412,000 个 token ——减少了 99.2%。

Installation

Pre-built Binaries

| 平台 | 标准版 | 含图形 UI 版 |

| macOS(Apple Silicon) |codebase-memory-mcp-darwin-arm64.tar.gz|codebase-memory-mcp-ui-darwin-arm64.tar.gz|

| macOS(Intel) |codebase-memory-mcp-darwin-amd64.tar.gz|codebase-memory-mcp-ui-darwin-amd64.tar.gz|

| Linux(x86_64) |codebase-memory-mcp-linux-amd64.tar.gz|codebase-memory-mcp-ui-linux-amd64.tar.gz|

| Linux(ARM64) |codebase-memory-mcp-linux-arm64.tar.gz|codebase-memory-mcp-ui-linux-arm64.tar.gz|

| Windows(x86_64) |codebase-memory-mcp-windows-amd64.zip|codebase-memory-mcp-ui-windows-amd64.zip|

每个版本均包含带有 SHA-256 哈希值的checksums.txt。所有二进制文件均为静态链接,无共享库依赖。

Windows 说明:SmartScreen 可能会对未签名软件显示警告。点击**"更多信息"** →"仍要运行"。可通过checksums.txt验证完整性。

Setup Scripts

自动下载 + 安装

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/scripts/setup.sh | bash

Windows(PowerShell):

irm https: // raw.githubusercontent.com / DeusData / codebase - memory - mcp / main / scripts / setup - windows.ps1 | iex

AUR (Arch Linux)

yay -S codebase-memory-mcp-bin
paru -S codebase-memory-mcp-bin

codebase-memory-mcp-bin软件包地址:https://aur.archlinux.org/packages/codebase-memory-mcp-bin

Install via Claude Code

You: "Install this MCP server: https://github.com/DeusData/codebase-memory-mcp"

Build from Source

前提条件:C 编译器 + zlib

| 依赖项 | 检查命令 | 安装方式 |

|C 编译器(gcc 或 clang) |gcc --version或clang --version| macOS:xcode-select --install,Linux:apt install build-essential|

|C++ 编译器|g++ --version或clang++ --version| 同上 |

|zlib| — | macOS:已内置,Linux:apt install zlib1g-dev|

|Git|git --version| 大多数系统已预装 |

git clone https://github.com/DeusData/codebase-memory-mcp.git cd codebase-memory-mcp scripts/build.sh # standard binary scripts/build.sh --with-ui # with graph visualization # Binary at: build/c/codebase-memory-mcp

Manual MCP Configuration

如果你不想使用安装命令

添加到~/.claude/.mcp.json(全局)或项目.mcp.json:

{ "mcpServers" : { "codebase-memory-mcp" : { "command" : " /path/to/codebase-memory-mcp " , "args" : [] } } }

重启你的 Agent。通过/mcp验证 —— 你应该看到包含 14 个工具的codebase-memory-mcp。

Multi-Agent Support

install会自动检测并配置所有已安装的 Agent:

| Agent | MCP 配置 | 指令 | Hooks |

| Claude Code |.claude/.mcp.json| 4 个 Skills | PreToolUse(Grep/Glob 图增强,非阻塞) |

| Codex CLI |.codex/config.toml|.codex/AGENTS.md| SessionStart 提醒 |

| Gemini CLI |.gemini/settings.json|.gemini/GEMINI.md| BeforeTool(grep 提醒)+ SessionStart 提醒 |

| Zed |settings.json(JSONC) | — | — |

| OpenCode |opencode.json|AGENTS.md| — |

| Antigravity |.gemini/config/mcp_config.json(共享) |antigravity-cli/AGENTS.md| SessionStart 提醒 |

| Aider | — |CONVENTIONS.md| — |

| KiloCode |mcp_settings.json|~/.kilocode/rules/| — |

| VS Code |Code/User/mcp.json| — | — |

| OpenClaw |openclaw.json| — | — |

| Kiro |.kiro/settings/mcp.json| — | — |

Hooks 在结构上为非阻塞(退出码为 0,所有失败路径均如此)。对于 Claude Code,PreToolUsehook 会拦截Grep/Glob(从不拦截Read—— 拦截Read会破坏"编辑前必须先读取"的不变性约束),当搜索 token 与已索引的符号匹配时,通过search_graph将其作为additionalContext注入,使 Agent 在获得正常搜索结果的同时得到结构化上下文。对于 Codex、Gemini CLI 和 Antigravity,SessionStarthook 会将一行代码发现提示作为会话上下文注入(Gemini CLI 还会保留其BeforeTool提醒)。已安装的 Claude shim 文件命名为cbm-code-discovery-gate,以保持与现有安装的向后兼容性;尽管名称是遗留命名,但它从不拦截、也从不阻塞。

CLI Mode

每个 MCP 工具都可以从命令行调用:

codebase-memory-mcp cli index_repository ' {"repo_path": "/path/to/repo"} ' codebase-memory-mcp cli search_graph ' {"name_pattern": ".*Handler.*", "label": "Function"} ' codebase-memory-mcp cli trace_path ' {"function_name": "Search", "direction": "both"} ' codebase-memory-mcp cli query_graph ' {"query": "MATCH (f:Function) RETURN f.name LIMIT 5"} ' codebase-memory-mcp cli list_projects codebase-memory-mcp cli --raw search_graph ' {"label": "Function"} ' | jq ' .results[].name '

MCP Tools

Indexing

| 工具 | 描述 |

|index_repository| 将仓库索引到图谱中。此后自动同步保持更新。 |

|list_projects| 列出所有已索引的项目及其节点/边数量。 |

|delete_project| 删除一个项目及其所有图谱数据。 |

|index_status| 检查某个项目的索引状态。 |

Querying

| 工具 | 描述 |

|search_graph| 按标签、名称模式、文件模式、度过滤器进行结构化搜索,支持通过 limit/offset 分页。 |

|trace_path| BFS 遍历 —— 查看谁调用了某函数,以及该函数调用了什么(别名:trace_call_path)。深度 1–5。 |

|detect_changes| 将 git diff 映射到受影响的符号及影响半径,并附带风险分类。 |

|query_graph| 执行类 Cypher 图查询(只读)。 |

|get_graph_schema| 节点/边数量、关系模式、每个标签的属性定义。建议首先运行此工具。 |

|get_code_snippet| 通过限定名读取函数的源代码。 |

|get_architecture| 代码库概览:语言、包、路由、热点、聚类、ADR。 |

|search_code| 在已索引的项目文件中进行类 grep 文本搜索。 |

|manage_adr| 架构决策记录(ADR)的增删改查。 |

|ingest_traces| 接收运行时追踪数据以验证 HTTP_CALLS 边。 |

Graph Data Model

Node Labels

Project、Package、Folder、File、Module、Class、Function、Method、Interface、Enum、Type、Route、Resource

Edge Types

CONTAINS_PACKAGE、CONTAINS_FOLDER、CONTAINS_FILE、DEFINES、DEFINES_METHOD、IMPORTS、CALLS、HTTP_CALLS、ASYNC_CALLS、IMPLEMENTS、HANDLES、USAGE、CONFIGURES、WRITES、MEMBER_OF、TESTS、USES_TYPE、FILE_CHANGES_WITH

Qualified Names

get_code_snippet使用限定名:. .。请先使用search_graph发现它们。

Supported Cypher (openCypher read subset)

query_graph是一个只读的 openCypher 子集:

  • 子句:MATCH、OPTIONAL MATCH、多个MATCH、WHERE、WITH(+WITH … WHERE)、RETURN、ORDER BY、SKIP、LIMIT、DISTINCT、UNWIND、UNION/UNION ALL、CASE。

  • 模式:带标签节点、标签备选(n:A|B)、关系类型/方向、可变长路径[*1..3]、内联属性映射。

  • WHERE:= <> >=、AND/OR/XOR/NOT、IN、CONTAINS、STARTS WITH、ENDS WITH、IS [NOT] NULL、正则=~、标签测试n:Label,以及EXISTS { (n)-[:TYPE]->() }(单跳存在性检查 —— 非常适合死代码检测,例如 `WHERE NOT EXISTS { (f)

| 变量 | 默认值 | 描述 |

|CBM_CACHE_DIR|~/.cache/codebase-memory-mcp| 覆盖数据库存储目录。所有项目索引和配置均存储于此。 |

|CBM_DIAGNOSTICS|false| 设为1或true以开启定期诊断输出到/tmp/cbm-diagnostics- .json。 |

|CBM_DOWNLOAD_URL|(GitHub releases)| 覆盖更新的下载 URL。用于测试或自托管部署。 |

|CBM_LOG_LEVEL|info| 设置最低日志级别。可接受的值(大小写不敏感):debug、info、warn、error、none—— 或其对应的数字值0–4,与内部枚举对应。日志输出到 stderr;stdout 保留给 MCP JSON-RPC。 |

|CBM_WORKERS|(自动检测)| 覆盖cbm_default_worker_count返回的并行索引 worker 数量。在容器内sysconf(_SC_NPROCESSORS_ONLN)上报的是宿主机 CPU 数而非 cgroup 的有效配额时特别有用。范围 1–256;无效值会被忽略并输出警告。 |

# Store indexes in a custom directory export CBM_CACHE_DIR= ~ /my-projects/cbm-data

Custom File Extensions

通过 JSON 配置文件将额外的文件扩展名映射到已支持的语言。适用于框架专属扩展名,如.blade.php(Laravel)或.mjs(ES modules)。

按项目配置(放在你的仓库根目录):

// .codebase-memory.json { "extra_extensions" : { ".blade.php" : " php " , ".mjs" : " javascript " }}

全局配置(适用于所有项目):

// ~/.config/codebase-memory-mcp/config.json (or $XDG_CONFIG_HOME/...) { "extra_extensions" : { ".twig" : " html " , ".phtml" : " php " }}

项目配置会覆盖全局配置中冲突的扩展名。未知的语言值会被静默跳过,缺失的配置文件会被忽略。

Persistence

SQLite 数据库存储于~/.cache/codebase-memory-mcp/。跨重启持久化(WAL 模式,ACID 安全)。如需重置:rm -rf ~/.cache/codebase-memory-mcp/。

Troubleshooting

| 问题 | 解决方法 |

|/mcp未显示服务器 | 检查.mcp.json路径是否为绝对路径。重启 Agent。测试:echo '{}' \| /path/to/binary应输出 JSON。 |

|index_repository失败 | 传入绝对路径:index_repository(repo_path="/absolute/path")|

|trace_path返回 0 条结果 | 先使用search_graph(name_pattern=".*PartialName.*")找到确切名称。 |

| 查询返回错误项目的结果 | 添加project="name"参数。使用list_projects查看名称。 |

| 安装后找不到二进制文件 | 添加到 PATH:export PATH="$HOME/.local/bin:$PATH"|

| UI 无法加载 | 确认下载的是ui变体并已运行--ui=true。检查http://localhost:9749。 |

Hybrid LSP

超越 tree-sitter 的语义类型解析。

tree-sitter 单独提供的是语法 AST,能很好地处理命名、结构和调用点,但它无法告诉你user.profile.display_name()解析到三个模块之外声明的Profile.display_name—— tree-sitter 不追踪导入、泛型、继承或标准库类型。

codebase-memory-mcp 内置了一套轻量级 C 语言实现的类型解析算法,在结构上受主流语言服务器(tsserver / typescript-go、pyright、gopls、Roslyn、Eclipse JDT、rust-analyzer)启发并与之兼容,直接嵌入静态二进制文件中。无需启动语言服务器进程,无需逐项目配置,无需 API Key。我们将这一层称为Hybrid LSP:它在每次解析时与 tree-sitter 并行运行,并使用类型信息精化CALLS、USAGE和RESOLVED_CALLS边,使生成的图谱能够反映 IDE"跳转到定义"所能解析的结果。

已完整支持 Hybrid LSP 的语言:

| 语言 | 处理范围 |

|Python(v0.7.0 新增)| import 及带点号的子模块遍历、dataclass、Self返回类型、泛型、@property、match/case类模式、SQLAlchemy 2.0Mapped[T]、PydanticBaseModel、typing.Annotated/ClassVar/Final/InitVar、async/await、classmethod/staticmethod、类型收窄(isinstance/is not None/ walrus)、typing.cast/assert_type、常用标准库(logging、pathlib、json、functools)。目标:对符合惯用法的代码达到约 95% 的解析率。 |

|TypeScript / JavaScript / JSX / TSX| 泛型、JSX 组件分发、面向纯 JS 的 JSDoc 推断、.d.ts声明、模块重导出、基于返回类型传播的方法链、按文件的覆盖层链接到共享的跨文件注册表 |

|PHP(v0.7.0 新增)| 命名空间、trait、后期静态绑定、PHPDoc 推断、参数绑定、返回类型推断 |

|C#(v0.7.0 新增)| 全局 using、文件作用域命名空间、record(包含 C# 12 主构造函数)、LINQ 方法语法、async Task/ValueTask解包、泛型方法、this/base分发、var推断、常用 BCL 标准库 |

|Go(v0.7.0 强化)| 预构建的按包跨文件注册表、泛型、嵌入式结构体、接口满足性检查、包感知的 import 解析 |

|C / C++(v0.7.0 强化)| 预构建的跨文件注册表,在 C 和 C++ 之间共享;C 侧处理宏 +typedef链 + 头文件与源文件的关联;C++ 侧处理模板、命名空间、auto推断以及基于类层次结构的方法解析 |

|Java(v0.8.0 新增)| import(单类型、按需、静态)、带this/super分发的类层次结构、泛型、注解、按参数个数和参数类型的重载匹配、绑定到函数式接口的 lambda / 方法引用、字段类型推断、常用 JDK 标准库 |

|Kotlin(v0.8.0 新增)| import + 同包解析、class / object / companion object、扩展函数、data class、可空类型解包、作用域函数(let/apply/run/also/with)、中缀调用、常用标准库 |

|Rust(v0.8.0 新增)|use声明 + 模块路径、impl块及 trait 方法、结构体字段、带 trait 约束的泛型、运算符 trait 去语法糖、derive 宏方法合成、UFCS 静态路径、常用 std prelude |

双层架构:

  • Tree-sitter 层— 快速、基于语法,适用于全部 158 种语言。负责提取定义、调用和 import。

  • Hybrid LSP 层— 类型感知,运行于 tree-sitter 层之上,按语言生效。利用 import 图以及按文件或预构建的跨文件定义注册表来精化调用边。尚未支持 Hybrid LSP 的语言会回退到基于文本的解析,因此始终能得到某种结果。

最终生成的知识图谱精确度足以驱动跨包、继承层次结构和标准库调用的trace_path——而无需为每个项目单独启动语言服务器进程。

语言支持

共 158 种语言,全部通过内嵌到二进制文件中的 tree-sitter 语法解析器进行解析。已在 64 个真实开源仓库(节点数从 78 到 49K 不等)上完成基准测试:

| 等级 | 得分 | 语言 |

|优秀(>= 90%) | | Lua、Kotlin、C++、Perl、Objective-C、Groovy、C、Bash、Zig、Swift、CSS、YAML、TOML、HTML、SCSS、HCL、Dockerfile |

|良好(75-89%) | | Python、TypeScript、TSX、Go、Rust、Java、R、Dart、JavaScript、Erlang、Elixir、Scala、Ruby、PHP、C#、SQL |

|可用(< 75%) | | OCaml、Haskell |

另支持以下语言(暂未完成基准测试):Ada、Agda、Apex、Assembly (NASM)、Astro、AWK、Beancount、BibTeX、Bicep、Bitbake、Blade、Cairo、Cap'n Proto、Clojure、CMake、COBOL、Common Lisp、Crystal、CSV、CUDA、D、Devicetree、Diff、.env、Elm、Emacs Lisp、F#、Fennel、Fish、FORM、Fortran、FunC、GDScript、.gitattributes、.gitignore、Gleam、GLSL、GN、Go module、Go template、GraphQL、Hare、HLSL、Hyprlang、INI、ISPC、Janet、Jinja2、JSDoc、JSON、JSON5、Jsonnet、Julia、Just、Kconfig、KDL、Lean 4、Linker Script、Liquid、LLVM IR、Luau、Magma、Makefile、Markdown、MATLAB、Mermaid、Meson、Move、Nickel、Nim、Nix、Odin、Pascal、Pkl、PO (gettext)、Pony、PowerShell、Prisma、.properties、Protobuf、Puppet、PureScript、Racket、Regex、requirements.txt、ReScript、RON、reStructuredText、Scheme、Slang、Smali、Smithy、Solidity、SOQL、SOSL、Squirrel、SSH config、Starlark、Svelte、Sway、SystemVerilog、TableGen、Tcl、Teal、Templ、Thrift、TLA+、Typst、Verilog、VHDL、Vim script、Vue、WGSL、WIT、Wolfram、XML、Zsh。

架构

src/ main.c Entry point (MCP stdio server + CLI + install/update/config) mcp/ MCP server (14 tools, JSON-RPC 2.0, session detection, auto-index) cli/ Install/uninstall/update/config (10 agents, hooks, instructions) store/ SQLite graph storage (nodes, edges, traversal, search, Louvain) pipeline/ Multi-pass indexing (structure → definitions → calls → HTTP links → config → tests) cypher/ Cypher query lexer, parser, planner, executor discover/ File discovery (.gitignore, .cbmignore, symlink handling) watcher/ Background auto-sync (git polling, adaptive intervals) traces/ Runtime trace ingestion ui/ Embedded HTTP server + 3D graph visualization foundation/ Platform abstractions (threads, filesystem, logging, memory) internal/cbm/ Vendored tree-sitter grammars (158 languages) + AST extraction engine

安全性

每个发布的二进制文件在发布前均经过多层流水线验证:

  • VirusTotal— 所有二进制文件通过 70+ 款杀毒引擎扫描(发布要求零检出)

  • SLSA Level 3— 由 GitHub Actions 生成加密构建来源证明;可使用gh attestation verify --repo DeusData/codebase-memory-mcp进行验证

  • Sigstore cosign— 对所有产物进行无密钥签名;每次发布均附带签名包

  • SHA-256 校验和— 每次发布随附checksums.txt;两个安装脚本在解压前均会进行验证

  • CodeQL SAST— 若存在任何未解决的告警,则阻断发布流水线

  • 零运行时依赖— 无传递性供应链风险;所有库均在编译时静态内嵌

v0.7.0 VirusTotal 扫描结果

| 二进制文件 | SHA-256 | VirusTotal |

|linux-amd64|8e12bb2d6ead7f20a6d3...| 0/72 ✅ |

|linux-arm64|10f7136bfbf3950c6b2a...| 0/72 ✅ |

|darwin-arm64|7062a7408906344bf4f8...| 0/72 ✅ |

|darwin-amd64|28c6d640e1a0ac7bfcab...| 0/72 ✅ |

|windows-amd64|9c3ddcf78368fd4fa891...| 0/72 ✅ |

每次发布的扫描链接也会自动附在 GitHub Release 说明中。

许可证

MIT

相关新闻

  • Python知识分享(解决安装速度慢的问题)
  • 嵌入式GUI开发实战:emWin字体系统深度解析与XBF外置字体应用
  • 10分钟掌握PhotoGIMP:让GIMP秒变Photoshop的终极解决方案

最新新闻

  • 哑变量原理与m-1编码实战:机器学习分类特征处理核心指南
  • 零样本学习:让AI像人一样类比推理的技术解析
  • RL+KG+MCP:AI工程落地的三大支柱技术实践
  • JAX核心原理:纯函数、XLA编译与可微分编程三要素
  • 香精香料行业数字化转型工具盘点:2026年PLM系统在配方与感官评价中的应用
  • 工业CV项目落地实战:数据、部署与产线鲁棒性全链路解析

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号