Skip to main content
Glama

cpu_make_cell_offer

Bid on one exact Cell NFT you don't own in a single call. Handles currency approval, off-chain signing, and publishing, then returns the order hash.

Instructions

Bid on ONE exact Cell you do not own on the NFT marketplace, in a single call. This is the land market — Cells traded as NFTs for a configured ERC-20 currency — and it is entirely separate from cpu_create_lot, which sells RESOURCES for $CPU inside the game. What you publish here is a Cell offer: an off-chain signed Market order, not a Lot and never a Fill. The call performs the whole action itself: it checks that you are not about to duplicate an offer, reads your current order counter from the marketplace protocol contract, prepares the offer, sends any currency approval your wallet still owes and waits for each receipt, signs the offer locally, and publishes it. There is nothing to confirm afterwards. amount is what you bid, as a base-unit decimal integer STRING (never a number), in the currency the marketplace configures for this collection — the result reports that currency with its symbol and decimals. You never pass the currency or the protocol counter: the currency comes from the marketplace configuration and the counter is read from the marketplace protocol contract. The offer is always an item offer for the one exact Cell you name; this tool never creates trait or collection offers. Your currency approval is for exactly the amount you bid, never an open-ended allowance. Retrying is safe: an identical repeated call resumes the same prepared offer instead of publishing a second one, and an equivalent offer of yours that is already active is returned with already_completed rather than duplicated. The result reports status (completed, or already_completed), the published offer with its orderHash, the currency, and every approval transaction hash in the order it was broadcast.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
amountYesWhat you bid in WETH base units, as a positive decimal integer. WETH has 18 decimals, so 10000000000000000 base units is 0.01 WETH. If necessary, the tool wraps only the missing ETH.
tokenIdYesThe one exact Cell to bid on, as a decimal token id with no leading zeroes (e.g. "0" or "1234", never "01234"). Somebody else owns it.
expirationTimeYesThe Unix second at which the offer stops being acceptable. It must be in the future.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
offerYes
stageYes
amountYes
statusYes
walletYes
tokenIdYes
currencyYes
eventTypeYes
fundingTxHashesYes
approvalTxHashesYes

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, the description carries the full burden and does so thoroughly: it discloses the multi-step flow (duplicate check, reading the protocol counter, preparing the offer, sending approvals, waiting for receipts, signing locally, publishing), idempotent retry behavior, exact-amount approvals rather than open-ended allowances, and the returned status values. This is exemplary transparency.

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 description is dense but every sentence carries essential information about scope, process, parameters, or safety. It is front-loaded with the primary action and the key marketplace distinction, and the more detailed behavioral notes come after the core purpose is established.

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 complexity, lack of annotations, and the presence of an output schema, the description is complete: it covers what the tool does, how it differs from related tools, how parameters behave, what happens on retry, and what the result reports. Nothing critical is missing for an agent to invoke it correctly.

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?

The schema already covers 100% of parameters, so the baseline is 3. The description adds meaningful semantics beyond the schema: amount must be a base-unit decimal integer STRING, currency is never passed in, the protocol counter is never passed in, and the offer is always for the exact named Cell. This earns an above-baseline score.

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: 'Bid on ONE exact Cell you do not own on the NFT marketplace, in a single call.' It sharply distinguishes the tool from siblings by clarifying it publishes a Cell offer, 'not a Lot and never a Fill,' and explicitly names cpu_create_lot as the separate resource-selling tool.

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 explicitly states this is for the land/NFT marketplace and entirely separate from cpu_create_lot, which sells resources for $CPU in-game. It also says the tool 'never creates trait or collection offers' and that there is nothing to confirm afterwards, giving clear context for when to invoke it.

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