Trillboards Campaign Planner
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Plan and book out-of-home, CTV, video, audio and display campaigns, paid through Stripe.
| Author | com.trillboards |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 200 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Trillboards Campaign Planner": {
"url": "https://api.trillboards.com/mcp/advertiser",
"transport": "streamable-http"
}
}
}
Measured tools (9)
search_ad_inventoryread-onlyFind local digital out-of-home screens and available CTV, video, audio and display products for an agency client. Uses the advertiser portal inventory and prices.
Parameters:
city— string — Native city filter. For neighborhoods such as Manhattan, use radius around the requested area instead.limit— integerquery— string — Screen or venue text filter. Use geographic radius for a neighborhood; a text match is not a location search.state— stringcursor— stringradius— object — Geographic inventory search around the client location. Use this for neighborhoods and nearby screens, without an additional neighborhood text or city filter.source— stringchannels— array
Hints: read-only yes · destructive no · idempotent yes · open-world no
preview_campaign_planread-onlyPreview native campaign pricing and audience estimates for selected screens and channels. This does not reserve inventory or charge the advertiser.
Parameters:
flightStart(required) — string — Local calendar date, YYYY-MM-DD.flightEnd(required) — string — Local calendar date, YYYY-MM-DD.source— stringendTime— stringquoteId— stringquoteIds— objecttimezone— string — IANA timezone for the local flight.budgetUsd— numberscreenIds— arraystartTime— stringclientName— stringlandingUrl— string — Client business or campaign landing page URL.impressions— integercampaignName— stringproviderPlanownedBudgetUsd— numberadvertisementId— stringownedImpressions— integerpartnerBudgetUsd— numberpartnerImpressions— integer
Hints: read-only yes · destructive no · idempotent yes · open-world no
save_campaign_draftdestructiveSave or update an agency-owned campaign and selected inventory in the advertiser portal. The agency remains the owner and payer; clientName labels the client brief.
Parameters:
flightStart(required) — string — Local calendar date, YYYY-MM-DD.flightEnd(required) — string — Local calendar date, YYYY-MM-DD.idempotency_key(required) — string — Stable unique key for this action. Reuse this key and unchanged arguments when retrying.source— stringendTime— stringquoteId— stringquoteIds— objecttimezone— string — IANA timezone for the local flight.budgetUsd— numberscreenIds— arraystartTime— stringclientName— stringlandingUrl— string — Client business or campaign landing page URL.impressions— integercampaignName— stringproviderPlanownedBudgetUsd— numberadvertisementId— stringownedImpressions— integerpartnerBudgetUsd— numberpartnerImpressions— integer
Hints: read-only no · destructive yes · idempotent yes · open-world no
attach_campaign_creativedestructiveCopy a user-selected creative file into the native campaign asset and moderation flow. Attach artwork before booking. Existing live artwork changes follow the portal replacement workflow.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.idempotency_key(required) — string — Stable unique key for this action. Reuse this key and unchanged arguments when retrying.creativeFile(required) — object
Hints: read-only no · destructive yes · idempotent yes · open-world yes
prepare_campaign_bookingread-onlyRead the exact current campaign selections, total, currency and creative readiness for the buyer to review before payment.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.quoteId— stringquoteIds— objectbookingIds— arrayproviderLineIds— array
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_campaign_checkoutCreate a Stripe checkout for the exact campaign and total the buyer reviewed. Open the returned checkoutUrl to complete payment. The campaign is booked after the verified native Stripe payment webhook.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.idempotency_key(required) — string — Stable unique key for this action. Reuse this key and unchanged arguments when retrying.reviewedSubtotalUsd(required) — numberreviewedAmount(required) — integer — Exact amountMinor from prepare_campaign_booking, in the currency minor unit.reviewedCurrency(required) — string — Exact currency from prepare_campaign_booking.reviewedSelection(required) — string — Exact native reviewedSelection from prepare_campaign_booking; binds the reviewed inventory, flight, quantities and targeting.quoteId— stringquoteIds— objectbookingIds— arrayproviderLineIds— array
Hints: read-only no · destructive no · idempotent yes · open-world yes
get_campaign_statusread-onlyRead the campaign and booking progress from the same order records as the advertiser portal, including creative review, scheduled dates and live fulfillment.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_campaign_deliveryread-onlyRead measured campaign delivery and screen performance from the native campaign reporting services.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.limit— integer
Hints: read-only yes · destructive no · idempotent yes · open-world no
rebook_campaignCopy a previous campaign into a new unpaid campaign for new dates, preserving native creative lineage and obtaining fresh prices. Rebooking requires a new review and payment.
Parameters:
advertisementId(required) — string — Native campaign ID returned by save_campaign_draft.idempotency_key(required) — string — Stable unique key for this action. Reuse this key and unchanged arguments when retrying.flightStart(required) — string — Local calendar date, YYYY-MM-DD.flightEnd(required) — string — Local calendar date, YYYY-MM-DD.
Hints: read-only no · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.