Skip to main content
Glama

Make an offer

market_make_offer

Offer a price on a listing for the person. The seller's rules agree or counter at once. Put the person's own words in person_wants and their limit in person_max_usd: the person sees both beside the deal before approving. Never offer above the person's limit. Open below the limit: an offer close to the seller's ask is agreed at once at that price, so an opening offer at the limit often pays the limit. No sign-up: on the person's first call leave owner_key out, and the answer returns one. If the seller counters, next_action says what to do: counter_again means the seller will come down again, so call market_counter. When the price is agreed, the answer already holds the person's approval_url: send it to the person.

Input Schema

NameRequiredDescriptionDefault
noteNoA short note to the seller with only what the person said, such as when they can meet. For a digital order, put what the seller needs here, such as the domain or channel URL. Leave it empty if they said nothing.
deliveryNoHow the person wants to get it; must be one the listing offers. Not needed for credit packs or digital listings.
owner_keyNoThe person's owner_key, if you have one. Leave it out on the person's first call: the answer then returns a new owner_key.
price_usdYesYour opening offer in USD. Start below the person's limit; raise later with market_counter if the seller counters.
listing_idYesA listing_id from market_search.
must_havesNoUp to 5 conditions the person named.
agent_labelNoWho you are, such as 'Claude for Ana'. Used only when you send no owner_key; shown to the other side of a deal. No personal data.
person_wantsYesWhat the person asked for, in their own words.
person_max_usdNoThe most the person said they will pay.
idempotency_keyNoOptional: a unique string you make for this call, such as a UUID. Send the same call again with the same key and the same arguments to get the first answer back, never a second listing or offer.

Output Schema

NameRequiredDescriptionDefault
dealYes
next_stepYesWhat to do next, in one or two sentences.
next_actionYesWhat to do next, as a code: the same advice as next_step.
seller_answerYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only tell the agent this is a non-read-only, non-destructive write; the description carries the real burden and does so: seller rules auto-agree or auto-counter, an opening offer at the limit often pays the limit, and a new owner_key is minted on the first call. The approval_url handoff to the person is a behavioral detail no annotation or schema field conveys.

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 action and its constraints are front-loaded, and each sentence carries usable information rather than restating the name. It is slightly dense and run-on, with several clauses chained by semicolons, but no sentence is clearly disposable.

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?

With 10 parameters and an output schema present, the description correctly focuses on process rather than return values, while still naming the salient answer fields (next_action, approval_url). It leaves unstated what happens on an outright rejection or a seller who never responds, which matters for an offer that may sit open.

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 100%, so the baseline is 3; the description earns above that by explaining the intent behind person_wants and person_max_usd (both shown to the person beside the deal before approving) and the constraint linking price_usd to person_max_usd. It doesn't add anything for delivery, must_haves, note, or agent_label beyond what the schema already says.

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 first sentence names a specific verb and resource ('Offer a price on a listing') and the beneficiary ('for the person'), immediately distinguishing it from market_counter and market_accept. The negotiation flow described makes it clear this is the entry point of a bargaining sequence, not an acceptance.

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?

Explicit conditional routing: omit owner_key on the first call, call market_counter when next_action is counter_again, send approval_url once the price is agreed. It also gives a concrete behavioral rule ('never offer above the person's limit') and the rationale for opening low.

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