Gograph
G

Gograph

3.5分
6.1K

安装

复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

🧭 gograph

Go Report Card License: MIT Go Version Homebrew Docs

别再为 grep 烧 token 了,给你的 AI Agent 一张调用图。

gograph 会为你的 Go 仓库构建一个本地、AST 感知的调用图,并通过 CLI 和 MCP 暴露 50+ 查询工具,让编码 Agent 无需读取原始文件,即可导航包、符号、调用链、路由、SQL、环境变量和测试。

零网络。零执行。零密钥读取。 gograph 是纯静态分析 —— 它从不运行你的代码、发起 API 调用,也不会打开任何非 .go 文件。


🚀 快速开始

# 安装
brew install ozgurcd/tap/gograph

# 构建调用图
gograph build . --precise

# 试用一下 —— 谁调用了 ValidateToken?
gograph callers "ValidateToken"

# 一次调用获得完整上下文(节点 + 源码 + 调用方 + 被调用方 + 测试)
gograph context "ValidateToken"

# 编辑前的变更计划(调用方、测试、路由、SQL、环境风险)
gograph plan "ValidateToken"

💡 为什么选择 gograph?

基于 gograph 自身代码库的基准测试(70 个文件、518 个符号、16 个包):

任务 grep -rn gograph 节省效果
查找 loadGraph 的调用方 158 行噪声(注释、文档、变量) 56 个精确的结构化调用点 减少约 65% 噪声
定位符号定义 842 行匹配 "Symbol" 83 个真实的类型/方法声明 减少约 90% 噪声
读取单个函数体 cat 转储整个文件 180+ 行 source 精确提取 12 行函数 减少约 93% token
完整理解一个符号 4–5 次独立工具调用 1 次调用:context 打包所有内容 工具调用减少 80%

✨ 主要特性

  • 🔍 50+ 查询工具 —— callers、callees、impact、context、plan、review、errorflow、orphans、hotspot、coupling 等等。查看完整的命令参考 →

  • 🔌 原生 MCP 服务器 —— 所有工具都以 MCP 端点的形式提供,兼容 Claude、Cursor、Copilot 以及任何支持 MCP 的 Agent。一条命令完成配置:gograph add-claude-plugin

  • 🪙 省 Token 的组合命令 —— context 可替代 5 次调用,plan 可替代 8 次,explain 可综合架构叙事。专为最大限度减少 Agent 往返而构建。

  • 🛡️ 设计上安全 —— 无网络、无代码执行、无密钥、不读取 .env 文件。AI 工作树目录(.claude/、.cursor/、.agents/)自动排除。

  • 🏛️ 架构约束 —— 边界规则、API 漂移检测、复杂度门禁、死代码清扫、上帝对象检测、耦合分析。可通过 gograph gate 在 CI 中运行。

  • 📋 Agent 合规审计 —— 会话遥测会追踪 Agent 是否在编辑前运行 plan、编辑后运行 review,并以 A–F 等级评估 Agent 行为,附带可操作的建议。


📖 命令参考

所有命令都支持 --json(机器可读输出)和 --files-only(扁平文件列表)。

分类 命令 功能说明
索引 build . [--precise]、stale、stats 解析 AST、写入调用图、检查新鲜度、索引健康度。
导航 query、callers [--depth N]、callees [--depth N]、path、source、node 查找符号、追踪调用链、提取源码。
上下文 context、explain、focus、endpoint 一次调用打包结构化数据。省 Token 利器。
变更分析 plan、review、risk、impact [--uncommitted|--since]、changes [--git]、api --since 编辑前规划、编辑后审查、风险分析、爆炸半径、漂移检测。
架构 boundaries、coupling、complexity、godobj、orphans、arity 质量门禁、死代码、耦合、上帝对象。
类型与结构体 fields、implementers [--test-only]、interfaces、embeds、constructors、literals、usages、mutate、schema 结构体字段、接口实现、类型使用。
基础设施 routes、sql、envs、errors、concurrency、globals、httpcalls、deps [--transitive]、dependents、imports HTTP 路由、SQL、环境变量、并发、出站 HTTP 调用、导入。
测试 tests、fixtures、mocks 测试覆盖映射、辅助函数、Mock 实现。
错误追踪 errorflow [--no-tests]、trace 从错误字符串到 HTTP 入口点的反向 BFS。
诊断 hotspot、returnusage、skeleton、diagram、changes、public 热点、返回值用法、API 签名、Mermaid 图表。
CI/CD check [--since|--uncommitted]、gate、snapshot save|diff|list|drop 策略检查、阈值强制、指标快照。
遥测 session create|end|audit|cleanup Agent 合规追踪与评级(A–F)。
LLM-Wiki wiki [--output dir] 生成 llm-wiki/ —— 面向机器的 markdown 页面,零成本完成 Agent 定向(概览、架构、热点、路由、环境变量、错误、并发、逐包文档、API 表面)。
摘要 summary [--json] 单次调用的代码库简报:Top 3 热点、最不稳定包、最高复杂度函数、孤立符号数、上帝对象数。替代 5 次独立调用。
未测试 untested [--pkg name] [--top N] [--json] 有调用方但无测试边的函数 —— 这类覆盖缺口在孤立符号或逐符号测试查询中不可见。一次扫描替代 N 次 tests <sym> 调用。
文档 doc <pkg[.Symbol]> [--json] go doc 的封装 —— 为任何标准库或第三方符号输出签名 + 文档注释。无需调用图。补齐调用链离开项目时的空缺。

