Skip to main content
Glama

DJfindr

Save the offer

edit_offer
DestructiveIdempotent

Save the offer. Needs bookings:write. Two calls. The first changes nothing: it checks the arguments as the change would (a field this tool does not take is refused, by name) and answers a summary and a confirm_token. Show the summary to the person; only after they agree, call again with the same arguments plus confirm_token.

Input Schema

NameRequiredDescriptionDefault
noteNoA note to the client.
itemsNoOther priced items (replaces the set): a name and an amount in minor units.
extrasNoPriced extras (replaces the set): an extra's slug or id and its amount in minor units.
ends_atNoThe new end (ISO 8601).
timezoneNoIANA time zone, such as America/Chicago.
starts_atNoMove the booked hours: the new start (ISO 8601). starts_at, ends_at and timezone are checked together.
expires_atNoWhen the offer expires: at least a day out and before the event (ISO 8601); null clears it.
requisitesNoRequisite slugs or ids (replaces the set).
proposal_idYes
builder_stepNoThe offer builder's step reached (only ever moves forward).
deposit_rateNoThe deposit as a fraction of the total, 0.1 to 0.7.
confirm_tokenNoLeave out on the first call. On the second call, the confirm_token the first call answered.
travel_amountNoThe travel fee. In minor units (cents).
deposit_amountNoA fixed deposit below the total, in minor units (cents); null returns to the rate.
equipment_htmlNoThe equipment the DJ brings, as HTML.
payment_structureNoA deposit first, or the full amount at once.
hourly_rate_amountNoThe hourly rate, $10 to $3,000. In minor units (cents).
expected_updated_atNoThe booking's `updated_at` as you read it: a booking that changed since is refused (precondition_failed). Leave it out to have the first call read the booking and pin it.
cancellation_deadline_atNoThe last moment the client may cancel (ISO 8601); null clears it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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 it discloses the required scope (bookings:write), that the first call is a no-op dry run, that unknown fields are refused by name, and that the second call must repeat identical arguments. This materially softens and explains the destructiveHint=true annotation by showing the confirm gate, which is exactly the context an agent needs before writing.

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?

Three short sentences, front-loaded with the action and the auth requirement, then the two-phase mechanic. Every clause carries information; nothing is repeated from the schema or annotations.

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 19-parameter mutation with no output schema, the description supplies the critical missing piece: the shape and purpose of the first call's return (summary, confirm_token). It stops short of saying what the confirming call returns or noting that items, extras, and requisites replace rather than merge sets, which matters given destructiveHint=true.

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 95%, so the schema already carries the parameter detail and the baseline is 3. The description nonetheless adds meaning the schema does not: confirm_token is a second-phase argument that must accompany an identical argument set, which is a calling convention rather than a field definition.

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 states a specific verb and resource ("Save the offer") and immediately characterizes the operation as a two-call confirm flow, so an agent knows it mutates an existing offer rather than creating one. It does not explicitly distinguish itself from nearby siblings such as send_offer or reject_offer, which would be needed for a 5.

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?

Procedural usage is spelled out precisely: call once without confirm_token, show the returned summary to the person, and only after agreement call again with the same arguments plus confirm_token. What is missing is tool-choice guidance — when to prefer edit_offer over send_offer, reject_offer, or get_booking_proposal.

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