代码结构分析工具对比分析

1. 项目总览

本次调查聚焦两类工具:图谱类(将代码库转化为知识图谱/依赖图)和 知识库类(为 AI 助手提供结构化代码上下文)。以下六个项目按星标降序排列。

Graphify

safishamsi/graphify
⭐ 35,912
PythonMIT

面向 AI 编码助手的跨语言知识图谱构建工具。支持 25 种语言 + 多模态文件(文档/图片/视频),71.5 倍 token 压缩率。

PythonJS/TSGoRustJavaC/C++C#KotlinRubyPHPSwiftScalaLuaZigElixirJuliaPowerShellObjCVerilogVueSvelteDart

CodeGraphContext

CodeGraphContext/CodeGraphContext
⭐ 3,061
PythonMIT

将代码仓库索引为可查询图谱,支持 14 种语言,提供 CLI + MCP 双模式和交互式 HTML 可视化。

PythonJSTSJavaC/C++C#GoRustRubyPHPSwiftKotlinDartPerl

madge

pahen/madge
⭐ 10,055
JavaScriptMIT

经典的 JS/TS 模块依赖可视化工具,即开即用,支持 CSS 预处理器,10k+ 星社区验证。

JSTSSassStylusLess

dependency-cruiser

sverweij/dependency-cruiser
⭐ 6,600
JavaScriptMIT

JS/TS 依赖验证 + 可视化工具,拥有强大的自定义规则引擎,可在 CI/CD 中强制执行架构纪律。

JSTSCoffeeScriptLiveScriptVue SFCSvelte

Axon

harshkedia177/axon
⭐ 674
Python无许可证

端到端代码智能引擎,12 阶段深度分析管线,交互式 Web 仪表盘 + MCP 集成,分析能力最深入。

PythonTS/TSXJS/JSX

code-to-knowledge-graph

Bevel-Software/code-to-knowledge-graph
⭐ 150
KotlinMPL 2.0

基于 VS Code LSP 的 Kotlin/JVM 库,可将代码转化为知识图谱,适合作为可嵌入组件集成到 JVM 项目中。

取决于 LSP

2. 综合对比表

维度 Graphify CodeGraphContext madge dep-cruiser Axon code-to-kg
星标35,9123,06110,0556,600674150
支持语言数25 种14 种6 种7 种3 种取决于 LSP
主要语言PythonPythonJavaScriptJavaScriptPythonKotlin
许可证MITMITMITMITMPL 2.0
核心定位多模态知识图谱通用图谱工具包依赖可视化依赖验证+可视化代码智能引擎可嵌入库
可视化输出交互式 HTMLHTML (力导向/层次)DOT/SVGDOT/Mermaid/HTMLWebGL 仪表盘Neo4j
MCP/AI 集成✅ 17+ 平台✅ 10+ IDE✅ Claude/Cursor
社区检测✅ Leiden✅ Leiden
死代码检测
CI/CD 规则验证✅ 强大
创建时间2026-042025-08早期早期2026-022025-05

3. 语言支持详细矩阵

3.1 主流编程语言支持

语言GraphifyCodeGraphContextAxondep-cruisermadgecode-to-kg
Python (.py)✅ AST + 调用图✅ 函数/类/继承✅ 框架感知入口点取决于 LSP
JavaScript (.js/.jsx/.mjs/.cjs)✅ 框架感知✅ ES6/CJS/AMD✅ ES6/CJS/AMD取决于 LSP
TypeScript (.ts/.tsx)✅ 类型引用分析✅ 可跳过类型导入✅ 可跳过类型导入取决于 LSP
Go (.go)取决于 LSP
Rust (.rs)取决于 LSP
Java (.java)✅ extends/implements取决于 LSP
C / C++ (.c/.cpp/.h)取决于 LSP
C# (.cs)取决于 LSP
Ruby (.rb)取决于 LSP
Kotlin (.kt)✅ (原生)
PHP (.php)取决于 LSP
Swift (.swift)取决于 LSP
Dart (.dart)取决于 LSP

3.2 独有/小众语言支持

