Skip to main content
Glama

cpu_return_lot

Send the full unsold remainder of your open or evicted lot from its hub to your own cell. Quote the route first, set a max transit fee, and the transfer is blocked if the fee exceeds that cap.

Instructions

Send one of your lots home: the whole unsold remainder ships from its hub to a cell you own, on-chain. Requires a session. Works on an OPEN lot (the offer is withdrawn) and on an EVICTED one (the hub owner threw it out and the units are still yours) — pass the lot and the client picks the right branch. Pass chain = [hub, ...waypoints, your destination cell] for the whole route (required). It is always the whole remainder, never part of it, and never more than one lot. Quote it first with cpu_quote_lot_return and pass the maxTransitFeeWei it answers with back here: this call re-prices the route on-chain and, if the fee has moved above the ceiling you passed, refuses before approving or sending anything rather than overspend it. The units are credited only after they arrive and you cpu_finalize_delivery on the returned deliveryId.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainYesWaypoint tokenIds [hub, ...waypoints, destination] for the whole route home — the first node is the hub holding the lot, the last is your own revealed cell where the remainder lands. Scout waypoints with cpu_next_hops.
lotIdYesThe lot to send home (must be yours; open or evicted).
maxTransitFeeWeiYesThe most transit you will pay for this return, in WEI (not $CPU) — copy the `maxTransitFeeWei` field from the `cpu_quote_lot_return` you just ran for this same lot and route, unchanged. Only the source hub charges the rate pinned when the lot was listed; every later waypoint on the way home can raise its own rate between that quote and this call, which is why this ceiling exists. The route is re-priced on-chain before anything is approved or sent, and a total above this figure is refused right there; the same figure then travels with the transaction as a cap on the whole route total, so the chain refuses it too if a rate moves before the call is mined. A ceiling that went stale costs you a re-quote instead of the difference.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Addedv0.10.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and meets it: it states a session is required, that the offer is withdrawn on an OPEN lot, that the call re-prices the route and refuses to overspend the ceiling, and that units are credited only after cpu_finalize_delivery. This is unusually transparent for a mutating operation.

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?

The core purpose is front-loaded in the first sentence, and every following sentence adds a distinct, necessary operational detail: session, eligible lot states, route shape, fee ceiling behavior, and finalization. There is no filler or repetition of the schema verbatim.

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 mutating, multi-step tool with no output schema, the description covers prerequisites, input requirements, failure semantics (refusal above ceiling), and the post-condition that delivery is only credited after finalization. It even names the returned deliveryId, so an agent has the operational picture needed to call and follow up.

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 already 100% and the schema descriptions are rich, so the baseline is 3. The description adds meaningful workflow semantics on top: the chain must be the whole route, the lot must be open or evicted, and the maxTransitFeeWei must come from a preceding cpu_quote_lot_return for the same lot and route.

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 opens with a specific action on a specific resource: sending a lot's unsold remainder home from its hub to a cell you own. It immediately distinguishes this from generic transport or other lot operations by limiting scope to the whole remainder of one lot.

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 usage conditions: requires a session, works on OPEN and EVICTED lots, always whole remainder, and never more than one lot. It mandates quoting first with cpu_quote_lot_return and warns of the on-chain re-price refusal, but it does not explicitly name alternative tools or cases where another operation should be used instead.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/projectcpu/project-cpu-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server