带示例的完整命令参考:gograph.identuum.ai/docs/command-reference

架构边界约束

在 .gograph/boundaries.json 中定义边界:

{
  "layers": [
    { "name": "domain", "packages": ["internal/domain/**"], "may_import": [] },
    { "name": "handler", "packages": ["internal/handler/**"], "may_import": ["internal/service/**", "internal/domain/**"] }
  ]
}

运行 gograph boundaries —— 一旦违反即退出码 1。适用于 CI/CD。


🤖 AI Agent 集成

一条命令完成配置(Claude Desktop + Claude Code):

gograph add-claude-plugin

它会注册 MCP 服务器、注入 CLAUDE.md 引导规则,并安装一个 PreToolUse 钩子,将对 Go 符号的 grep 重定向到 gograph 工具。

替代方案 —— 通过 Claude Code 插件市场安装:

/plugin marketplace add ozgurcd/gograph
/plugin install gograph@gograph

通过 Claude Code 的插件市场发现 gograph,并附带一个在 Go 工作中自动激活的 SKILL.md,教导 Agent 执行强制工作流(capabilities → build → plan → context → review),并明确 grep/rg/find 不得用于 Go 符号搜索。

你仍需先安装 gograph 二进制文件(brew install ozgurcd/tap/gograph 或 go install github.com/ozgurcd/gograph@latest)。使用上面的 gograph add-claude-plugin 可获得完整的一键引导(MCP 接线 + CLAUDE.md 规则 + PreToolUse 钩子)。当你更希望在 Claude Code 插件界面内部发现并安装 gograph 时,请使用插件市场。

其他 Agent(Cursor、Copilot、Antigravity 等):

gograph mcp .   # 以 stdio 方式作为 MCP 服务器运行

添加到你的 .cursorrules 或 AI 系统提示词中:

在回答架构或仓库相关问题之前,先检查可用的 gograph_* MCP 工具并使用它们,而不是 grep/find。先运行 gograph capabilities。

所有命令都支持 --json 以输出机器可读结果:

gograph callers "ValidateToken" --json
# → {"schema_version": "1", "command": "callers", "status": "ok", "count": 2, "results": [...]}

完整的集成指南,请参见 docs/coding-agent-usage.md。

用 llm-wiki/ 实现零成本定向: 每个会话运行一次 gograph wiki,即可生成一个面向机器的 markdown 页面目录 —— 概览、架构图、热点、路由、环境变量、错误位置、并发、逐包文档,以及完整的 API 表面。Agent 阅读这些页面,而无需发起数十次独立工具调用:

gograph build . --precise
gograph wiki                 # 写入 ./llm-wiki/
# 然后读取:llm-wiki/README.md → project.md → rules.md → agent-contract.md → overview.md

将 llm-wiki/ 加入 .gitignore —— 这些文件每次会话都会重新生成。


📊 输出示例

当你运行 gograph build . 时,生成的 GRAPH_REPORT.md 会为你的 AI 提供一份精简的上下文地图:

外部依赖(技术栈)

模块 版本
github.com/gin-gonic/gin v1.9.1
github.com/jackc/pgx/v5 v5.5.5

重要符号(按出向调用排序)

符号 类型 文件 行号 出向调用数
(Server).Start method server.go 42 18
ValidateAuth function auth.go 12 14

🆚 为什么不使用语言服务器(gopls)?

gopls 是为人类 IDE 优化的,而 gograph 是为基于终端的 LLM 优化的:

  1. 协议不匹配 —— gopls 返回 file:line:col 坐标。Agent 随后必须消耗 token 运行 cat/sed 来读取实际代码。gograph 则直接提取精确的结构化切片,并将其格式化为 Markdown。

  2. 图级诊断 —— gopls 提供悬停提示和跳转到定义。gograph 则在整个调用图上进行反向 BFS 错误追踪、完整爆炸半径分析和 PR 级变更规划。

  3. 可组合的智能 —— gopls 一次回答一个问题。gograph context 在单次调用中打包节点 + 源码 + 调用方 + 被调用方 + 测试;gograph plan 将影响、路由、SQL、环境变量和测试风险聚合为一份清单。

正确性模型
  • 默认模式 使用 Go AST 解析和尽力而为的启发式规则。可容忍不完整或无法编译的仓库。
  • 精确模式 使用类型检查增强,要求包可编译。
  • 启发式提取器(路由、SQL、测试、错误映射)是导航辅助手段,而非权威的程序分析。
非目标
  • 不做多语言解析
  • 不调用 AI/模型 API
  • 无嵌入(embeddings)或 SaaS 后端
  • 无遥测
  • 不替代编译器/类型检查器的正确性

🤝 参与贡献

欢迎提交 Pull Request!构建、测试和贡献指南请参见 CONTRIBUTING.md。

语言支持: gograph 目前仅解析 Go。其架构是可扩展的 —— 如果你想添加 Python、TypeScript、Rust 等语言支持,请先开一个 issue 讨论。


📄 许可证

MIT —— 详见 LICENSE。

gograph MCP server

替代品

F
Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
201.2K
5分
D
Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
119.8K
4.3分
F
Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
101.3K
4.5分
M
Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
94.4K
4.8分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
46.5K
4.8分
C
Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
141.9K
4.7分
E
Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
89.2K
5分
B
Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
73.0K
4.5分
AIBase
智启未来,您的人工智能解决方案智库
© 2026AIBase