mcpField
C
code-graph

code-graph

本地服务
code-graph.cyberchronos00.workers.dev开发工具41 周前更新

关于 code-graph

code-graph 是面向开发者和 AI Agent 的本地依赖图工具,提供 CLI 与 MCP 服务。它以确定性分析追踪路由、调用、表和配置之间的影响,并为每段关系给出文件行号证据,不在图分析中使用 LLM。

主要功能

  1. 01追踪调用方、路由和数据表依赖
  2. 02按文件与行号展示关系证据
  3. 03分析变更影响及相关测试
  4. 04跨仓库连接客户端调用与服务路由
  5. 05输出安全面与发现结果
  6. 06提供图形视图和计划检查

适用场景

  1. 01变更前查找受影响的路由与调用方
  2. 02确定代码变更涉及的测试入口
  3. 03检查未受保护的写入路由
  4. 04审查跨仓库 HTTP 请求与服务路由

MCP 相关

code-graph 提供 cg-mcp MCP 服务,让 Agent 查询依赖图而非直接搜索代码;单个服务可提供多个图。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cyberchronos00-cg-code-graph": {
"command": "uvx",
"args": [
"cg-code-graph"
]
}
}
}
启动命令uvx cg-code-graph

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicg-code-graph0.23.13

工具

13

收录的工具列表 · 更新于 1 周前

参数类型必填说明
pathsboolean否
targetsarray是
group_bystring否
platformany否
connectionany否
include_gatedboolean否
max_per_groupinteger否
min_confidencestring否

详细介绍

code-graph

在修改之前,先查看每项改动会影响什么:本地、确定性的依赖图,涵盖路由、调用、表和配置,每一跳都有 file:line 证据。

供你和你的 AI Agent 使用(命令行 + MCP)。图中不使用 LLM。

PyPI Downloads Python 3.11+ License: MIT Docs

文档 · 快速开始 · 命令行 · MCP · 更新日志

cg 可视化视图:仓库连接周围的图,其中选中节点显示其证据路径和源代码,随后显示针对预购计划的改动规划叠加层

快速开始

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

终端演示:cg 为内置的 Laravel 和 Nuxt 示例应用建立索引并将它们连接起来,然后运行 reaches、path、impact 和 plan check

支持的语言

语言框架和事实调用文档
PythonDjango(+ DRF、django-ninja)、FastAPI / Starlette、Flask、Celery精确(标准库 ast)Python
TypeScript JavaScriptNuxt / Vue、NestJS、Next.js、Astro、Express、Fastify、Koa、Hono、Elysia、React Router / Remix精确(TypeScript 编译器 API)TS 框架
PHPLaravel(路由、路由属性、中间件、队列、广播、出站 HTTP)精确(nikic/php-parser;需要 PHP 8.2+)PHP
DartFlutter精确(Dart 分析器;需要 Dart SDK)平台
KotlinAndroid、Kotlin Multiplatform、Spring启发式;使用 scip-java 可精确(选择启用)Kotlin
JavaSpring(路由、守卫、Bean、表、客户端)启发式;使用 scip-java 可精确(选择启用)Java
SwiftiOS / SwiftPM启发式;使用 Swift 索引存储可精确(选择启用)Swift
Rust C C++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.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。