关于 code-graph
code-graph 是面向开发者和 AI Agent 的本地依赖图工具,提供 CLI 与 MCP 服务。它以确定性分析追踪路由、调用、表和配置之间的影响,并为每段关系给出文件行号证据,不在图分析中使用 LLM。
主要功能
- 01追踪调用方、路由和数据表依赖
- 02按文件与行号展示关系证据
- 03分析变更影响及相关测试
- 04跨仓库连接客户端调用与服务路由
- 05输出安全面与发现结果
- 06提供图形视图和计划检查
适用场景
- 01变更前查找受影响的路由与调用方
- 02确定代码变更涉及的测试入口
- 03检查未受保护的写入路由
- 04审查跨仓库 HTTP 请求与服务路由
MCP 相关
code-graph 提供 cg-mcp MCP 服务,让 Agent 查询依赖图而非直接搜索代码;单个服务可提供多个图。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| paths | boolean | 否 | |
| targets | array | 是 | |
| group_by | string | 否 | |
| platform | any | 否 | |
| connection | any | 否 | |
| include_gated | boolean | 否 | |
| max_per_group | integer | 否 | |
| min_confidence | string | 否 |
详细介绍
code-graph
在修改之前,先查看每项改动会影响什么:本地、确定性的依赖图,涵盖路由、调用、表和配置,每一跳都有 file:line 证据。
供你和你的 AI Agent 使用(命令行 + MCP)。图中不使用 LLM。
快速开始
pipx install cg-code-graph # or: uv tool install cg-code-graph
cg index . --db out/graph.db # prints starter queries for your repo
cg install --host cursor # or claude, codex, vscode, …: registers the MCP server and a "use cg first" agent rule
cg reaches table:orders --db out/graph.db # any table, connection or config key
在内置示例上试用、将前端连接到后端,或通过 MCP 连接 Agent:快速开始指南。其他安装选项(install.sh、Windows、精确模式工具链):安装。
在内置 Django 示例上运行 cg reaches table:store_books:
dependents: 18 nodes (code: 6, entry points: 9, other: 3)
== RUNTIME (reached from http_route / ... / queue_job / listener): 5 functions/methods
catalog.api.create_book depth=1 conf=resolved http_route(1)
path: function:catalog.api.create_book
-WRITES_TABLE[resolved @ catalog/api.py:27]-> table:store_books
catalog.signals.review_saved depth=3 conf=resolved listener(1)
path: function:catalog.signals.review_saved
-DISPATCHES[exact @ catalog/signals.py:12]-> job:catalog.tasks.recompute_rating
-HANDLED_BY[exact @ catalog/tasks.py:13]-> function:catalog.tasks.recompute_rating
-READS_TABLE[resolved @ catalog/tasks.py:14]-> table:store_books
支持的语言
| 语言 | 框架和事实 | 调用 | 文档 |
|---|---|---|---|
| Django(+ DRF、django-ninja)、FastAPI / Starlette、Flask、Celery | 精确(标准库 ast) | Python | |
| Nuxt / Vue、NestJS、Next.js、Astro、Express、Fastify、Koa、Hono、Elysia、React Router / Remix | 精确(TypeScript 编译器 API) | TS 框架 | |
| Laravel(路由、路由属性、中间件、队列、广播、出站 HTTP) | 精确(nikic/php-parser;需要 PHP 8.2+) | PHP | |
| Flutter | 精确(Dart 分析器;需要 Dart SDK) | 平台 | |
| Android、Kotlin Multiplatform、Spring | 启发式;使用 scip-java 可精确(选择启用) | Kotlin | |
| Spring(路由、守卫、Bean、表、客户端) | 启发式;使用 scip-java 可精确(选择启用) | Java | |
| iOS / SwiftPM | 启发式;使用 Swift 索引存储可精确(选择启用) | Swift | |
crate / 模块、入口点、FFI、#[cfg] / #if 门控 | 启发式;使用 rust-analyzer / scip-clang 可精确 | Rust、C 和 C++ |
Go 和其他语言:使用 cg index --scip FILE 导入 SCIP 索引。运行 cg doctor 可查看本机各语言的精确 / 启发式支持情况。
你将获得
reaches、impact、path:查找所有可到达某个表、配置键或方法的调用方、路由、作业和页面。cg affected --base main:查找某项更改可到达的测试和入口点(--quiet可将结果传给测试运行器)。- 跨仓库:
cg link将客户端 HTTP 调用(前端以及 Laravel / Guzzle 后端)与服务端路由匹配,并检查请求键(Laravel FormRequest、Elysia schemas、Nuxt / TypeScript 请求体)。 - 路由守卫:
cg routes --writes --unguarded列出没有身份验证守卫且会写入数据的路由。除非使用--strict,否则 Laravel 操作内部的检查也视为内联守卫。 - 安全视图:
cg surface以文本、JSON 或 SARIF 格式列出入站 / 出站攻击面和发现项(硬编码凭据、明文协议、未验证的 Webhook、无守卫的处理器、监听所有接口、已禁用的 TLS / SSH 验证、明文 gRPC、暴露的 IPC、根据请求输入构建的出站 URL);还支持--fail-on,供 CI 使用。 - MCP 服务(
cg-mcp),让 Agent 查询图,而不是使用 grep。一个服务可以提供多个图(graphs加可选的graph参数);单个--db仍对应一个图。参见 MCP。 - 可视化视图(
cg serve)和计划检查(cg plan check),用于检查计划中的更改。
Docs
Install · Quick start · CLI · MCP · Configuration · Architecture · Limitations
Changelog · Contributing · Security · MIT License
More recordings: docs/media.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

