Serveur MCP Netbird
Un serveur MCP ( Model Context Protocol ) pour Netbird.
Ce projet est dérivé du serveur MCP pour Grafana de Grafana Labs et est placé sous la même licence Apache 2.0.
Il utilise également MCP Go de Mark III Labs.
Note : ce projet est encore en développement.
Installation
Installation à partir des sources
Cloner le dépôt
git clone https://github.com/aantti/mcp-netbird
Construire et installer
cd mcp-netbird && \ make install
Installation depuis GitHub
go install github.com/aantti/mcp-netbird/cmd/mcp-netbird@latest
Installation via Smithery
Pour installer Netbird MCP Server for Claude Desktop automatiquement via Smithery:
npx -y @smithery/cli install @aantti/mcp-netbird --client claude
Configuration du serveur
Le serveur nécessite les variables d'environnement suivantes :
NETBIRD_API_TOKEN
: Votre jeton API NetbirdNETBIRD_HOST
(optionnel) : L'hôte de l'API Netbird (par défautapi.netbird.io
)
Fonctionnalités
Ce serveur utilise l'API Netbird pour fournir aux LLM des informations sur le réseau Netbird. Actuellement, il s'agit d'une correspondance 1:1 entre certaines ressources de l'API Netbird en lecture seule et les outils.
- Utilise l'API Netbird pour accéder à la configuration et à l'état
- Point d'arrivée API configurable
- Authentification sécurisée par jeton pour l'API Netbird
Outils
Outil | Description de l'outil | API Netbird |
---|---|---|
list_netbird_peers | Tous les pairs | Liste de tous les pairs |
list_netbird_port_allocations | Tous les ports d'entrée pour peerId | Liste de tous les ports alloués |
list_netbird_groups | Tous les groupes | Liste de tous les groupes |
list_netbird_policies | Toutes les politiques | Liste de toutes les politiques |
list_netbird_posture_checks | Tous les contrôles de posture | Liste de tous les contrôles de posture |
list_netbird_networks | Tous les réseaux | Liste de tous les réseaux |
list_netbird_nameservers | Tous les groupes de serveurs de noms | Liste de tous les groupes de serveurs de noms |
Ajouter des outils
Pour ajouter de nouveaux outils :
- Créez un nouveau fichier dans
tools
(par exemple,tools/users.go
), en utilisant éventuellement le code existant comme modèle - Ajouter la route de l'API et les spécificités de la réponse au nouveau fichier
- Ajouter l'outil à
func newServer()
danscmd/main.go
Utilisation
Obtenez votre jeton API Netbird à partir de la console de gestion Netbird.
Installez le binaire
mcp-netbird
en utilisant l'une des méthodes d'installation ci-dessus. Assurez-vous que le binaire est dans votre PATH.Ajoutez la configuration du serveur à votre fichier de configuration client. Par exemple, pour Codeium Windsurf, ajoutez ce qui suit à
~/.codeium/windsurf/mcp_config.json
:{ "mcpServers" : {"netbird" : {"command" : "mcp-netbird", "args" : [], "env" : { "NETBIRD_API_TOKEN" : "<votre-api-token>" } } } }
Pour plus d'informations sur la façon d'ajouter une configuration similaire à Claude Desktop, voir ici.
Note : si vous voyez quelque chose du genre
[netbird] [error] spawn mcp-netbird ENOENT
dans les journaux de Claude Desktop, vous devez spécifier le chemin complet versmcp-netbird
. Sur macOS, les journaux de Claude se trouvent dans~/Bibliothèque/Logs/Claude
.
- Essayez de poser des questions du type "Pouvez-vous m'expliquer mes pairs, groupes et politiques Netbird ?"
Docker
Construire une image et la marquer :
docker build -t mcp-netbird-sse:v1 -f Dockerfile.sse
Exécutez l'image :
docker run --name mcp-netbird -p 8001:8001 -e NETBIRD_API_TOKEN=<votre-api-token> mcp-netbird-sse:v1
Ruche à outils
ToolHive (thv) est un utilitaire léger conçu pour simplifier le déploiement et la gestion des serveurs MCP.
Vous pouvez utiliser ToolHive pour déployer et exécuter Netbird MCP comme suit :
Installez
thv
comme décrit dans le README de ToolHive.Ajoutez le jeton API Netbird aux secrets
thv
:
thv secret set netbird
Construire une image SSE comme décrit dans la section Docker ci-dessus
Démarrez Netbird MCP avec
thv run
sur le port 8080 :
thv run --secret netbird,target=NETBIRD_API_TOKEN --transport sse --name thv-mcp-netbird --port 8080 --target-port 8001 mcp-netbird-sse:v1
- Lorsque vous voulez arrêter le serveur, utilisez :
thv stop thv-mcp-netbird
Développement
Les contributions sont les bienvenues ! Veuillez ouvrir un problème ou soumettre une demande de téléchargement si vous avez des suggestions ou des améliorations à apporter.
Ce projet est écrit en Go. Installez Go en suivant les instructions pour votre plateforme.
Pour lancer le serveur manuellement, utilisez :
export NETBIRD_API_TOKEN=votre-token && go run cmd/mcp-netbird/main.go
Ou en mode SSE :
export NETBIRD_API_TOKEN=votre-token && \N go run cmd/mcp-netbird/main.go --transport sse --sse-address :8001
Débogage
L'inspecteur MCP est un outil de développement interactif permettant de tester et de déboguer les serveurs MCP. Pour en savoir plus , cliquez ici.
Voici comment démarrer l'inspecteur MCP :
export NETBIRD_API_TOKEN=votre-token && \ npx @modelcontextprotocol/inspector
Le serveur Netbird MCP peut alors être testé avec le type de transport stdio
ou SSE
. Pour stdio
, spécifiez le chemin complet vers mcp-netbird
dans l'interface utilisateur.
Test
TODO : ajouter plus de tests
Linting
Pour lister le code, exécutez
make lint
Licence
Ce projet est soumis à la licence Apache, version 2.0.
Ce projet comprend des logiciels développés par Grafana Labs(https://grafana.com/).
Ce projet comprend des logiciels développés par Mark III Labs(https://github.com/mark3labs/mcp-go).