Skip to main content
Glama

Claim Display

claim_display

Adopts an unclaimed guest or pending display as a managed personal display (permanent ownership transfer, counts against quota). Use only when the user explicitly wants to take over hardware that is already running; for first-time setup prefer pair_by_code. Requires admin scope.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
display_idYesThe short ID of the pending, guest or demo display to claim. This is the hardware or temporary ID shown on the device.
access_tokenNoOptional bearer token; prefer session_request_id.
profile_nameYesFriendly name to assign to the newly claimed display. Non-empty string. Example: 'Reception Kiosk'.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
profileIdNo
linkedHardwareIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "linkedHardwareId": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "name": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "profileId": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / session_request_id
      Added value: +{
      +  "description": "Session handle from create_auth_session; pass it on every authenticated call.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / access_token / description
      Previous value: -"Optional bearer credential. Prefer passing session_request_id (from create_auth_session) instead; every tool accepts it and the server resolves it to your identity server-side. Use access_token only when you hold an OAuth bearer token and your MCP client cannot send it as an Authorization: Bearer HTTP header automatically."New value: +"Optional bearer token; prefer session_request_id."
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "name": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "profileId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  4. Changed2 schema fields changed
    • changedOutput schema / properties / name / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / profileId / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / access_token / description
      Previous value: -"Optional JWT access token for authentication. Pass the token returned by get_auth_session when your MCP client does not send it as an Authorization: Bearer HTTP header automatically."New value: +"Optional bearer credential. Prefer passing session_request_id (from create_auth_session) instead; every tool accepts it and the server resolves it to your identity server-side. Use access_token only when you hold an OAuth bearer token and your MCP client cannot send it as an Authorization: Bearer HTTP header automatically."
  6. Changed3 schema fields changed
    • removedInput schema / properties / access_token / default
      Removed value: -null
    • changedInput schema / properties / access_token / type
      Previous value: -[
      -  "string",
      -  "null"
      -]New value: +"string"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "name": {
      +      "type": "string"
      +    },
      +    "profileId": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only provide generic false hints, so the description carries the burden. It discloses permanence ('permanent ownership transfer'), quota impact, and admin scope requirement. It does not contradict annotations; no conflict with destructiveHint=false since a transfer is not necessarily destructive.

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

Conciseness5/5

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

Two sentences, front-loaded with action and consequences, then usage guidance and auth requirement. No filler or repetition of schema text.

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?

With an output schema present and all parameters documented, the description covers the essential behavioral, usage, and auth context. It even names the alternative tool to keep the agent on the right path. No critical gap for invoking correctly.

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?

Schema description coverage is 100% and each parameter already has a descriptive schema comment, so the baseline is 3. The description reaffirms that display_id refers to an unclaimed/pending display and profile_name is the new friendly name but adds little beyond the schema.

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?

States a specific verb ('Adopts') and resource ('unclaimed guest or pending display'), and clarifies the result ('permanent ownership transfer, counts against quota'). It is clearly distinguishable from the sibling pair_by_code, which is called out by name.

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?

Explicitly instructs when to use ('only when the user explicitly wants to take over hardware already running') and when not to ('for first-time setup prefer pair_by_code'). Also states required permission (admin scope).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources