Netbird

Liste e anal

Documentação

Servidor MCP Netbird

Um servidor Model Context Protocol (MCP) para Netbird.

Este projeto é derivado do Servidor MCP para Grafana da Grafana Labs e está licenciado sob a mesma Licença Apache 2.0.

Ele também utiliza MCP Go da Mark III Labs.

Observação: este projeto ainda está em desenvolvimento.

Instalação

Instalando a partir do código-fonte

Clone o repositório

git clone https://github.com/aantti/mcp-netbird

Compile e instale

cd mcp-netbird && \
make install

Instalando a partir do GitHub

go install github.com/aantti/mcp-netbird/cmd/mcp-netbird@latest

Instalando via Smithery

smithery badge

Para instalar o Netbird MCP Server para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @aantti/mcp-netbird --client claude

Configuração

O servidor requer as seguintes variáveis de ambiente:

  • NETBIRD_API_TOKEN: Seu token da API Netbird
  • NETBIRD_HOST (opcional): O host da API Netbird (padrão é api.netbird.io)

Recursos

Este servidor usa a API Netbird para fornecer informações sobre a rede Netbird aos LLMs. Atualmente, é um mapeamento 1:1 de recursos selecionados somente leitura da API Netbird para ferramentas.

  • Usa a API Netbird para acessar configuração e status
  • Endpoint de API configurável
  • Autenticação segura baseada em token para a API Netbird

Ferramentas

FerramentaDescriçãoAPI Netbird
list_netbird_peersTodos os peersListar todos os Peers
list_netbird_port_allocationsTodas as portas de entrada para peerIdListar todas as Alocações de Porta
list_netbird_groupsTodos os gruposListar todos os Grupos
list_netbird_policiesTodas as políticasListar todas as Políticas
list_netbird_posture_checksTodas as verificações de posturaListar todas as Verificações de Postura
list_netbird_networksTodas as redesListar todas as Redes
list_netbird_nameserversTodos os grupos de servidores de nomesListar todos os Grupos de Nameservers

Adicionando ferramentas

Para adicionar novas ferramentas:

  1. Crie um novo arquivo em tools (por exemplo, tools/users.go), possivelmente usando o código existente como modelo
  2. Adicione a rota da API e os detalhes da resposta ao novo arquivo
  3. Adicione a ferramenta a func newServer() em cmd/main.go

Uso

  1. Obtenha seu token da API Netbird no console de gerenciamento do Netbird.

  2. Instale o binário mcp-netbird usando um dos métodos de instalação acima. Certifique-se de que o binário esteja no seu PATH.

  3. Adicione a configuração do servidor ao seu arquivo de configuração do cliente. Por exemplo, para Codeium Windsurf, adicione o seguinte a ~/.codeium/windsurf/mcp_config.json:

    {
      "mcpServers": {
        "netbird": {
          "command": "mcp-netbird",
          "args": [],
          "env": {
            "NETBIRD_API_TOKEN": "<your-api-token>"
          }
        }
      }
    }
    

Para mais informações sobre como adicionar uma configuração semelhante ao Claude Desktop, veja aqui.

Observação: se você vir algo como [netbird] [error] spawn mcp-netbird ENOENT nos logs do Claude Desktop, você precisa especificar o caminho completo para mcp-netbird. No macOS, os logs do Claude estão em ~/Library/Logs/Claude.

  1. Tente fazer perguntas como "Você pode me explicar meus peers, grupos e políticas do Netbird?"

claude-desktop-mcp-netbird

Docker

Crie uma imagem e marque-a:

docker build -t mcp-netbird-sse:v1 -f Dockerfile.sse .

Execute a imagem:

docker run --name mcp-netbird -p 8001:8001 -e NETBIRD_API_TOKEN=<your-api-token> mcp-netbird-sse:v1

ToolHive

ToolHive (thv) é um utilitário leve projetado para simplificar a implantação e o gerenciamento de servidores MCP.

Você pode usar o ToolHive para implantar e executar o Netbird MCP da seguinte forma:

  1. Instale thv conforme descrito no README do ToolHive.

  2. Adicione o token da API Netbird aos segredos de thv:

thv secret set netbird
  1. Crie uma imagem SSE conforme descrito na seção Docker acima

  2. Inicie o Netbird MCP com thv run na porta 8080:

thv run --secret netbird,target=NETBIRD_API_TOKEN --transport sse --name thv-mcp-netbird --port 8080 --target-port 8001 mcp-netbird-sse:v1
  1. Quando quiser parar o servidor, use:
thv stop thv-mcp-netbird

Desenvolvimento

Contribuições são bem-vindas! Por favor, abra uma issue ou envie um pull request se tiver sugestões ou melhorias.

Este projeto é escrito em Go. Instale o Go seguindo as instruções para sua plataforma.

Para executar o servidor manualmente, use:

export NETBIRD_API_TOKEN=your-token && \
go run cmd/mcp-netbird/main.go

Ou no modo SSE:

export NETBIRD_API_TOKEN=your-token && \
go run cmd/mcp-netbird/main.go --transport sse --sse-address :8001

Depuração

O MCP Inspector é uma ferramenta interativa de desenvolvimento para testar e depurar servidores MCP. Leia mais sobre ele aqui.

Veja como iniciar o MCP Inspector:

export NETBIRD_API_TOKEN=your-token && \
npx @modelcontextprotocol/inspector

O Netbird MCP Server pode então ser testado com o tipo de transporte stdio ou SSE. Para stdio, especifique o caminho completo para mcp-netbird na interface.

Testes

TODO: adicionar mais testes

Linting

Para fazer lint do código, execute:

make lint

Licença

Este projeto está licenciado sob a Licença Apache, Versão 2.0.

Este projeto inclui software desenvolvido na Grafana Labs (https://grafana.com/).

Este projeto inclui software desenvolvido na Mark III Labs (https://github.com/mark3labs/mcp-go).