Invite someone to a device
invite_deviceShares a TSLink service device with a recipient outside the tailnet via email, or returns a bearer invite URL instead when print_link is true.
Instructions
Sends a real device-sharing invitation to a real email address outside the tailnet, so confirm the service and address with the user before calling this. It shares one TSLink-owned service device with that person. Set print_link true to receive a bearer invite URL instead of having Tailscale send the email.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Recipient email address. | ||
| service | Yes | Exact registered service name whose device is shared. | |
| multi_use | No | Allow the invitation to be accepted more than once. | |
| print_link | No | Do not send email; return the API-provided invite URL for the user to deliver. Anyone holding that URL can accept. | |
| allow_exit_node | No | Allow the recipient to route traffic through the shared device as an exit node. Needs the owner's opt-in (mcp.allow_elevated_invites in config.json); otherwise refused with mcp_elevated_invite_refused. |
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 |