SuperAPI AI 工具集

gograph

gograph 是一个本地运行的 Go 静态分析引擎,内置 MCP 服务器,为 AI 编程代理提供确定性的代码结构感知能力,包括调用图、影响分析、符号搜索等。它通过构建仓库的结构图,帮助代理在不依赖 grep 的情况下理解 Go 代码库中的结构体嵌入、公共 API 表面、SQL 查询和错误映射等。支持 CLI 和 MCP 工作流,可追踪调用者和接口实现、规划变更影响并执行架构约束,无需嵌入或托管代码索引。

访问官网

工具介绍

gograph 是一个本地运行的 Go 静态分析引擎,内置 MCP 服务器,旨在为 AI 编程代理提供确定性的代码结构感知能力。它通过构建仓库的结构图,帮助代理在不依赖 grep 的情况下理解 Go 代码库中的结构体嵌入、公共 API 表面、SQL 查询和错误映射等。

主要能力

  • 符号查询:支持 path/to/file.go:Name、path/to/file.go:Receiver.Method 或导入限定的文件路径,可查询结构体字段,--no-tests 排除测试文件行。
  • 调用图与影响分析:追踪调用者和接口实现,规划变更影响,支持精确/可能影响分析。
  • 变更评估:review --uncommitted 包含已删除声明,但明确不评估历史调用者、测试和风险。
  • 架构约束:通过策略命令执行架构规则。
  • 精确索引:可选类型检查的 CHA/SSA 增强,包含包级常量引用(比较、switch case、复合值、函数参数),保留类型化枚举常量的声明身份,排除局部遮蔽。
  • 图状态与新鲜度:输出 freshness_context,CLI 使用查询进程的 Go 上下文(包括 GOFLAGS),MCP 使用启动上下文和显式标签。上下文不匹配即使源字节未变也视为过期。
  • 机器可读验证:支持 symbol_exists、package_imports、call_edge_exists、type_implements 四种谓词,只读验证,退出码 0 通过、1 失败、2 无法评估或无效请求。
  • MCP 服务器:注册 68 个端点(包括四个会话生命周期工具),为 Claude、Cursor、Copilot 等 MCP 客户端提供项目级查询、分析和 workflow 能力。
  • 联邦工作区:通过独立指纹的仓库图和确定性跨仓库覆盖层建模多个检出仓库,支持 Go 模块、跨仓库 Go 调用和 HTTP 契约的解析。

使用方式

  • 安装:通过 Homebrew 或 go install 安装常规 gograph CLI。支持 MCP Bundles 的客户端可从官方 MCP Registry 发现本地 stdio 服务器(io.github.ozgurcd/gograph)。
  • CLI 命令:包括 summary、hotspot、complexity、query、source、tests、review、changes、plan、flow、validation、policy 等。
  • MCP 集成:CLI 命令映射为 MCP 的 gograph_<command>,工作区服务器提供 status、query、path、impact。
  • 构建产物:写入目标 .gograph/ 目录,自动添加 .gograph/ 到 .gitignore。
  • 内存模式:--memory-mode=low 配合 --max-memory 可降低内存使用,但可能增加 CPU 时间。
  • 精确回退:默认退出码 0,--strict 配合 --precise 可使回退失败 CI。

适用场景

  • Go 代码库的 AI 辅助重构和变更影响分析。
  • 架构约束执行和代码结构验证。
  • 多仓库工作区的跨仓库调用和契约分析。
  • 为编码代理提供确定性的结构上下文,减少对 grep 的依赖。

限制

  • 仅支持 Go 语言,不证明运行时行为或业务正确性。
  • CHA 边是可能的静态目标,不是运行时调度确定性。
  • V1 验证排除可达性、不稳定或外部符号身份、未命名类型和非 Go 语言。
  • 精确构建可能因无关目录阻塞,需使用 --exclude-dirs。
  • 持久化图绑定到有效 Go 环境和构建选择,上下文不匹配视为过期。
  • 旧二进制不强制执行边界,不应分析不受信任的仓库。
  • 会话遥测本地存储在 .gograph/sessions/,不发送到 gograph 服务。