Que fait golang-pkg-go-dev ?
Dépendances : godig — go install github.com/samber/godig/cmd/godig@latest (ou utilisez un serveur MCP godig enregistré / l'instance hébergée à la place).
godig interroge l'API de pkg.go.dev. Utilisez-le pour répondre à des questions sur les paquets et modules Go : documentation, symboles, versions, importateurs et vulnérabilités. Il fonctionne en CLI et en serveur MCP, et toutes les opérations sont en lecture seule et ne nécessitent aucune authentification.
Quand utiliser cette compétence
Déclenchez-la pour des questions comme :
- « Quelles versions de github.com/samber/lo sont disponibles ? »
- « Est-ce que golang.org/x/text a des vulnérabilités connues ? »
- « Montre-moi la documentation / les symboles du paquet X. »
- « Quels paquets importent X ? »
- « Cherche des paquets Go pour Y. »
Choisir entre godig, gopls, Context7 et govulncheck
En bref : godig répond aux questions sur l'écosystème publié (fonctionne même pour les paquets pas encore dans votre go.mod) ; gopls raisonne sur votre build local résolu (go.sum, incluant les forks replace) ; Context7 est une solution de repli pour les documentations non Go ou non indexées ; govulncheck est l'audit de vulnérabilité sur l'arbre entier (→ samber/cc-skills-golang@golang-security). Voir la compétence samber/cc-skills-golang@golang-gopls pour connecter gopls (serveur MCP, outil LSP natif et CLI) avec Claude Code, et la section « godig vs gopls vs Context7 vs govulncheck » de la compétence samber/cc-skills-golang@golang-how-to pour la matrice tâche-à-outil complète.
Installation
Installer
go install github.com/samber/godig/cmd/godig@latest
Enregistrer le serveur MCP (optionnel)
godig mcp fonctionne par défaut sur stdio, ou HTTP streamable avec --transport http. La commande est indépendante de l'hôte — tout hôte compatible MCP peut l'utiliser. Claude Code l'enregistre via sa propre CLI :
stdio (le client lance godig à la demande) :
claude mcp add pkg-go-dev -- godig mcp
HTTP streamable (serveur partagé sur /mcp, défaut :8080) :
godig mcp --transport http --addr :8080
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp
Instance hébergée (pas d'installation nécessaire) — un serveur public tourne à https://godig.samber.dev/mcp :
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcp
Les autres hôtes compatibles MCP (Cursor, Windsurf, etc.) ont chacun leur propre méthode d'enregistrement — une entrée dans leur fichier de configuration pointant vers la même commande godig mcp ou URL hébergée, pas un format de configuration partagé.
La CLI et le serveur MCP exposent les mêmes opérations sous des noms correspondants. Privilégiez la CLI lorsque godig est installé ; l'instance hébergée est un repli lorsqu'il ne l'est pas.
Commandes
Drapeaux globaux (toutes les commandes) : -o/--output table|json|raw|md (défaut table — passez -o md pour le chat), --base-url (API pkg.go.dev), --vuln-base-url (base de données de vulnérabilités Go, consultée par vulns et overview), --timeout, --log-level debug|info|warn|error|off. Tous sont également configurables via les variables d'environnement GODIG_*.
| Commande | Arguments | Drapeaux spécifiques | Objectif |
|---|---|---|---|
overview | <chemin> | --version | Résumé compact (métadonnées, versions, licences, vulnérabilités) — commencez ici |
search | <requête> | --symbol --limit --filter | Trouver des paquets (exportant éventuellement un symbole) |
package info | <chemin> | --module --version | Métadonnées du paquet |
package imports | <chemin> | --module --version | Paquets importés par ce paquet (liste simple) |
package doc | <chemin> | --module --version --goos --goarch --format md|text|html|markdown | Documentation complète du paquet (VOLUMINEUX) |
package examples | <chemin> | --module --version --goos --goarch --symbol | Exemples exécutables (VOLUMINEUX ; précisez avec --symbol) |
package licenses | <chemin> | --module --version | Fichiers de licence, texte intégral (VOLUMINEUX) |
symbol doc | <chemin> <symbole> | --module --version --goos --goarch | Signature et documentation d'un symbole (économe en tokens) |
symbol examples | <chemin> <symbole> | --module --version --goos --goarch | Exemples exécutables d'un symbole |
symbols | <chemin> | --module --version --goos --goarch --limit --filter | Lister les symboles exportés |
module info | <chemin> | --version | Métadonnées du module |
module licenses | <chemin> | --version | Fichiers de licence du module (VOLUMINEUX) |
module readme | <chemin> | --version | README du module, Markdown complet (VOLUMINEUX) |
dependencies | <chemin> | --version | Dépendances go.mod : requires / replaces / excludes / directive go |
packages | <chemin> | --version --limit --filter | Paquets contenus dans un module |
versions | <chemin> | --limit --filter | Toutes les versions, de la plus récente à la plus ancienne |
major-versions | <chemin> | --limit --filter --exclude-pseudo | Versions majeures (v1, v2…) vivant comme modules séparés |
imported-by | <chemin> | --module --version --limit --filter | Paquets qui importent celui-ci |
vulns | <chemin> | --version --limit | Vulnérabilités connues (depuis la base de vulnérabilités Go) |
mcp | — | --transport stdio|http --addr --cache-ttl --cache-size | Exécuter en tant que serveur MCP |
version | — | — | Afficher la version / le commit / la date de build de godig |
Lorsque godig s'exécute en tant que serveur MCP, chaque commande de données ci-dessus est exposée comme une opération du même nom.
Codes de sortie : 0 succès, 1 erreur d'exécution (réseau, paquet non trouvé), 2 erreur d'utilisation — un argument ou drapeau manquant/invalide (par exemple un --limit non positif), ou un groupe de commandes invoqué sans sous-commande (godig package). Vérifiez 2 pour distinguer un appel mal formé d'une recherche infructueuse.
Sortie complète -o md pour chaque commande : sample-output.md.
Astuces
- Commencez par
overview— un seul appel retourne un résumé compact (métadonnées, versions récentes + dernières, types de licence, vulnérabilités). Utilisezdoc/examples/module readme/licenses(VOLUMINEUX) seulement lorsque le texte complet est nécessaire. - Passez toujours
-o mdpour que les résultats soient rendus en Markdown (tableaux, ou documentation/README brut) dans le chat. D'autres formats existent (tablepar défaut,json,raw) mais préférezmdici. <chemin>est un chemin d'import complet, par exemplegithub.com/samber/lo— passez-le comme argument positionnel.--versionverrouille une version spécifique du module (v1.5.0,latest,master,main) ;--moduledésambiguïse à quel module appartient un paquet.--filterréduit les résultats côté serveur avec une expression booléenne Go — voir Syntaxe de filtre.--goos/--goarchdéfinissent le contexte de build de la documentation/des symboles (par exemplelinux/amd64).- Privilégiez
symbol doc/symbol examplesau lieu despackage doc/package examplesà l'échelle du paquet lorsque vous n'avez besoin que d'un seul symbole.