Skip to main content
Glama

mcp-netbird

package tools import ( "context" mcpnetbird "github.com/aantti/mcp-netbird" "github.com/mark3labs/mcp-go/server" ) type PortRangeMapping struct { TranslatedStart int `json:"translated_start"` TranslatedEnd int `json:"translated_end"` IngressStart int `json:"ingress_start"` IngressEnd int `json:"ingress_end"` Protocol string `json:"protocol"` } type NetbirdPortAllocations struct { ID string `json:"id"` Name string `json:"name"` IngressPeerID string `json:"ingress_peer_id"` Region string `json:"region"` Enabled bool `json:"enabled"` IngressIP string `json:"ingress_ip"` PortRangeMappings []PortRangeMapping `json:"port_range_mappings"` } type ListNetbirdPortAllocationsParams struct { // PeerID is the ID of the peer to get port allocations for // This field is required and must match a valid peer ID from NetbirdPeer in tools/peers.go PeerID string `mcp:"peer_id" validate:"required"` } func listNetbirdPortAllocations(ctx context.Context, args ListNetbirdPortAllocationsParams) ([]NetbirdPortAllocations, error) { client := mcpnetbird.NewNetbirdClient() var allocations []NetbirdPortAllocations if err := client.Get(ctx, "/peers/"+args.PeerID+"/ingress/ports", &allocations); err != nil { return nil, err } return allocations, nil } var ListNetbirdPortAllocations = mcpnetbird.MustTool( "list_netbird_port_allocations", "List all Netbird port allocations", listNetbirdPortAllocations, ) func AddNetbirdPortAllocationTools(mcp *server.MCPServer) { ListNetbirdPortAllocations.Register(mcp) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aantti/mcp-netbird'

If you have feedback or need assistance with the MCP directory API, please join our Discord server