语言GraphifyCodeGraphContextAxondep-cruisermadge
Scala (.scala)✅ 独有
Lua (.lua)✅ 独有
Zig (.zig)✅ 独有
PowerShell (.ps1)✅ 独有
Elixir (.ex/.exs)✅ 独有
Julia (.jl)✅ 独有
Objective-C (.m/.mm)✅ 独有
Verilog / SV✅ 独有
Perl (.pl)✅ 独有
CoffeeScript✅ 独有
LiveScript✅ 独有
Vue SFC (.vue)✅ Vue2/Vue3
Svelte (.svelte)✅ v4
Sass / SCSS✅ 独有
Stylus✅ 独有
Less✅ 独有
多模态文件✅ PDF/图片/视频/音频/Office部分 (笔记本)

3.3 各工具语言支持特性对比

特性GraphifyCodeGraphContextAxondep-cruisermadge
AST 解析器Tree-sitter (本地)Tree-sitterTree-sitterAcorn + tscdependency-tree
调用图提取✅ 跨文件✅ 框架感知❌ (仅模块依赖)❌ (仅模块依赖)
类型引用分析✅ 参数/返回值/变量注解✅ (可跳过)✅ (可跳过)
继承关系✅ extends/implements (Java)✅ 所有语言✅ EXTENDS/IMPLEMENTS
内置函数过滤✅ 138 个内置过滤
框架入口点检测✅ Python: Flask/Django/Click 等
文档/注释提取✅ docstring + rationale✅ 函数签名

4. Graphify 深度分析

Graphify 是当前星标最高的项目(35,912 ⭐),定位为面向 AI 编码助手的跨语言多模态知识图谱构建工具。其核心创新在于将代码、文档、论文和图片统一到一个可查询的图谱中。

架构管线(7 阶段)

detect extract build cluster analyze report export

语言支持详情

Graphify 通过 Tree-sitter 本地解析支持 25 种编程语言,所有语言获得同等对待——不存在一等/实验分级。每种语言均获得:

此外还支持非代码文件:Markdown/HTML/RST 文档、Office 文档、PDF 论文、PNG/JPG/WEBP/GIF 图片、MP4/MOV 视频、MP3/WAV 音频——这些文件通过 LLM 视觉模型提取语义节点。

AI 助手集成(17+ 平台)

🤖 与 Claude 配合使用建议

推荐指数:⭐⭐⭐⭐⭐ (最高)

使用方式:安装后运行 /graphify 命令,Graphify 会自动写入 CLAUDE.md 和 PreToolUse 钩子。每次在 Claude Code 中使用 Glob/Grep 搜索文件时,钩子会自动注入图谱上下文。

推荐理由:Graphify 与 Claude 的集成是六个项目中最为深入的——它不仅是一个 MCP 工具,而是通过 CLAUDE.md + PreToolUse 钩子实现了"始终在线"的图谱上下文注入。对于 Claude 编码场景,这意味着:(1)搜索文件时自动获得相关调用图上下文;(2)查询成本降低 71.5 倍(平均 1.7k tokens);(3)25 种语言覆盖,几乎能处理所有项目。这是 Claude 用户的首选方案。

建议命令:graphify ./your-project 构建图谱后,在 Claude Code 中使用 /graphify query "哪些函数调用了 X?"/graphify explain ./src/main.py

优势

  • 星标最高,社区关注度最大
  • 语言支持最广(25 种 + 多模态)
  • 与 Claude Code 深度集成(CLAUDE.md + 钩子)
  • 71.5 倍 token 压缩率
  • MIT 许可,无遥测数据收集
  • 模块化 7 阶段管线,可独立扩展

局限性

  • 不自带 LLM,需用户配置 API 密钥
  • 语义提取依赖外部 LLM API 调用,有成本
  • 偏向知识图谱生成,非通用图数据库
  • 创建时间短(2026-04),成熟度待验证

5. CodeGraphContext 深度分析

CodeGraphContext 是通用代码图谱工具包中语言支持最广的项目(14 种),拥有 3,061 星标和 MIT 许可,提供 CLI + MCP 双模式。

语言支持详情

支持 14 种语言,所有语言获得"完全支持"——无实验/部分分级。每种语言均提取:

独有语言支持:Perl 仅 CodeGraphContext 支持。还支持 Jupyter Notebook(nbformat + nbconvert)。

核心功能

🤖 与 Claude 配合使用建议

推荐指数:⭐⭐⭐⭐

使用方式:运行 python -m codegraphcontext mcp setup,选择 Claude,自动生成 MCP 配置。之后可用自然语言查询代码关系。

