golang-pkg-go-dev 是做什麼的?
相依項: godig — go install github.com/samber/godig/cmd/godig@latest(或改用已註冊的 godig MCP 伺服器 / 代管實例)。
godig 查詢 pkg.go.dev API。用於回答關於 Go 套件與模組的問題:文檔、符號、版本、導入者與弱點。它可作為 CLI 和 MCP 伺服器執行,所有操作皆為唯讀且無需認證。
使用此技能的時機
觸發於類似下列問題:
- 「
github.com/samber/lo有哪些可用版本?」 - 「
golang.org/x/text是否有已知弱點?」 - 「顯示套件 X 的文檔 / 符號。」
- 「哪些套件導入 X?」
- 「搜尋 Go 套件中的 Y。」
在 godig、gopls、Context7 與 govulncheck 之間選擇
簡而言之:godig 回答關於已發布生態系的問題(即使套件尚未在您的 go.mod 中也能運作);gopls 推論您的區域解析建置(go.sum,包含 replace 的分支);Context7 是非 Go 或未索引文檔的備援方案;govulncheck 是完整樹狀的弱點稽核(→ samber/cc-skills-golang@golang-security)。請參閱 samber/cc-skills-golang@golang-gopls 技能以了解如何將 gopls(MCP 伺服器、原生 LSP 工具與 CLI)與 Claude Code 整合,以及 samber/cc-skills-golang@golang-how-to 技能的「godig vs gopls vs Context7 vs govulncheck」一節以取得完整的任務對應工具矩陣。
設定
安裝
go install github.com/samber/godig/cmd/godig@latest
註冊 MCP 伺服器(選用)
godig mcp 預設透過 stdio 執行,或透過 --transport http 使用 streamable HTTP。此指令與工具無關 — 任何 MCP 相容的主機均可指向它。Claude Code 透過其自己的 CLI 註冊:
stdio(客戶端隨需啟動 godig):
claude mcp add pkg-go-dev -- godig mcp
streamable HTTP(共享伺服器,端點在 /mcp,預設為 :8080):
godig mcp --transport http --addr :8080
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp
代管實例(無需安裝)— 公用伺服器執行於 https://godig.samber.dev/mcp:
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcp
其他 MCP 相容工具(Cursor、Windsurf 及其他)各有其自己的 MCP 伺服器註冊方式 — 在其各自的設定檔中指向相同的 godig mcp 指令或代管 URL,而非共享的設定格式。
CLI 與 MCP 伺服器以相符的名稱公開相同的操作。當已安裝 godig 時偏好使用 CLI;代管實例則是在未安裝時的備援方案。
指令
全域旗標(所有指令): -o/--output table|json|raw|md(預設 table — 傳入 -o md 以用於聊天)、--base-url(pkg.go.dev API)、--vuln-base-url(Go 漏洞資料庫,由 vulns 和 overview 使用)、--timeout、--log-level debug|info|warn|error|off。所有項目也可透過 GODIG_* 環境變數設定。
| 指令 | 參數 | 特定旗標 | 用途 |
|---|---|---|---|
overview | <path> | --version | 精簡摘要(中繼資料、版本、授權、弱點)— 從這裡開始 |
search | <query> | --symbol --limit --filter | 尋找套件(可選:匯出特定符號者) |
package info | <path> | --module --version | 套件中繼資料 |
package imports | <path> | --module --version | 此套件導入的套件(純清單) |
package doc | <path> | --module --version --goos --goarch --format md|text|html|markdown | 完整套件文檔(LARGE) |
package examples | <path> | --module --version --goos --goarch --symbol | 可執行範例(LARGE;使用 --symbol 限定範圍) |
package licenses | <path> | --module --version | 授權檔案,完整文字(LARGE) |
symbol doc | <path> <symbol> | --module --version --goos --goarch | 單一符號的簽名 + 文檔(節省 token) |
symbol examples | <path> <symbol> | --module --version --goos --goarch | 單一符號的可執行範例 |
symbols | <path> | --module --version --goos --goarch --limit --filter | 列出匯出的符號 |
module info | <path> | --version | 模組中繼資料 |
module licenses | <path> | --version | 模組授權檔案(LARGE) |
module readme | <path> | --version | 模組 README,完整 Markdown(LARGE) |
dependencies | <path> | --version | go.mod 相依項:requires / replaces / excludes / go 指令 |
packages | <path> | --version --limit --filter | 模組中包含的套件 |
versions | <path> | --limit --filter | 所有版本,最新者優先 |
major-versions | <path> | --limit --filter --exclude-pseudo | 作為獨立模組存在的主版本(v1、v2 …) |
imported-by | <path> | --module --version --limit --filter | 導入此套件的套件 |
vulns | <path> | --version --limit | 已知弱點(來自 Go 弱點資料庫) |
mcp | — | --transport stdio|http --addr --cache-ttl --cache-size | 以 MCP 伺服器模式執行 |
version | — | — | 顯示 godig 版本 / 提交 / 建置日期 |
當 godig 以 MCP 伺服器執行時,上述每個資料指令都會以同名操作公開。
退出碼: 0 成功,1 執行時期錯誤(網路、套件未找到),2 使用錯誤 — 缺少或無效的引數或旗標(例如非正數的 --limit),或指令群組呼叫時未附上子指令(godig package)。檢查 2 可區分格式錯誤的呼叫與查詢失敗。
每個指令的完整 -o md 輸出:sample-output.md。
提示
- 從
overview開始 — 一次呼叫即可回傳精簡摘要(中繼資料、最新 + 近期版本、授權類型、弱點)。僅在需要完整文字時才使用doc/examples/module readme/licenses(LARGE)。 - 總是傳入
-o md以便結果以 Markdown(表格,或原始文檔/README)呈現在聊天中。其他格式存在(table預設、json、raw),但在此處偏好md。 <path>是完整的導入路徑,例如github.com/samber/lo— 以位置引數傳入。--version指定特定的模組版本(v1.5.0、latest、master、main);--module消除套件所屬模組的歧義。--filter使用 Go 布林表示式在伺服器端縮減清單結果 — 請參閱篩選語法。--goos/--goarch設定文檔/符號的建置上下文(例如linux/amd64)。- 當您只需要單一項目的細節時,偏好使用
symbol doc/symbol examples而非套件範圍的package doc/package examples。