Skip to main content
Glama

cpu_buy_cell

Buy one specific Cell NFT listing in a single call, setting exact order hash and price ceiling. If that order is stale or repriced, it fails without substituting a different Cell.

Instructions

Buy ONE exact Cell listing on the NFT marketplace, in a single call. This is the land market — Cells traded as NFTs for a configured currency — and it is entirely separate from cpu_buy_lot, which buys RESOURCES for $CPU inside the game. YOU PICK THE ORDER. Read cpu_get_cell_market first and pass that listing's exact expectedOrderHash. If that order has been filled, cancelled, expired, or repriced above your maxAmount, the call fails with staleListing, unfulfillable, or a local price-limit error and buys NOTHING — it never substitutes a different listing or a different Cell for you. maxAmount is a hard ceiling in the currency base units, as a decimal integer STRING (never a number). The call refuses to send anything that would cost more. The call performs the whole action itself: it prepares the purchase, checks that the prepared work is still that exact order, sends any currency approval the wallet still owes and waits for its receipt, then sends the one fulfilment transaction. There is nothing to confirm afterwards. Success is proven, not assumed: the receipt must carry the protocol's own fulfilment event for that exact order, the transaction must have been sent by your wallet, and the Cell must end up owned by you. Ownership alone is never accepted as proof that you were the buyer. Retrying is safe for your money: a repeated call re-checks the transaction it already sent instead of buying again, and can never bind a second order. At worst a retry spends gas on a transaction the protocol rejects. The result reports status (completed, or already_completed when the purchase proved to be done already), the orderHash bought, the seller, the price paid, and every transaction hash in txHashes in the order it was broadcast.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenIdYesThe Cell the listing sells, as a decimal token id with no leading zeroes (e.g. "0" or "1234", never "01234").
maxAmountYesThe most you are willing to pay, as a positive decimal integer of the currency base units — never a decimal fraction. If the pinned order costs more than this, the call fails without sending anything.
expectedOrderHashYesThe exact 32-byte 0x-prefixed `orderHash` of the listing you decided to buy, copied from `cpu_get_cell_market`. This tool buys that order or nothing: it never falls back to a cheaper, newer or otherwise different listing.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
priceYes
stageYes
sellerYes
statusYes
walletYes
tokenIdYes
currencyYes
txHashesYes
eventTypeYes
maxAmountYes
orderHashYes
approvalTxHashesYes
fulfilmentTxHashYes

Schema Changelog

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

  1. Addedv0.13.0

TDQS

A4.9/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 burden of behavioral disclosure, and it delivers thoroughly. It reveals the call's internal workflow: preparing the purchase, verifying the exact order, sending owed currency approval, waiting for the receipt, and sending the fulfilment transaction. It also discloses retry safety ('can never bind a second order'), proof requirements, and the exact failure modes, which is exceptional transparency for a financial mutation.

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

Conciseness4/5

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

The description is long, but the length is justified by the tool's financial risk and complexity. It is front-loaded with the core action, then covers prerequisites, failure modes, safety, and result semantics. There is some redundancy around 'exact order' and 'never substitutes a different listing', which appears multiple times, so it is not perfectly concise.

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?

Given the tool's high stakes—spending currency, sending approvals, and fulfilling an NFT order—the description is remarkably complete. It covers prerequisites, failure conditions, retry behavior, proof of success, what the result reports, and even the worst-case retry cost. The input schema and output schema provide the remaining structured detail, so nothing critical is missing.

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

Parameters5/5

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

Although the schema already covers all parameters at 100%, the description adds valuable behavioral meaning beyond the schema. It explains that expectedOrderHash must be copied from cpu_get_cell_market and binds the purchase to that exact listing, clarifies maxAmount is a hard ceiling in base units and must be a decimal integer string, and ties tokenId to the specific Cell the listing sells. This is more than the schema alone provides.

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 verb and resource: 'Buy ONE exact Cell listing on the NFT marketplace, in a single call.' It explicitly contrasts this with cpu_buy_lot, which buys resources for $CPU, so the agent cannot confuse the two. The scope ('ONE exact Cell listing', never substitutes another listing) is unusually precise.

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?

The description gives an explicit prerequisite: read cpu_get_cell_market first and pass that listing's exact expectedOrderHash. It also names the key alternative, cpu_buy_lot, and states the exact condition that separates them (land/NFT market vs in-game resource purchases). It further clarifies what happens if the order is stale, cancelled, expired, or repriced, so the agent knows when the call will fail.

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