MCP tools: remote-machine-enroll
remote-machine-enroll
Registered when: a USER-TOKEN (gqut_) MCP session only, while machines.enabled is on for some org and the token holds machines; never an org API key. Machine tokens and enrollment status, never machine use: minting needs tokens.create_other_keys and asks first when the token requires approval (docs/design/machines-fullcontrol/ENROLLMENT.md).
machine_enroll_status
Read an enrollment (or, without enrollmentId, the newest 50): pending, completed (with the machines it created), cancelled or expired. Also lists headless enrollments made with a machine token. Read only.
| Parameter | Type | Required | Description |
|---|---|---|---|
enrollmentId | string | no | Enrollment id (uuid). |
Example call:
{"name":"machine_enroll_status","arguments":{}}
Related: machine_token_create, machine_token_list, machine_token_revoke.
machine_token_create
Mint a MACHINE TOKEN (gqme_...) for the person this user token acts for: it enrolls up to maxUses of their computers into the chosen orgs (goodqa-machine enroll --token <value> on the computer) and does nothing else. Needs the machines and tokens.create_other_keys abilities; when the token requires approval this answers human_approval_required first: tell the person, wait, then call again with approvalId. grants give an org member, API key (bot) or persona the preset on each enrolled machine: resting (look only; risky commands wait for approval), qa-tablet (adb only, no approval) or full (everything the machine offers, no approval). The value is in the result ONCE: hand it straight to the enroll command, never echo it into chat or tickets.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | |
orgIds | string[] | yes | Orgs (uuid) the machines join; you must be a member of each. |
preset | "resting" \ | "qa-tablet" \ | "full" |
grants | object[] | no | Who gets the preset on each enrolled machine (each orgId must be one of orgIds). |
grantHours | integer | no | Grant length; omitted = until revoked. |
labels | string[] | no | |
mode | "attended" \ | "unattended" | no |
maxUses | integer | no | Machines it may enroll (default 1). |
expiresInHours | integer | no | Default 24; never after this user token. |
approvalId | string | no | The approvalId from a previous human_approval_required answer, once the person approved it. |
Example call:
{"name":"machine_token_create","arguments":{"name":"<name>","orgIds":[]}}
Related: machine_token_list, machine_token_revoke, machine_enroll_status.
machine_token_list
List the machine tokens of the person this token acts for: orgs, preset, grants, uses, expiry and status (active, used_up, expired, revoked). Never a token value.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | "active" \ | "all" | no |
Example call:
{"name":"machine_token_list","arguments":{}}
Related: machine_token_create, machine_token_revoke, machine_enroll_status.
machine_token_revoke
Revoke a machine token so it enrolls nothing more (machines it already enrolled stay; the person revokes those). Use it the moment a token may have leaked.
| Parameter | Type | Required | Description |
|---|---|---|---|
tokenId | string | yes | Machine token id (uuid). |
Example call:
{"name":"machine_token_revoke","arguments":{"tokenId":"<tokenId>"}}
Related: machine_token_create, machine_token_list, machine_enroll_status.