Skip to main content
Glama

create_client

Generates a client connection token and a 15-minute invitation to connect one or multiple devices to Agenterm; set multi_device for reusable multi-device access.

Instructions

Create a client connection token and a 15-minute invitation. Set multi_device=true for multiple simultaneous devices and a reusable invitation; otherwise the invitation is single-use and only one device may connect. First show display_text including both platform commands in a progress message, then follow next_action: call list_clients with client_token and wait_ms=20000 repeatedly until a device connects, the invitation expires, or the user cancels. Do not end the turn after showing the invitation or after an empty result. Immediately notify the user when a device connects. Use client_id to target devices for multi-device tokens. Session tools use session_id after starting a session. Treat tokens and commands as credentials and share privately. Saying you are waiting is insufficient: the same response must actually call list_clients; invitation creation alone does not complete this task.

Input Schema

NameRequiredDescriptionDefault
multi_deviceNoTrue permits multiple simultaneous devices and reuses the invitation until expiry. False allows one device and a single-use invitation.

Output Schema

NameRequiredDescriptionDefault
expires_atYesInvitation expiry deadline as a UTC RFC 3339 timestamp.
invitationYesPrivate invitation credential for target-client authorization; expires at expires_at.
next_actionYesNext step to perform. Invitation creation returns the exact tool call and deadline; other tools return human-readable guidance.
client_tokenYesPrivate credential for this target group. Pass as client_token with management access (including stdio and no-password mode) or as the MCP bearer token for device-scoped access.
display_textYesUser-facing invitation text including credentials and both platform commands. Display before waiting for the device to connect.
multi_deviceYesTrue permits multiple simultaneous devices and reuses the invitation until expiry. False allows one device and a single-use invitation.
macos_linux_commandYesOne-command macOS/Linux installer containing private invitation access. Show to the target user privately.
windows_powershell_commandYesOne-command Windows installer containing private invitation access. Show to the target user privately.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.3.1-stdio.2
    • addedInput schema / properties / multi_device / description
      Added value: +"True permits multiple simultaneous devices and reuses the invitation until expiry. False allows one device and a single-use invitation."
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedOutput schema / properties
      Added value: +{
      +  "client_token": {
      +    "description": "Private credential for this target group. Pass as client_token with management access (including stdio and no-password mode) or as the MCP bearer token for device-scoped access.",
      +    "type": "string"
      +  },
      +  "display_text": {
      +    "description": "User-facing invitation text including credentials and both platform commands. Display before waiting for the device to connect.",
      +    "type": "string"
      +  },
      +  "expires_at": {
      +    "description": "Invitation expiry deadline as a UTC RFC 3339 timestamp.",
      +    "type": "string"
      +  },
      +  "invitation": {
      +    "description": "Private invitation credential for target-client authorization; expires at expires_at.",
      +    "type": "string"
      +  },
      +  "macos_linux_command": {
      +    "description": "One-command macOS/Linux installer containing private invitation access. Show to the target user privately.",
      +    "type": "string"
      +  },
      +  "multi_device": {
      +    "description": "True permits multiple simultaneous devices and reuses the invitation until expiry. False allows one device and a single-use invitation.",
      +    "type": "boolean"
      +  },
      +  "next_action": {
      +    "additionalProperties": false,
      +    "description": "Next step to perform. Invitation creation returns the exact tool call and deadline; other tools return human-readable guidance.",
      +    "properties": {
      +      "arguments": {
      +        "additionalProperties": false,
      +        "description": "Arguments to pass unchanged to the next tool call.",
      +        "properties": {
      +          "client_token": {
      +            "description": "Private credential for this target group. Pass as client_token with management access (including stdio and no-password mode) or as the MCP bearer token for device-scoped access.",
      +            "type": "string"
      +          },
      +          "wait_ms": {
      +            "description": "Server-side polling duration in milliseconds; repeat waits until the action deadline or a terminal result.",
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "client_token",
      +          "wait_ms"
      +        ],
      +        "type": "object"
      +      },
      +      "instructions": {
      +        "description": "Workflow guidance for completing the next action.",
      +        "type": "string"
      +      },
      +      "tool": {
      +        "description": "Name of the next MCP tool to call.",
      +        "type": "string"
      +      },
      +      "until": {
      +        "description": "UTC RFC 3339 deadline for following this action.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "arguments",
      +      "until",
      +      "instructions"
      +    ],
      +    "type": "object"
      +  },
      +  "windows_powershell_command": {
      +    "description": "One-command Windows installer containing private invitation access. Show to the target user privately.",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "client_token",
      +  "multi_device",
      +  "invitation",
      +  "expires_at",
      +  "next_action",
      +  "macos_linux_command",
      +  "windows_powershell_command",
      +  "display_text"
      +]
  2. First observedv0.3.1-stdio.1

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the 15-minute invitation lifetime, single-use versus reusable invitation semantics, polling behavior with list_clients, and the fact that tokens and commands are credentials to be shared privately. It also states that invitation creation alone does not complete the task and that the agent must actually call list_clients rather than merely saying it is waiting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is quite long and contains repeated workflow warnings, such as 'Do not end the turn' and 'Saying you are waiting is insufficient,' plus a tangential note about session_id. The complexity partly justifies the length, but it could be tightened without losing required guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a defined workflow and an output schema, the description is complete enough to call and operate correctly: it explains creation semantics, the required progress message, the polling loop, notification timing, and credential handling. The output schema can cover return structure, so the description does not need to duplicate it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 100% schema description coverage, and the description largely restates the schema’s explanation of multi_device. It does not add syntax or edge-case detail for that parameter beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a client connection token and a 15-minute invitation.' It also clarifies the multi_device behavior and contrasts the client-token workflow with session tools that use session_id, making the tool’s role clear relative to siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditions for multi_device=true versus the default single-use/single-device case, then prescribes the follow-up sequence: show display_text, call list_clients repeatedly with client_token and wait_ms=20000, and continue until a device connects, the invitation expires, or the user cancels. It also warns not to end the turn after showing the invitation or an empty result.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.