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 をインポートしているパッケージはどれですか?"
- "Y に関する Go パッケージを検索してください。"
godig、gopls、Context7、govulncheck の使い分け
簡単に言うと: godig は公開エコシステムに関する質問に回答します (go.mod にまだ含まれていないパッケージでも機能します)。gopls はローカルで解決されたビルド (go.sum、replace されたフォークを含む) について推論します。Context7 は非 Go またはインデックス化されていないドキュメントのフォールバックです。govulncheck はツリー全体の脆弱性監査です (→ samber/cc-skills-golang@golang-security スキルを参照)。gopls (MCP サーバー、ネイティブ LSP ツール、および CLI) を Claude Code と連携させる方法については samber/cc-skills-golang@golang-gopls スキルを、タスクとツールの完全な対応表については 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 を指定すると ストリーミング可能 HTTP で動作します。このコマンドはハーネス非依存です — 任意の MCP 対応ホストがこれを指定できます。Claude Code は独自の CLI を介してこれを登録します:
stdio (クライアントが godig をオンデマンドで起動):
claude mcp add pkg-go-dev -- godig mcp
ストリーミング可能 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 | 完全なパッケージドキュメント (大容量) |
package examples | <path> | --module --version --goos --goarch --symbol | 実行可能な例 (大容量、--symbol で範囲指定可能) |
package licenses | <path> | --module --version | ライセンスファイル、全文 (大容量) |
symbol doc | <path> <symbol> | --module --version --goos --goarch | 1つのシンボルのシグネチャ + ドキュメント (トークン効率が良い) |
symbol examples | <path> <symbol> | --module --version --goos --goarch | 1つのシンボルの実行可能な例 |
symbols | <path> | --module --version --goos --goarch --limit --filter | エクスポートされたシンボルの一覧 |
module info | <path> | --version | モジュールのメタデータ |
module licenses | <path> | --version | モジュールのライセンスファイル (大容量) |
module readme | <path> | --version | モジュールの README、完全な Markdown (大容量) |
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 脆弱性 DB から) |
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から — 1回の呼び出しでコンパクトな概要 (メタデータ、最新 + 最近のバージョン、ライセンスタイプ、脆弱性) が返されます。完全なテキストが必要な場合にのみ、doc/examples/module readme/licenses(大容量) を使用してください。 - 常に
-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)。- 1つのシンボルだけが必要な場合は、パッケージ全体の
package doc/package examplesよりもsymbol doc/symbol examplesを優先してください。
フィルター構文
--filter は、Go の go/constant 式として評価される単一の文字列を受け取ります。変数はパッケージ/モジュールのフィールド名です:
Name— パッケージ名Synopsis— 短い説明Licenses— ライセンスタイプの配列
例:
godig search lo --filter 'Name == "lo" && Licenses.Contains("MIT")'