addBroadcastBuyCompositionAvail
ChatGPTAdd one submitted, orderable option to an editable saved buy composition. The new option starts with zero spots in every offered week; save its exact weekly quantities separately. This does not create or send Orders.
addBroadcastOrderAvails
ChatGPTAdd the selected submitted avails to an editable broadcast Order draft using its current version. Does not send or pay.
addBroadcastRfpRecipient
ChatGPTAdd one eligible station to a sent RFP and contact it with the current revision. Use a grounded property ID plus the exact current RFP version and revision. Requires approval before sharing the RFP with and contacting the added supplier.
adjustBroadcastCampaignDrafts
ChatGPTAtomically update the Campaign budget or shift its flight by whole weeks, plus every unsent RFP; also supports a common market-local response deadline. Supply current Campaign values and every draft version from getPlanContext. If these edits make the Campaign overview stale, include changes.objective with its expected current text and a replacement preserving unaffected detail. For a budget change pass each new RFP allocation, retaining intended reserves and other media. Each allocation must be positive; zero is invalid. This cannot remove markets or RFPs. All edits roll back on a stale version, changed overview or invalid draft. Preserves CPMs, weekly weights, audiences, recipients, notes and unchanged deadlines. Sent RFPs and Orders stay unchanged. Use the single-RFP adjustment only for changes scoped to one RFP. Replaces saved campaign values and affected draft details together. Requires approval for the campaign and drafts. Nothing is sent.
adjustBroadcastRfpDraft
ChatGPTAdjust an unsent RFP draft using its current version from Campaign context. Scale its goal budget while preserving CPMs and relative weekly weights, shift its flight by whole weeks, or set a market-local response deadline. Tap reads and preserves all other draft fields inside the version-checked transaction; do not read and rewrite the full RFP for these changes. Does not change the Campaign header, recipients, sent revisions, or Orders. Returns the saved summary and exact resulting budget. Overwrites the selected draft details. Requires approval. Nothing is sent.
amendBroadcastRfpDeadline
ChatGPTAmend the shared deadline on a sent RFP’s open Exchanges. Read first and use the exact current version and revision ID. Requires approval before changing the live deadline and notifying suppliers.
applyBroadcastRfpCpmReduction
ChatGPTApply one station-facing CPM reduction to an RFP draft using its current version; 17% = 1700 basis points. Recomputes from sourceGoalCpmCents and never compounds. For a legacy draft without source CPMs, pass the replaced percentage as supersedesReductionBasisPoints. Returns the saved RFP artifact; do not calculate the adjusted CPMs yourself. Saves station-facing CPM goals calculated from the original source CPMs. A new reduction preference replaces the previous one rather than compounding it. Requires approval. Nothing is sent.
assembleBroadcastBuy
ChatGPTCalculate a deterministic review-only buy from submitted responses, current Orders, and exact weekly goal lines. Returns cost-efficient integer spot quantities without substitution across market/demo/daypart/length. Present its basis and gaps. It never creates, edits, or sends an Order.
assignBroadcastOrderCreative
ChatGPTAssign the reviewed existing creative asset to the specified confirmed Order line. The supplier can see the assignment. Does not upload a new asset or serve an advertisement.
changeDoohMapArea
ChatGPTCreate, rename or remove a named DOOH map area saved with the campaign. A circle uses a latitude/longitude center and radius in km; a box uses west/south/east/north bounds. Ground coordinates in the buyer's supplied location or verified geography; do not invent landmark coordinates. For create, supply a fresh UUID and reuse it unchanged for retries. For rename/remove use the ID and expectedVersion from getDoohMapAreas. This changes reference areas only; it never adds or removes campaign screens, reserves inventory or sends an Order. Report saved only after success. Create, rename or remove a reviewed saved DOOH map area with its retry identity and expected version. Removal affects the saved planning area, not an Order.
closeBroadcastRfpExchange
ChatGPTClose one open RFP Exchange, optionally with the buyer-supplied reason. Read first and use the exact current RFP version and Exchange ID. Requires approval before closing the supplier exchange and stopping further responses.
closeOpenRfp
ChatGPTClose the public RFP at its reviewed version, stopping further supplier responses. Existing submitted responses remain available; this does not cancel an Order.
configureDoohPlan
ChatGPTCreate or update one active DOOH allocation on a draft campaign. Pass allocationId with expectedVersion to update; omit both to create. Read getDoohPlanningContext first and preserve unchanged terms and strategyName. Never edit an allocation locked by an active Order or marked superseded. Prefer inventoryPreferences with catalogPublicationId and exact options from searchDoohInventoryOptions; exact screen selections remain supported. Saving does not contact suppliers, reserve inventory or send an Order. This plugin cannot place Orders or record bookings.
convertRfpBuyingMethod
ChatGPTConvert a never-sent TV or radio draft between private recipient-based and public RFP buying methods. Replaces the source draft with a new ID, preserving requirements; may use accounted AI completion for missing fields. Re-read the returned draft before further actions. Does not send or publish.
createBrand
ChatGPTCreate a buyer-owned Client that does not already exist. Client Code and website are optional; Tap derives a code when omitted. Store grounded planning context as focused Markdown memories with useful titles, not a fixed audience checklist. Keep product codes and brand kit structured. Returns brandPublicId for setPlanCommercialIdentity. When a website is supplied, starts background public-website enrichment to fill missing client profile details.
createBroadcastBuyComposition
ChatGPTSave a reviewable TV or radio buy composition from submitted, orderable response options and exact weekly spot quantities. Use origin generated with the matching strategy for an assembleBroadcastBuy recommendation; use origin manual with a null strategy for a buyer-authored mix. This saves an internal candidate only. It does not create or send Orders. Creates a saved planning option only when requested. A recommendation alone should use assembleBroadcastBuy. Saving does not place an Order. The plugin cannot place Orders or record bookings.
createBroadcastOrderDraft
ChatGPTCreate an unsent broadcast Order draft from selected submitted supplier avails. Inspect existing Orders first. Does not send, confirm or pay.
createBroadcastRfpDrafts
ChatGPTCreate or reuse a batch of TV/radio RFP drafts for one Campaign. Before adding a TV/radio market, establish its positive budget allocation and target impressions. Complete goal lines require an explicit Campaign audience, daypart, spot length, and CPM; keep proposed markets in chat while figures are missing instead of creating unallocated shells. Preserve buyer-authored daypart names and exact market-local hours with goalLines.daypartLabel and goalLines.daypartWindows. Omit these only when using the standard preset; do not create a preset then rewrite the complete draft. Tap validates market data and budget limits, calculates exact weekly impressions from the supplied inputs, and never distributes the RFP. Returned budgetCents preserves the requested allocation. goalBudgetCents is the derived cost of whole-impression goals and may be a few cents lower; never substitute it for the requested budget. Omit activeWeekStarts for a continuous flight. Returns complete eligible station facts for pending recipient recommendations; stage directly from those facts without another directory read. May reuse existing matching drafts; the result distinguishes created drafts from existing drafts. Nothing is sent.
createClientProduct
ChatGPTCreate one reusable active Product under a buyer-owned Client when both Product Code and Name are grounded and no active match exists. Product Code is the second CPE segment; Estimate Number belongs to the Campaign. Returns productPublicId for setPlanCommercialIdentity.
createOpenRfpDraft
ChatGPTCreate a private open RFP brief and its campaign Media row for any supported media type, including Cinema, CTV, Print, Social, Search or Any media. Requires no inventory or station recipients. TV and Radio compose the generic narrative with brief.broadcast: exact directory market, active weeks, campaign audience IDs, dayparts, spot lengths, full-flight CPMs and weekly impression goals. Use the same broadcast requirements as a Private RFP; preserve them when editing. Does not publish, contact suppliers or create an Order. Put the unified supplier-facing Markdown brief in objective; use empty audience and notes when included there. Read existing requests before adding to an existing campaign to avoid duplicates. Create a private public-RFP draft for any supported media category and its campaign media activity. Does not publish or notify suppliers.
createPlan
ChatGPTCreate a buyer-owned draft Campaign from grounded campaign facts. Requires valid flightStart and flightEnd dates. Ask the buyer for missing dates before calling this tool; never invent dates or create an undated Campaign shell. Campaign mediaTypes accepts tv, radio and ooh execution workstreams only. For other media, omit it and create the Media row with createOpenRfpDraft using the requested mediaType. Include every known target market by directory name. Tap resolves and assigns the canonical markets during creation. Include grounded initial audienceLabels to create the canonical audiences in the same call. Use their returned IDs for RFP goals. When brandName is supplied, Tap reuses an exact owned Client or creates and assigns it; website is optional. This creates planning context only, not an RFP. Creates campaign context. Supplying a website for a newly created client also starts background public-website enrichment.
createPlanAudience
ChatGPTAdd an active reusable standard age/gender audience to an existing Campaign and return its canonical ID. For a new Campaign, supply audienceLabels to createPlan. Use a buyer-supplied definition or one supported by grounded campaign context. If several definitions are plausible and the choice would materially change the buy, ask the buyer. Use the returned ID in RFP selections and weekly goals.
createSupplierDealOrder
ChatGPTPrepare an unsent direct-buy Order from the reviewed supplier Deal or quote, selecting exact avails and weekly quantities. Inspect existing Orders first. Does not send or pay.
deleteBrands
ChatGPTPermanently delete explicitly requested buyer-owned Clients/brands by brandPublicId. Deletes dependent products, folders, memories and website, asset and saved-file metadata; linked Campaigns retain briefs but lose the Client. Can also delete supplier-owned routing rules that reference the Client. It does not send supplier messages. Deletes specifically identified client records and dependent products, folders, memories, website, asset and saved-file metadata. Linked campaigns lose client associations. Can also delete supplier-owned routing rules referencing the client. Requires approval. Cannot delete all client data, campaigns, RFPs, responses, orders or organizations. Explain those limits instead of offering broad deletion.
estimateDoohPlan
ChatGPTCalculate the server-owned budget and historical-availability estimate for one DOOH allocation. The result is directional and never guaranteed; return unavailable when the model cannot be calculated. Calculate a directional DOOH estimate using the authorized allocation and catalog history. Does not save, reserve or book inventory.
forgetMemory
ChatGPTDelete a wrong or outdated saved memory by memoryPublicId. Requires approval before permanently deleting the saved memory and its links.
getBroadcastAvailResponse
ChatGPTRead one submitted private broadcast response and its exact revision. A response is a menu of individual avails, not an indivisible package.
getBroadcastBuyingContext
ChatGPTRead one Campaign’s RFP goals, submitted response menus, Draft/Ordered/Confirmed Orders, and submitted Post-Buy delivery summaries. Order totals and warnings describe projections, not actual delivery. Actual delivery comes only from submittedPostBuy. Creative and correspondence are not checked by this tool; do not infer completion or that nothing is waiting from their absence. Read-only; it never saves quantities or sends an Order.
getBroadcastInventoryOverview
ChatGPTRead the buyer-visible station directory by market and medium. Use it to resolve market intent and TV/radio coverage before drafting.
getBroadcastOrder
ChatGPTRead an authorized broadcast Order, its source, current version, fee quote, terms, state and available actions.
getBroadcastPropertyPublicFiles
ChatGPTRead public collateral for one buyer-visible station, including media kits, specifications, and case studies. This is read-only; cite grounded source material and never infer missing commercial facts.
getBroadcastRfp
ChatGPTRead a complete buyer-owned RFP: working draft, revision, recipients, completion issues, and version. Each mutation validates the current lifecycle state and version.
getCensusMarketInsights
ChatGPTRead the enabled U.S. Census ACS profile snapshot for up to 20 named Tap markets. Returns population, household, age, income, poverty, education, broadband, and home-ownership measures with the dataset year. Use this as directional market and audience planning evidence, not as measured media reach or supplier inventory.
getCurrentIdentity
ChatGPTReturn the authenticated Tap buyer and selected buyer organization for this connection. Use this to confirm which account an MCP action will affect.
getCurrentTime
ChatGPTGet the authoritative current date and time in UTC. Use this for time-sensitive questions and relative dates such as today, tomorrow, or now instead of guessing. Read the current clock without changing Tap data.
getDoohCommerceWorkspace
ChatGPTRead the authorized DOOH Order workspace, current terms, allowed actions, messages, creative status and post-buy results. A pending Order awaits supplier confirmation; confirmation does not establish creative approval or delivery. Available actions describe the full Tap product, not the plugin catalog. This plugin cannot place Orders or record bookings.
getDoohInventoryOverview
ChatGPTList countries with catalog screen counts using {scope: "countries", countryCode: null}; use scope: "regions" and countryCode from the result to list its states/regions with counts. Returns every place with inventory, exact catalog totals, unassigned counts and reusable geography.selection values. Counts cover the full published catalog, not a truncated page, and do not guarantee availability, audience delivery or prices. regionsAvailable=false means regional assignment is unavailable, not zero inventory. No Campaign required. Read the published DOOH catalog overview and readiness; no live inventory purchase occurs.
getDoohMapAreas
ChatGPTList named saved DOOH boxes and circles (landmarks) for an owned campaign, including exact geometry, IDs, edit versions and whether the campaign can be edited. Read before renaming or removing an area. Read saved DOOH planning areas without changing geometry or campaign selections.
getDoohPlanningContext
ChatGPTRead authorized DOOH campaign allocations, current versions, active Orders and planning readiness before editing. An active Order locks its allocation. Does not contact suppliers or change the campaign. This plugin cannot place Orders or record bookings.
getOpenRfp
ChatGPTRead one campaign open RFP brief, media type, state and current version before editing. Read an authorized public RFP brief, media type, state and current version without changing it.
getOpenRfpDraftContext
ChatGPTRead authorized campaign audiences, exact markets and their standard dayparts before composing public TV or Radio RFP requirements. Does not create requests or select stations. Read authorized campaign audiences, exact broadcast markets and dayparts for public TV and radio RFP drafting.
getOpenRfpResponse
ChatGPTRead the buyer-visible public RFP response workspace, immutable submitted quote options and commercial totals. Never use a withdrawn, expired or superseded quote as current.
getPlanContext
ChatGPTRead canonical Campaign context for RFP work: objective, selected media workstreams, optional commercial identity, active Product options, flight, active Campaign-owned audiences, target markets with canonical market-local daypart presets, existing RFP lifecycle states, and explicit timezone resolution status. Treat each returned RFP state and sentAt as authoritative; a sent RFP is not an unsent draft.
getRfpExchangeConversation
ChatGPTRead the current private RFP exchange conversation without marking messages read.
getRfpExchangeHistory
ChatGPTRead prior revisions and historical correspondence for the private supplier exchange.
getSupplierDeal
ChatGPTRead the authorized supplier Deal, rates, available avails, quote, correspondence and Orders before responding or buying.
linkMemories
ChatGPTLink two saved memories with a directed edge and optional relation label. Use when one fact explains or relates to another, not to replace an active preference.
listBroadcastBuyCompositions
ChatGPTList the saved TV or radio buy compositions for one Campaign, including exact option selections, weekly quantities, totals, source state, and version. Use this before editing or ordering a saved composition. Read-only; it never creates or sends an Order.
listBroadcastDirectoryProperties
ChatGPTList every buyer-visible TV or radio station matching market names and media types. Use this for requests to name stations, call signs, listing owners, or the underlying directory without requiring a Campaign or RFP. RFP stageability is reported separately from directory visibility. Read-only; it never creates a Campaign or RFP and never contacts a supplier.
listBroadcastOrderCreatives
ChatGPTRead creative fulfillment and assignment status for an authorized confirmed broadcast Order.
listBroadcastOrders
ChatGPTList authorized Orders for a private broadcast RFP.
listBroadcastRecipientCandidates
ChatGPTList the complete buyer-visible station set eligible for one RFP’s exact market and medium. Use after creating an RFP draft to make its grounded recipient recommendation, or when the buyer asks to inspect or compare the underlying supplier directory. Read-only; it never selects or contacts a property.
listBroadcastRfps
ChatGPTList one Campaign’s broadcast RFP summaries and calculated goal budgets. Use getBroadcastRfp when the complete current artifact is needed.
listDoohOrders
ChatGPTList authorized buyer DOOH direct-buy Orders, statuses and campaign links. Does not place an Order or contact suppliers.
listMyPlans
ChatGPTList the authenticated buyer organization's Campaigns. Use state: null to include all lifecycle states in one read; filter only when requested. Includes brand, budget, flight, and media to identify the right Campaign. This is read-only.
listOpenRfpResponseMessages
ChatGPTRead the buyer-visible public RFP response conversation with cursor pagination. Does not send or acknowledge messages.
listOpenRfpResponses
ChatGPTList submitted supplier responses to a public RFP, including revision and availability states. Supports cursor pagination; reading does not mark a response reviewed.
listOpenRfps
ChatGPTList a campaign’s open RFP media activities across all media types and states; inspect before adding another sourcing brief. List the campaign public RFP media activities and states without changing records.
listRfpExchangeInbox
ChatGPTList authorized private RFP supplier exchanges and their current statuses.
listSupplierDeals
ChatGPTDiscover eligible public supplier Deals and private Deals delivered to this buyer, including current status and expiry. Does not mark them viewed.
markRfpExchangeRead
ChatGPTExplicitly mark the private supplier conversation read for the current buyer. Reading a conversation alone does not acknowledge it.
markSupplierDealViewed
ChatGPTExplicitly acknowledge a supplier Deal as viewed. This supplier-visible acknowledgement is not acceptance or an Order.
postOpenRfpResponseMessage
ChatGPTSend the exact reviewed message to the supplier on this public RFP response. Use a stable UUID clientId for retries. The supplier can read the message; it cannot be recalled through MCP.
postRfpExchangeMessage
ChatGPTSend the exact reviewed message to the private RFP supplier and notify them. A repeated new call can send another message; the message cannot be recalled.
publishOpenRfp
ChatGPTPublish the reviewed public RFP to eligible suppliers across its media category. Read its exact brief and current version first; requires rfp:send. Publishing is externally visible and cannot be treated as draft preparation.
quoteBroadcastBuyCompositionTapFees
ChatGPTRead the exact Tap fee quotes for the reviewed broadcast buy and proposed station Orders. Use these quotes to compare draft costs. This plugin cannot place Orders or record bookings. Reads current fee quotes for draft cost comparison. Does not place Orders or record bookings.
readUserGuidePage
ChatGPTRead one complete published Tap user guide page after searchUserGuide identifies the relevant page. Use the returned page as the authoritative source and cite its URL.
removeBroadcastBuyCompositionAvail
ChatGPTRemove one option from an editable saved buy composition using its latest version. This changes only the internal composition and does not withdraw or change any Order. Deletes the selected composition line and its saved weekly quantities. Requires approval; adding the option again does not restore the quantities.
removeBroadcastOrderCreative
ChatGPTRemove the specified creative assignment from a confirmed Order. The supplier-visible fulfillment changes; the original asset is not deleted.
removeBroadcastRfpDrafts
ChatGPTRemove exact never-sent RFP drafts and optionally their Campaign markets in one transaction after buyer approval. Use for requests such as "only keep Miami" or "remove the Chicago draft". Read getPlanContext first: supply the current Campaign values, all current market IDs, and each removed draft ID/version. A removed market must have no remaining RFPs of any medium or state. Sent RFPs, revisions, supplier responses, and Orders cannot be deleted. Pass removeMarketIds: [] to remove drafts while retaining market targeting. Optionally supply positive remainingDraftAllocations for every surviving unsent RFP to redistribute within the unchanged Campaign budget; otherwise remaining budgets stay unchanged. Removed drafts have no user-facing undo. Stale versions, invalid allocations, or protected history roll back the entire operation. Never zero budgets to remove a draft. Remove the specifically selected unsent private RFP drafts. This deletes saved draft preparation and cannot remove sent RFPs or an organization.
replyToSupplierDeal
ChatGPTSend the exact reviewed reply to the supplier Deal conversation and notify the supplier. Messages cannot be recalled; a new repeated call may send another reply. Send the exact reviewed reply to the supplier Deal conversation and notify the supplier. Messages cannot be recalled; a new repeated call may send another reply. Replying also approves the buyer-supplier communication relationship.
researchStation
ChatGPTBuild a cited dossier for one US AM/FM station using a Tap property or explicit call sign and band. Returns canonical identity, validated claims, ranked sources, gaps, and conflicts. Searches supplier public files before official and industry web evidence. Retrieves public station evidence and returns a cited dossier. May save or refresh research caches and record AI usage. Does not edit campaigns or supplier records, publish content, or contact station representatives.
resendBroadcastRfp
ChatGPTResend a staged material revision to the open RFP Exchanges. Call only when requested. The command validates the current state and version. Requires approval before another external supplier notification.
resolveBroadcastRfpDeadline
ChatGPTResolve a response deadline date to the end of that calendar day using canonical Campaign timezone data. Read-only; it does not save the RFP.
respondToSupplierDeal
ChatGPTTell the supplier that the buyer is interested or has passed on this Deal, optionally sending the exact reviewed note. Not a purchase or booking; new calls can add messages. Tell the supplier that the buyer is interested or has passed on this Deal, optionally sending the exact reviewed note. Not a purchase or booking; new calls can add messages. Choosing interested also approves the buyer-supplier communication relationship; choosing passed makes existing draft Deal Orders stale.
reviewBroadcastAvailResponse
ChatGPTExplicitly acknowledge the exact private broadcast response as reviewed. Does not place an Order or accept commercial terms.
reviewOpenRfpResponse
ChatGPTExplicitly mark this exact submitted public RFP response revision reviewed. This is an acknowledgement, not acceptance of the quote or an Order.
saveBroadcastBuyCompositionQuantities
ChatGPTSave exact integer spot quantities for option weeks in an editable buy composition using its latest version. Include every option week the buyer wants to change, including zero to clear a week. This changes only the internal composition and does not create or send Orders. Overwrites saved weekly spot quantities, including zero to clear them. Requires approval. Does not book media.
saveBroadcastOrderQuantities
ChatGPTReplace the reviewed weekly quantities in the Order draft at its current version; zero clears a quantity. Re-read the fee quote and totals after changes. This plugin cannot send the Order.
saveBroadcastRfpDraft
ChatGPTSave the complete current RFP draft with its expected version. Read first, preserve unchanged fields, omit Campaign-derived clientProductEstimate, and keep intentional completion gaps. Returns the saved RFP artifact and never distributes it. Replaces existing draft content and can remove omitted draft details. Requires approval. Nothing is sent.
saveDoohOrderDraft
ChatGPTSave or replace the DOOH Order draft price and creative requirements using expectedDraftVersion. Read the current commerce workspace first. Requires order:send; does not send the Order.
saveMemory
ChatGPTSave one short durable fact: user scope for this person, team for the organization, or brand with brandPublicId. Use replacesMemoryPublicId when updating a recalled preference so only one active note remains. Give it a short title and useful tags. Requires approval. When replacesMemoryPublicId is supplied, replaces that memory in place, including supplied title and tags.
searchContextFiles
ChatGPTSearch buyer-visible saved files such as briefs, decks, spreadsheets, and brand documents. Each hit includes citationMarkdown; place it directly after every claim that uses the hit. Retrieves authorized saved-file excerpts using configured external AI processors for embedding and reranking, and records AI usage. Search stays within the connected private workspace and does not create, edit, delete, or publish saved files.
searchDoohGeographies
ChatGPTFind canonical countries, states/regions and cities by name, alias or abbreviation before searching DOOH inventory. Set countryCode and kind when known (admin1 means state/region). Returns bounded matches with copyable geography.selection; compare country and region to disambiguate. Recovery alternatives are suggestions, not automatic scope changes. Localities default to a 25 km radius. This searches supported geographic identities, not screen availability; use getDoohInventoryOverview for country/state screen counts. Search published DOOH catalog geography identities; never infer availability from a geography match.
searchDoohInventory
ChatGPTBrowse exact selectable DOOH screens for a named country or locality. Prefer searchDoohInventoryOptions for normal agent discovery and comparison. Returns a bounded compatibility projection of commercial groups and exact screen records. If an exact-screen filter returns nothing, return to searchDoohInventoryOptions instead of guessing labels. Counts state when groups or screens were omitted from the result. Treat every dimension as an inventory preference; never claim targeting, reach, frequency, exact screens, or guaranteed delivery. Read bounded selectable screens from the published DOOH catalog; this does not reserve inventory.
searchDoohInventoryOptions
ChatGPTSearch grouped DOOH supplier, environment, and screen-type options for a named country, state or region, or locality. Use this as the primary DOOH discovery tool. It groups exact screens into commercial options inside the catalog query and returns at most 25 options per page. Groups smaller than five are omitted from grouped comparison because no aggregate price is available, but matching screens remain available in the interactive map. availableFilters describes the valid buyer-safe values across the geography even when the active exact filters match nothing. Reuse those values instead of guessing labels. Copy planningInput.geography and each selected option.inventoryPreference directly into configureDoohPlan; these preserve canonical identity and exact catalog labels. Pass nextCursor unchanged with the same search fields to read another page. Treat opportunity, CPM, coverage, and screen-count bands as directional inventory evidence. Search grouped published DOOH inventory options with bounded pagination and directional pricing, not guaranteed availability.
searchDoohMarketOptions
ChatGPTLook up DOOH inventory for up to ten markets concurrently without subagents. Default first page is five grouped options per market. Each labeled result retains canonical planningInput, copyable preferences, filters, counts and nextCursor, or its own error/recovery. Use for ordinary multi-market buys; never treat a partial page as complete or a failed market as empty. Continue only the markets needing another page or deeper comparison. No writes. Read DOOH catalog market options and directional opportunity estimates without creating allocations.
searchSupplierReps
ChatGPTSearch Tap’s authenticated supplier-rep directory by person name, station, supplier, or role. Use this when a buyer asks who to contact or wants a connection at a station or supplier. Returns only discoverable profile fields. Email and phone are never returned.
searchUserGuide
ChatGPTSearch Tap’s public user guide for authoritative product instructions and how-to answers. Use this before answering questions about how to use Tap, then cite the returned guide pages.
selectBroadcastBuyComposition
ChatGPTChoose the final reviewed buy composition for one campaign and broadcast medium using its latest version. This replaces any other selected candidate for that campaign and medium, but it still does not create or send Orders. Replaces the selected planning option for this campaign and medium. Requires approval. Selection does not send an Order or pay suppliers; the plugin cannot place Orders or record bookings.
sendBroadcastRfp
ChatGPTSend a complete RFP draft to its selected stations. Pass propertyId to send only to that selected property. Call only when the buyer requests Send. The command validates the current state and version. Requires approval before contacting the selected suppliers. Issued delivery cannot be recalled.
sendDoohCorrespondence
ChatGPTSend the exact reviewed message on the specified DOOH Order at its current allocation version. The counterparty can read it; it cannot be recalled through MCP.
setPlanCommercialIdentity
ChatGPTSet or clear a Campaign's Client, active Product, and digit-only Estimate Number. Use grounded IDs from current Campaign context and preserve Estimate Number leading zeroes. These fields are optional and do not block RFP work. Replaces the campaign client, product and estimate identity. Changing the client also clears the campaign folder association. Requires approval.
stageBroadcastRfpMaterialRevision
ChatGPTStage a complete material revision for a sent RFP. Read first, preserve unchanged content, use the current revision as base, and omit Campaign-derived clientProductEstimate. The command validates the current state and version. This does not resend. Creates a separate staged revision and retains the issued revision. Nothing is sent.
stageBroadcastRfpRecipients
ChatGPTPersist the buyer agent’s complete, editable station recommendation for one RFP draft. Submit one on/off row for every eligible candidate at the current RFP version, with a short buyer-readable reason for each. The server reloads the directory and rejects incomplete or language-conflicting recommendations. A conflicting or unverified primaryLanguage cannot satisfy an explicit language requirement. This tool never distributes the RFP. Replaces the staged recipient list and removes deselected recipients. Requires approval. No station is contacted.
submitDoohCreative
ChatGPTSubmit the reviewed HTTPS creative asset link and notes for supplier approval on the DOOH Order at its current allocation version. Requires order:send. Does not approve creative or serve advertisements.
updateClientCode
ChatGPTCorrect an explicitly requested Client Code on a visible buyer-owned Client. Affects future campaign CPEs; sent RFP and Order snapshots stay unchanged. Pass the last observed code as expectedClientCode; never silently recode an existing Client from an unrelated brief. Replace the reviewed client code on the authorized client record. This changes the saved commercial identity label, not payment details.
updateOpenRfpDraft
ChatGPTEdit an existing private open RFP draft using its current expectedVersion. Read it first and preserve unchanged brief fields. Published and closed briefs cannot be edited. Does not publish or contact suppliers. Replace the reviewed public-RFP draft brief at its current expectedVersion. Published and closed requests cannot be edited. Does not publish.
updatePlan
ChatGPTPatch grounded Campaign header facts and, when supplied, replace its target markets using directory names. Pass an empty marketNames list only when the buyer wants to clear all target markets. This does not modify RFP goal budgets, flights, deadlines, or recipients, Campaign-owned audiences, responses, or Orders. Use adjustBroadcastCampaignDrafts for campaign-wide budget, flight, or deadline changes so the header and unsent drafts save together. Replaces supplied campaign fields and market selections, including explicit clears. Requires approval before changing saved data.
updateTapReportSchedule
ChatGPTChange how often the current buyer receives their personal Tap reports. For weekly reports, set the requested weekday. This preserves whether reports and email notifications are enabled, the delivery time, timezone, and selected report sections. Replaces your saved report cadence and, when email notifications are enabled, changes future email delivery frequency. Requires approval. It preserves recipients and enabled settings and sends no report immediately.
webSearch
ChatGPTSearch the open web for current facts outside Tap, such as an official advertiser homepage or external market context. Returns titles, URLs, and snippets. Use Tap tools for inventory, timezones, station identity, and supplier metadata. Search the public web through the configured search provider and return cited snippets; does not change campaigns or contact suppliers.
withdrawBroadcastOrder
ChatGPTWithdraw the specified eligible broadcast Order at its current version and notify the supplier. Requires order:send. Confirmed Orders cannot be silently cancelled.
withdrawBroadcastRfp
ChatGPTWithdraw the reviewed private broadcast RFP at its current version and notify affected suppliers. Requires rfp:send. This stops the request; it does not cancel confirmed Orders.
withdrawDoohOrder
ChatGPTWithdraw the specified unconfirmed DOOH Order with the reviewed reason and current allocation version. Requires order:send; cannot withdraw a confirmed Order.
withdrawSupplierDealOrder
ChatGPTWithdraw the specified eligible direct-buy Deal Order and notify the supplier. Requires order:send. Terminal or confirmed Orders retain their canonical cancellation restrictions.