headscale_nodes
Manage nodes on a self-hosted Headscale server: list, register, rename, delete, expire, backfill IPs, approve routes, and set tags, with dry-run previews for writes.
Instructions
headscale_nodes calls the nodes toolset on a self-hosted Headscale server (9 actions). Authorization is Bearer. Writes need confirm set to the boolean true and HEADSCALE_ALLOW_WRITES=true. Omit confirm for a dry-run preview that does not send the write. Warnings: This rewrites node IP assignments and can disrupt existing nodes. This deletes a node and removes it from the tailnet. This expires a node and disconnects it. This registers a node and can admit a device onto the tailnet. This approves subnet routes and can expose those networks to the tailnet. This changes node tags and can change which networks the node can reach. Actions: backfill_node_ips: POST /api/v1/node/backfillips. Backfill node IP addresses. delete_node: DELETE /api/v1/node/{nodeId}. Delete a node. expire_node: POST /api/v1/node/{nodeId}/expire. Expire a node. get_node: GET /api/v1/node/{nodeId}. Get one node. Node key material is redacted. list_nodes: GET /api/v1/node. List nodes. Node key material is redacted. register_node: POST /api/v1/node/register. Register a node with a registration key. rename_node: POST /api/v1/node/{nodeId}/rename/{newName}. Rename a node. set_approved_routes: POST /api/v1/node/{nodeId}/approve_routes. Approve subnet routes for a node. set_tags: POST /api/v1/node/{nodeId}/tags. Set tags on a node.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "headscale_nodes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body for the Headscale operation. Secrets are redacted in previews. | |
| query | No | OpenAPI query parameters. | |
| action | Yes | Headscale operation to call. | |
| params | No | OpenAPI path parameters, such as nodeId or id. | |
| confirm | No | Set to the boolean true to execute the write. Omit this field for a dry-run preview. false and the string true are rejected. |