Invite a tailnet member
invite_userSend a Tailscale invitation to an email address, adding the recipient to your tailnet. Use print_link to return an invite URL instead of emailing; elevated roles require owner opt-in.
Instructions
Sends a real Tailscale invitation to a real email address, so confirm the address and role with the user before calling this. The invitation joins the recipient to the user's tailnet. Set print_link true to receive a bearer invite URL instead of having Tailscale send the email. A role other than member is refused with mcp_elevated_invite_refused unless the owner set mcp.allow_elevated_invites in config.json; the user can always run tslink invite user themselves.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role assigned on acceptance. Defaults to member. Any other role needs the owner's opt-in (mcp.allow_elevated_invites in config.json). | |
| Yes | Recipient email address. | ||
| print_link | No | Do not send email; return the API-provided invite URL for the user to deliver. Anyone holding that URL can accept. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes | ||
| role | No | ||
| No | |||
| created | No | ||
| emailed | Yes | ||
| service | No | ||
| accepted | No | ||
| device_id | No | ||
| multi_use | No | ||
| recipient | No | ||
| invite_url | No | Bearer invitation URL. Present only when the invite was created with print_link true or when invite_list was called with show_urls true; anyone holding it can accept the invitation. | |
| target_kind | No | ||
| allow_exit_node | No | ||
| last_email_sent_at | No | ||
| remote_side_effect_plan | Yes |