推荐理由:CodeGraphContext 的优势在于 14 种语言支持和多数据库后端。适合多语言项目(如同时使用 Python + Go + Rust 的项目)。其 MCP 工具支持自然语言查询("什么函数调用了 X?"、"显示 Y 的继承层次"),对 Claude 很友好。缺点是缺少深度分析能力(无执行流追踪、无社区检测),如果只需要基本的代码关系查询和可视化,这是性价比最高的选择。

建议场景:多语言项目中快速查询函数调用关系、类继承层次、发现死代码

优势

  • 14 种语言覆盖广
  • MIT 许可,社区成熟(3,061 ⭐)
  • 多数据库后端灵活适配
  • 完善的 CI/CD(测试 + E2E)
  • 自动 MCP 配置向导

局限性

  • 开放 Issues 高达 179 个
  • 缺少深度分析能力
  • 功能相对基础
  • 依赖外部数据库时部署复杂度增加

6. Axon 深度分析

Axon 是功能最深入的代码智能引擎,拥有 12 阶段深度分析管线,虽然星标较少(674),但分析能力远超其他项目。

语言支持详情

仅支持 3 种语言(Python、TypeScript、JavaScript),但分析深度远超同类:

AI 助手集成

🤖 与 Claude 配合使用建议

推荐指数:⭐⭐⭐⭐ (特定场景最高)

使用方式:运行 axon serve --watch 启动 MCP 服务,然后 axon setup --claude 配置 Claude MCP。

推荐理由:如果你主要使用 Python/TypeScript,Axon 是分析深度最高的选择。它的框架感知入口点检测、执行流追踪、Git 变更耦合分析都是独有功能。MCP 工具响应自带下一步建议提示,对 Claude 的 agentic workflow 非常友好。适合需要深度代码理解、影响范围评估和死代码检测的场景。局限性是仅支持 3 种语言且无开源许可证。

建议场景:Python/TS 项目的重构前影响分析、死代码清理、架构审计

优势

  • 分析能力最全面深入
  • 交互式 Web UI 体验优秀
  • 框架感知的入口点和死代码检测
  • Git 历史耦合分析独有
  • MCP 工具响应自带下一步建议

局限性

  • 仅支持 3 种语言(Python/TS/JS)
  • 无开源许可证
  • 星标 674,社区验证不足
  • 创建时间新(2026-02),成熟度待观察

7. 传统依赖可视化工具

madge 和 dependency-cruiser 是 JS/TS 生态中最成熟的两个依赖可视化工具,分别代表了"快速可视化"和"规则验证"两个方向。

语言支持详情

维度madge (⭐ 10,055)dependency-cruiser (⭐ 6,600)
核心定位依赖可视化 + 分析依赖验证 + 可视化(规则引擎)
JS 模块格式AMD / CommonJS / ES6ES6 / CommonJS / AMD
TS 支持需 tsConfig 配置路径解析支持 --ts-pre-compilation-deps
CSS 预处理器 Sass/Stylus/Less
Vue / Svelte✅ Vue2/Vue3 + Svelte v4
CI/CD 集成弱(仅报告)(类 eslint 规则验证)
输出格式DOT / SVG / JSONDOT / Mermaid / JSON / CSV / HTML / 文本
自定义规则不支持支持(精细 from/to 路径规则)
Webpack 别名支持支持
动态 import✅(静态字符串参数)
JSDoc @import✅ detectJSDocImports
开放 Issues12236

🤖 与 Claude 配合使用建议

推荐指数:⭐⭐⭐ (JS/TS 项目专用)

使用方式:这两个工具均无 MCP/AI 集成。与 Claude 配合时,建议在 Claude 的 prompt 中要求生成 madge/dep-cruiser 命令,然后查看输出的 SVG/HTML 文件。

推荐理由:这两个工具适合纯 JS/TS 项目。madge 适合快速查看依赖图和循环依赖;dependency-cruiser 适合在 CI/CD 中强制执行架构规则。它们没有 AI 集成,但在 JS/TS 生态中是最成熟、最稳定的选择。如果你的项目仅使用 JS/TS,这两个工具仍然是值得保留的。

8. code-to-knowledge-graph 简评

基于 VS Code LSP 的 Kotlin/JVM 库,星标 150,最近推送在 2025-06(已近 10 个月未更新)。

