MCP tools: remote-machine-enroll

All tool groups

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.

ParameterTypeRequiredDescription
enrollmentIdstringnoEnrollment 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.

ParameterTypeRequiredDescription
namestringyes
orgIdsstring[]yesOrgs (uuid) the machines join; you must be a member of each.
preset"resting" \"qa-tablet" \"full"
grantsobject[]noWho gets the preset on each enrolled machine (each orgId must be one of orgIds).
grantHoursintegernoGrant length; omitted = until revoked.
labelsstring[]no
mode"attended" \"unattended"no
maxUsesintegernoMachines it may enroll (default 1).
expiresInHoursintegernoDefault 24; never after this user token.
approvalIdstringnoThe 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.

ParameterTypeRequiredDescription
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.

ParameterTypeRequiredDescription
tokenIdstringyesMachine token id (uuid).

Example call:

{"name":"machine_token_revoke","arguments":{"tokenId":"<tokenId>"}}

Related: machine_token_create, machine_token_list, machine_enroll_status.

We use essential cookies to keep you signed in. See our Privacy Policy for details.