Gograph
G

Gograph

3.5分
5.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

替代品

M
Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
46.7K
5分
B
Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
63.0K
4.5分
F
Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
171.1K
5分
S
Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
43.2K
4.5分
N
Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
30.8K
4.5分
M
Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
30.2K
5分
C
Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
115.3K
4.7分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
38.5K
4.8分
AIBase
智啟未來,您的人工智慧解決方案智庫
© 2026AIBase