Skip to main content
Glama

GetBody

Request a robot lease

request_lease

Request a time-boxed lease on a listing (listing_id from browse_listings) for your account. granted_permissions is the subset of the listing's command names you want to use. A GetBody operator approves each lease request: it stays REQUESTED until then (poll get_lease), then CONFIRMED, or REJECTED with a reason. The robot is controlled one command at a time. Nothing is charged.

Input Schema

NameRequiredDescriptionDefault
currencyNoPayments are not enabled yet: must be null or omitted.
body_kindNoWhich of the listing's bodies to lease; required when it offers both.
listing_idYes
window_endYesISO 8601 datetime, after window_start.
agreed_priceNoPayment isn't handled through the API (pricing and payouts: hello@getbody.md): must be null or omitted (else 400 payment_arranged_by_getbody).
window_startYesISO 8601 datetime.
granted_permissionsYesSubset of the listing's permissions_offered.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / control_mode
      Removed value: -{
      -  "default": "supervisory",
      -  "enum": [
      -    "supervisory",
      -    "teleop"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / promise_id
      Removed value: -{
      -  "description": "Redeem a promise of lease (from accept_inquiry): the window must lie within the promised window.",
      -  "type": "integer"
      -}
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=false), the description discloses the asynchronous approval workflow, that a human operator at GetBody approves, the three possible states, that rejection comes with a reason, that the robot is controlled one command at a time, and that nothing is charged. These are exactly the behavioral facts an agent cannot infer from structured fields.

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?

Four tight sentences, front-loaded with the action and the permission semantics, then the approval lifecycle, then the billing clarification. No sentence is redundant or could be dropped without losing information.

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

Completeness4/5

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

For a 7-parameter, non-idempotent mutation with no output schema, the description covers the lifecycle, polling target, and cost implications well. It omits what the call returns (a lease identifier) and the activation step via activate_lease, which an agent would need to complete the workflow.

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

Parameters4/5

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

Schema coverage is high (86%), so the baseline is 3, but the description adds real meaning by explaining granted_permissions as 'the subset of the listing's command names you want to use' and by pointing at browse_listings for the listing_id source. The window and payment parameters are left to the schema, which already documents them.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Request a time-boxed lease on a listing') and anchors listing_id to the sibling browse_listings. It does not explicitly distinguish itself from lifecycle siblings like activate_lease or create_inquiry, so sibling differentiation is only partial.

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

Usage Guidelines4/5

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

It gives clear context for when to call it and what happens next ('stays REQUESTED until then (poll get_lease), then CONFIRMED, or REJECTED'), which effectively tells the agent the follow-up tool. It stops short of naming when to prefer an alternative, such as find_robot_for_task before requesting, or activate_lease afterward.

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