优势

  • 基于 VS Code LSP,理论上语言覆盖广
  • Kotlin/JVM 生态,适合 Java 项目集成
  • 架构为可扩展库,可嵌入其他应用
  • MinHashing 代码相似度分析(独有功能)

局限性

  • 已近 10 个月未更新,活跃度极低
  • 不支持 MCP 集成
  • 无独立 CLI,依赖 VS Code 扩展
  • 缺少深度分析功能
  • 依赖 VS Code 实例,资源开销大

🤖 与 Claude 配合使用建议

推荐指数:⭐⭐ (不推荐)

不推荐理由:无 MCP 集成、不活跃维护、无 CLI 工具,无法与 Claude 形成自动化工作流。仅在对 JVM 生态有特定嵌入需求时考虑。

该项目目前更适合对 JVM 生态有特定嵌入需求的场景,不作为通用推荐。

9. Claude 集成建议总览

以下按使用场景推荐最适合与 Claude Code 配合的工具及集成方式。

场景推荐工具集成方式理由
通用多语言项目
(3+ 种语言)
GraphifyCLAUDE.md + PreToolUse 钩子25 种语言覆盖,钩子自动注入图谱上下文,搜索时获得调用图
纯 Python/TS 项目
深度分析 + 重构
AxonMCP Server + axon setup --claude框架感知入口点、执行流追踪、死代码检测、影响范围分析
快速查询代码关系
(调用链、继承、死代码)
CodeGraphContextMCP Server + cgc mcp setup14 种语言、自然语言查询、多数据库后端
JS/TS 项目架构治理
(CI/CD 规则验证)
dependency-cruiserCI/CD 规则文件精细 from/to 路径规则,类 eslint 集成,Mermaid/HTML 输出
JS/TS 快速依赖检查madgeCLI 命令即开即用,SVG 依赖图,CSS 预处理器支持
降低 Claude 上下文 token 成本GraphifyMCP Server 模式71.5 倍压缩率(123k → 1.7k tokens/查询)

集成优先级建议

第一优先级(立即安装)

Graphify — 如果你使用 Claude Code 且项目涉及多种语言。安装后自动获得 CLAUDE.md + 钩子集成,搜索文件时自动获得调用图上下文。多模态支持还能帮你理解文档和论文与代码的关系。

第二优先级(按需安装)

Axon — 如果你的主要工作是 Python/TS 项目的重构和死代码清理。它的框架感知分析和 Git 变更耦合是独有功能,能帮你在重构前评估影响范围。

CodeGraphContext — 如果你需要覆盖 Graphify 不支持的 Perl 语言,或需要多数据库后端(Neo4j 等)的企业级部署。

第三优先级(可选保留)

madge / dependency-cruiser — 仅在纯 JS/TS 项目中有价值。Graphify 已覆盖 JS/TS 的 AST 分析,这两个工具在 CI/CD 规则验证和 CSS 预处理器支持方面仍有不可替代的场景。

10. 总结与选型建议

场景一:AI 编码助手的知识图谱集成

推荐 Graphify — 25 种语言 + 多模态、71.5 倍 token 压缩、CLAUDE.md + PreToolUse 钩子自动注入上下文。Claude 用户的首选方案。

场景二:多语言项目的通用代码图谱

推荐 CodeGraphContext — 14 种语言、MIT 许可、多数据库后端、成熟的 CI/CD。适合覆盖 Graphify 不支持的语言(如 Perl)或需要 Neo4j 等外部数据库的场景。

场景三:深度代码分析与影响评估

推荐 Axon — 12 阶段管线、框架感知入口点、执行流追踪、Git 变更耦合。适合 Python/TS 项目的重构前影响分析和死代码检测。

场景四:JS/TS 项目的架构治理

推荐 dependency-cruiser — 自定义规则引擎 + CI/CD 集成,可在构建流程中强制架构纪律。快速查看则选 madge(支持 CSS 预处理器)。

趋势总结

2025-2026 年代码结构工具的核心趋势:知识图谱 + AI 助手集成(MCP) 成为新方向。传统工具(madge/dependency-cruiser)侧重依赖可视化与验证,新一代工具(Graphify/CodeGraphContext/Axon)则将代码转化为可查询的图谱,为 AI 编码助手提供结构化上下文。Tree-sitter 静态分析 + 图数据库 + Leiden 社区检测 是当前最主流的技术组合。

数据来源