Skip to main content
Glama

Book screens

advertiser.bookings.create
Idempotent

Book a quote with a creative. Spending limits are enforced. Depending on the account's approval rules the booking is paid at once with the saved card, returns a payment_url for the account holder, or waits for the account holder (the advertiser whose account this is, never the venue) to approve it by email (status awaiting_approval). Once paid, the booking is scheduled at once: venues take no part in booking and can only report an advert already showing on their screen. Some categories (alcohol, gambling, political, cannabis, tobacco_and_vaping, dating) are checked by Wall Marketing staff first. Read next_step in the result. Repeating the call with the same idempotency key never books twice.

Input Schema

NameRequiredDescriptionDefault
categoryYesWhat the advert is for; sensitive categories are checked by staff first.
quote_idYesFrom advertiser.bookings.quote; used once, within 30 minutes.
creative_idYesFrom bookings.upload_artwork.
campaign_nameYesA name for the campaign, shown on invoices and reports.
idempotency_keyNoAny unique string; reuse it when retrying the same booking.

Output Schema

NameRequiredDescriptionDefault
idNoThe booking_id.
errorNoPresent instead of the other fields when the call failed.
objectNoAlways "booking".
statusNoOne of: awaiting_approval, in_review, awaiting_payment, payment_expired, scheduled, live, finished, declined, cancelled.
paymentNoPayment state.
approvalNoThe account holder's approval and any staff check.
categoryNoThe advert's category.
currencyNoAlways "usd".
livemodeNoFalse in the sandbox.
quote_idNoThe quote it was booked from.
next_stepNoPlain-language instruction for what happens or what to do next.
total_usdNoTotal price in US dollars.
created_atNoWhen it was booked. ISO 8601, UTC.
placementsNoOne per venue, with its dates and state.
report_urlNoProof-of-display report (REST).
updated_atNoLast change. ISO 8601, UTC.
creative_idNoThe artwork shown.
campaign_nameNoThe campaign name.
status_reasonNoWhy it is declined or cancelled, if it is.
order_referenceNoWall Marketing's order reference once paid.
cancellation_requested_atNoWhen cancellation of a paid booking was requested. ISO 8601, UTC.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (which already state write, non-destructive, idempotent, closed-world), the description discloses spending-limit enforcement, three possible payment/approval outcomes with the awaiting_approval status, staff pre-review for six sensitive categories, immediate scheduling on payment, and that next_step in the result should be read. Idempotency behavior is stated in effect ('never books twice'), which is richer than the boolean hint alone.

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 purpose and its scoping (venue exclusion) are front-loaded, then the payment/approval branches, then category review, then idempotency. It is dense but nearly every clause carries decision-relevant information. Minor tightening is possible in the approval/payment sentence which is somewhat run-on.

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 high-stakes write with branching payment outcomes, the description covers what an agent needs: prerequisites, approval paths, staff-review delay, scheduling behavior, result field to inspect, and idempotency. With an output schema present and annotations covering safety hints, nothing material is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter (including the category enum, quote reuse window, and idempotency key). The description largely restates those semantics rather than adding new parameter-level detail, so the baseline of 3 applies.

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 gives a concrete verb and resource (book a quote/advert with a creative), and the rest of the description situates it precisely in the booking life-cycle, distinguishing it from advertiser.bookings.quote, .pay, and .approve_sandbox. An agent can identify this as the terminal step that actually commits a booking and schedules screens.

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 implicitly establishes prerequisites and sequencing: a quote and uploaded creative are required, and it explains the two downstream branches (immediate card payment / payment_url, or email approval to awaiting_approval). It also clarifies that venues play no part in booking, steering away from host/ambassador venue tools. It stops short of explicitly naming alternative tools or when-not-to-use conditions.

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.