https://api.semicola.com/mcp/v3 (8 shared, 17 buyer, 20 seller). It is generated from the same contracts the server uses to validate calls, so field names and constraints here match what the server accepts.
tools/list is still the contract for your session. The tools you see depend on the active
account (buyer, seller or organization), your role and feature availability. Tools marked P1 or P2
may not be listed yet.How to read this page
- Effect is
readorwrite. Reads never change state and are always safe to retry. - Risk says what a write can touch. Durable writes change saved records; spend writes can commit budget; external writes contact a seller or buyer. In the app and in MCP hosts, risky writes pause for an explicit confirmation from the person you act for.
- Opens widget names the MCP App the tool renders in hosts that support MCP Apps (
_meta.ui.resourceUri). Hosts without MCP Apps receive the same data as structured content plus a text summary. - Input is flattened from the tool’s JSON Schema. Nested fields use dots (
budget.total); items of an array of objects use[](products[].productId). A nested field marked required is required only when its parent is sent. Some tools accept one of several forms; each form has its own table.
Shared tools
Available on every account, buyer or seller. Start every session here.get
Read one object by kind and id, with optional includes. Use it to check on long operations you started.
Input
get_delivery
Delivery report. Buyers use report “campaign_delivery”; sellers “seller_delivery”. Ranges ≤ 90 days or lifetime. Missing metrics are unavailable, never 0.
Input
The input is one of 2 forms. Send exactly one; fields from different forms do not mix.
Form 1:
report: "campaign_delivery"
Form 2:
report: "seller_delivery"
get_status
Where this account stands: active account and role, readiness, blockers, next actions and the other accounts you can switch to. Call first when unsure what to do.
Input
No arguments.
open_hello
Open the hello widget (reference widget used to check the widget host).
Input
open_page
Open a page widget by name (activity, marketplace, …). Prefer the specific open_* tool when one exists.
Input
save_ask
File a request with the team: support, product, supply, integration or commercial. One ask per call.
Input
search
Find objects, docs or spec pages by text and/or kind (advertiser, campaign, proposal, rfp, …). Needs query or kind.
Input
switch_account
Switch the active account (a customerId from get_status, or “home”). Returns the new status.
Input
Buyer tools
Listed when the active account is a buyer (advertiser or agency).open_add_advertiser
Open the advertiser setup task (brand lookup, currency, countries, sandbox).
Input
open_advertisers_page
Open the advertisers list. Use it for any request to see or pick advertisers.
Input
No arguments.
open_campaign_receipt
Open Review & go live for a draft campaign: plan, staged buys, budget, creative coverage and blockers.
Input
open_campaigns_page
Open campaigns for the advertiser in scope, or one campaign workspace when campaignId is given.
Input
open_connections_page
Open the sellers page. Use it for “where can I advertise” and any request to see or manage sellers.
Input
open_creative_composer
Open the creative composer for a format (vertical_story, display_300x250, audio_30, video_reels), or resume a draft.
Input
open_creative_library
Open the creative library for the advertiser in scope.
Input
open_reporting
Open the reporting view for the advertiser or campaign in scope.
Input
refine_proposal
Ask one seller to revise a proposal (keep or drop products, shift budget, new instructions). Returns the seller’s new version; the seller may decline parts.
Input
request_proposals
Send the campaign brief to every eligible seller and collect proposals. Returns right away with an execution id; results stream into the proposals widget. One running execution per buyer.
Input
save_advertiser
Create, update, archive an advertiser, or preview a brand with {resolveBrand: domain}. Confirm the primary currency before creating; it locks after the first campaign. Sandbox is fixed at creation. Missing fields come back as needs_input.
Input
The input is one of 4 forms. Send exactly one; fields from different forms do not mix.
Form 1: with
name, idempotencyKey
Form 2: with
advertiserId
Form 3: with
advertiserIds, isArchived
Form 4: with
resolveBrand
save_campaign
Create a DRAFT campaign or change one. Confirm currency and budget before creating. A brief or budget is not authority to spend: going live is two calls (desiredPhase “active”, then confirmLaunch with expectedRevision after the person approves).
Input
The input is one of 2 forms. Send exactly one; fields from different forms do not mix.
Form 1: with
advertiserId, name, idempotencyKey
Form 2: with
campaignId, expectedRevision
save_connection
Change how a seller is used: account-wide selection (DEFAULT, ALWAYS_INCLUDE, ALWAYS_EXCLUDE) or one advertiser activation. One intent per call.
Input
save_creative
Create or update a creative from library assets and copy, attach it to campaigns, or archive it. Attaching reports format fit per campaign.
Input
save_creative_session
Composer drafts: save_draft stores slot values (optimistic on expectedRevision); finalize_approved_output turns the draft into a library creative.
Input
The input is one of 4 forms. Send exactly one; fields from different forms do not mix.
Form 1:
operation: "save_draft"
Form 2:
operation: "finalize_approved_output"
Form 3:
operation: "select_output"
Form 4:
operation: "approve_output"
save_media_buy
Stage a draft media buy on the campaign from a proposal or a product selection, or archive a draft. Staging contacts no seller; nothing is booked until the campaign goes live.
Input
The input is one of 3 forms. Send exactly one; fields from different forms do not mix.
Form 1: with
fromProposalId, idempotencyKey
Form 2: with
campaignId, sellerId, products, idempotencyKey
Form 3:
isArchived: true
upload_creative_asset
Open the upload task so the person can add images, video or audio to the library.
Input
Seller tools
Listed when the active account is a seller (a storefront).decide_approval
Approve or reject a queued media buy or creative. Always asks the person to confirm. A short note on rejection helps the buyer fix and resubmit.
Input
get_rfp_performance
RFP performance over a range: win rate, booked budget, average grade, response and acceptance rates, latency. Metrics with no inputs are unavailable, never 0.
Input
open_approvals
Open approvals & operations: media buy approvals, creative reviews and failed forwards.
Input
open_business_rules
Open AI Business Rules. Use it whenever the person wants to see or change what the storefront accepts or when a human reviews.
Input
No arguments.
open_demand_inbox
Open the demand inbox: metrics, starter briefs and the brief ledger.
Input
open_library
Open the library: uploaded materials and extracted selling points.
Input
No arguments.
open_listing
Open the listing (branding & distribution) and the “How buyers see you” preview.
Input
No arguments.
open_media_buy_timeline
Open the timeline for one media buy: stages, timestamps and where it is stuck.
Input
open_media_buys_page
Open every media buy on the storefront, most urgent first.
Input
open_playbook
Open the playbook.
Input
No arguments.
open_proposal_pass
Open one RFP turn: request, decision, products, allocations and history.
Input
open_seller_dashboard
Open the seller dashboard: RFP performance and delivery on your inventory.
Input
open_seller_setup
Open “Get ready to sell”: readiness checks, inventory sources and demand coverage.
Input
save_business_rules
Save and activate AI Business Rules: the acceptance policy (brief acceptance + creative policy), approval gates and listing disclosures. Saving activates a new version immediately. When both gates are automatic, acknowledgeNoHumanReview is required. Start conservative: no category is pre-cleared.
Input
save_inventory_source
Connect or update an inventory source (external sales agent URL + auth, or the ad server). Credentials are write-only and never returned. Optionally runs a discovery test.
Input
save_material
Teach the storefront agent from a media kit, rate card, deck, past RFP, note or URL. Extracted selling points come back with their evidence status.
Input
save_playbook
Save the playbook: how the storefront agent pitches, packages and prices, plus pricing facts (hard floors, defaults, guidance). Saving activates a new version.
Input
save_rfp
Work a brief: create a practice or manual RFP, append a revision turn (coach and re-run), record feedback, endorse, attach a response, or request a representation (html or json).
Input
The input is one of 8 forms. Send exactly one; fields from different forms do not mix.
Form 1:
action: "create"
Form 2:
action: "append_turn"
Form 3:
action: "record_feedback"
Form 4:
action: "endorse"
Form 5:
action: "unendorse"
Form 6:
action: "attach_response"
Form 7:
action: "request_representation"
Form 8:
action: "cancel_representation"
save_seller
Update the storefront identity, setup intent, capabilities and listing (description, channels, countries, links, marketplace participation).
Input
save_wholesale_product
Create or update a wholesale product: channels, delivery type, format kinds and pricing options with floors.
Input