trackmcp
Back to directory
aantti

mcp-netbird

View on GitHub

MCP Server for Netbird

41 stars GoServers & Infrastructure Updated Oct 10, 2025

Documentation

Netbird MCP Server

A Model Context Protocol (MCP) server for Netbird.

This project is derived from the MCP Server for Grafana by Grafana Labs and is licensed under the same Apache License 2.0.

It also uses MCP Go by Mark III Labs.

Note: this project is still in development.

Installing

Installing from source

Clone the repository

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

Build and install

bash
cd mcp-netbird && \
make install

Installing from GitHub

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

Installing via Smithery

smithery badge

To install Netbird MCP Server for Claude Desktop automatically via Smithery:

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

Configuration

The server requires the following environment variables:

  • `NETBIRD_API_TOKEN`: Your Netbird API token
  • `NETBIRD_HOST` (optional): The Netbird API host (default is `api.netbird.io`)

Features

This server uses the Netbird API to provide LLMs information about Netbird network. Currently it's a 1:1 mapping of select read-only Netbird API resources to tools.

  • [x] Uses Netbird API to access configuration and status
  • [x] Configurable API endpoint
  • [x] Secure token-based authentication for Netbird API

Tools

ToolDescriptionNetbird API
`list_netbird_peers`All peersList all Peers
`list_netbird_port_allocations`All ingress ports for `peerId`List all Port Allocations
`list_netbird_groups`All groupsList all Groups
`list_netbird_policies`All policiesList all Policies
`list_netbird_posture_checks`All posture checksList all Posture Checks
`list_netbird_networks`All networksList all Networks
`list_netbird_nameservers`All nameserver groupsList all Nameserver Groups

Adding tools

To add new tools:

1. Create a new file in `tools` (e.g., `tools/users.go`), possibly use existing code as a template

2. Add API route and response specifics to the new file

3. Add the tool to `func newServer()` in `cmd/main.go`

Usage

1. Get your Netbird API token from the Netbird management console.

2. Install the `mcp-netbird` binary using one of the installation methods above. Make sure the binary is in your PATH.

3. Add the server configuration to your client configuration file. E.g., for Codeium Windsurf add the following to `~/.codeium/windsurf/mcp_config.json`:

json
{
     "mcpServers": {
       "netbird": {
         "command": "mcp-netbird",
         "args": [],
         "env": {
           "NETBIRD_API_TOKEN": ""
         }
       }
     }
   }

For more information on how to add a similar configuration to Claude Desktop, see here.

> Note: if you see something along the lines of `[netbird] [error] spawn mcp-netbird ENOENT` in Claude Desktop logs, you need to specify the full path to `mcp-netbird`. On macOS Claude Logs are in `~/Library/Logs/Claude`.

4. Try asking questions along the lines of "Can you explain my Netbird peers, groups and policies to me?"

claude-desktop-mcp-netbird

Docker

Build an image and tag it:

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

Run the image:

bash
docker run --name mcp-netbird -p 8001:8001 -e NETBIRD_API_TOKEN= mcp-netbird-sse:v1

ToolHive

ToolHive (thv) is a lightweight utility designed to simplify the deployment and management of MCP servers.

You can use ToolHive to deploy and run Netbird MCP as follows:

1. Install `thv` as described in ToolHive README.

2. Add Netbird API token to `thv` secrets:

bash
thv secret set netbird

3. Build an SSE image as described in the Docker section above

4. Start Netbird MCP with `thv run` on port 8080:

bash
thv run --secret netbird,target=NETBIRD_API_TOKEN --transport sse --name thv-mcp-netbird --port 8080 --target-port 8001 mcp-netbird-sse:v1

5. When you want to stop the server, use:

bash
thv stop thv-mcp-netbird

Development

Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.

This project is written in Go. Install Go following the instructions for your platform.

To run the server manually, use:

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

Or in SSE mode:

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

Debugging

The MCP Inspector is an interactive developer tool for testing and debugging MCP servers. Read more about it here.

Here's how to start the MCP Inspector:

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

Netbird MCP Server can then be tested with either `stdio` or `SSE` transport type. For `stdio` specify the full path to `mcp-netbird` in the UI.

Testing

TODO: add more tests

Linting

To lint the code, run:

bash
make lint

License

This project is licensed under the Apache License, Version 2.0.

This project includes software developed at Grafana Labs (https://grafana.com/).

This project includes software developed at Mark III Labs (https://github.com/mark3labs/mcp-go).

Frequently asked questions

What is mcp-netbird?

mcp-netbird is MCP Server for Netbird

How do I install mcp-netbird?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-netbird open source?

Yes — it is hosted on GitHub at https://github.com/aantti/mcp-netbird and has 41 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP