Trillboards MCP
An official MCP server by Trillboards that enables AI agents to search ad inventory, preview campaign plans, and manage digital out-of-home, CTV, video, audio, and display campaigns. It supports programmatic booking via AdCP, Stripe checkout integration, and provides access to audience signals and measurement metrics like proof of play and attention data.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.trillboards.com/mcp/advertiserWhat you can do with it
- Search ad inventory using natural language briefs
- Preview campaign plans and screen availability
- Book media buys via programmatic AdCP or Stripe
- Retrieve audience signals and attention metrics
Source and maintenance
Protocol and capabilities
- Server
- dooh-exchange 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 9 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
9 advertised
search_ad_inventory — Search ad inventory
Find 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native city filter. For neighborhoods such as Manhattan, use radius around the requested area instead."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Screen or venue text filter. Use geographic radius for a neighborhood; a text match is not a location search."
},
"state": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"radius": {
"type": "object",
"required": [
"lat",
"lng",
"miles"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"miles": {
"type": "number",
"maximum": 500,
"exclusiveMinimum": 0
}
},
"description": "Geographic inventory search around the client location. Use this for neighborhoods and nearby screens, without an additional neighborhood text or city filter.",
"additionalProperties": false
},
"source": {
"enum": [
"owned",
"vistar",
"mixed"
],
"type": "string",
"default": "mixed"
},
"channels": {
"type": "array",
"items": {
"enum": [
"ctv",
"video",
"audio",
"display"
],
"type": "string"
},
"maxItems": 4
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Search ad inventory",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}preview_campaign_plan — Preview campaign plan
Preview native campaign pricing and audience estimates for selected screens and channels. This does not reserve inventory or charge the advertiser.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"flightStart",
"flightEnd"
],
"properties": {
"source": {
"enum": [
"owned",
"vistar",
"mixed"
],
"type": "string",
"default": "mixed"
},
"endTime": {
"type": "string",
"default": "23:59"
},
"quoteId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"partner": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"timezone": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "IANA timezone for the local flight."
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"screenIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 1000
},
"startTime": {
"type": "string",
"default": "00:00"
},
"clientName": {
"type": "string",
"maxLength": 160
},
"landingUrl": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Client business or campaign landing page URL."
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"impressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"campaignName": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"providerPlan": {
"anyOf": [
{
"type": "object",
"required": [
"budgetUsd",
"flightStart",
"flightEnd",
"channels"
],
"properties": {
"audience": {
"type": "object",
"properties": {
"hard": {
"type": "boolean"
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"enum": [
"male",
"female"
],
"type": "string"
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"culture": {
"type": "array",
"items": {
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
],
"type": "string"
},
"minItems": 1
},
"min_fit": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"language": {
"type": "array",
"items": {
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
],
"type": "string"
},
"minItems": 1
},
"age_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"education": {
"type": "array",
"items": {
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
],
"type": "string"
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"lifestyle": {
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"life_stage": {
"type": "array",
"items": {
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
],
"type": "string"
},
"minItems": 1
},
"income_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
}
}
]
}
},
"additionalProperties": false
},
"channels": {
"type": "array",
"items": {
"enum": [
"ctv",
"video",
"audio",
"display"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"geography": {
"type": "object",
"properties": {
"radius": {
"type": "object",
"required": [
"center",
"miles"
],
"properties": {
"miles": {
"type": "number",
"maximum": 500,
"exclusiveMinimum": 0
},
"center": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"markets": {
"type": "array",
"items": {
"type": "object",
"required": [
"country",
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
},
"additionalProperties": false
},
"maxItems": 50
},
"polygon": {
"type": "array",
"items": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 3
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"countryCode": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"postalCodes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 200
}
},
"additionalProperties": false
},
"targeting": {
"type": "object",
"properties": {
"audience": {
"type": "object",
"properties": {
"hard": {
"type": "boolean"
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"enum": [
"male",
"female"
],
"type": "string"
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"culture": {
"type": "array",
"items": {
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
],
"type": "string"
},
"minItems": 1
},
"min_fit": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"language": {
"type": "array",
"items": {
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
],
"type": "string"
},
"minItems": 1
},
"age_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"education": {
"type": "array",
"items": {
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
],
"type": "string"
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"lifestyle": {
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"life_stage": {
"type": "array",
"items": {
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
],
"type": "string"
},
"minItems": 1
},
"income_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
}
}
]
}
},
"additionalProperties": false
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"packageAudienceLens": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"selectedProductIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"packageAudienceLens": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"ownedBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"ownedImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"partnerBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"partnerImpressions": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Preview campaign plan",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}save_campaign_draft — Save campaign draft
Save 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"flightStart",
"flightEnd",
"idempotency_key"
],
"properties": {
"source": {
"enum": [
"owned",
"vistar",
"mixed"
],
"type": "string",
"default": "mixed"
},
"endTime": {
"type": "string",
"default": "23:59"
},
"quoteId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"partner": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"timezone": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "IANA timezone for the local flight."
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"screenIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 1000
},
"startTime": {
"type": "string",
"default": "00:00"
},
"clientName": {
"type": "string",
"maxLength": 160
},
"landingUrl": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Client business or campaign landing page URL."
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"impressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"campaignName": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"providerPlan": {
"anyOf": [
{
"type": "object",
"required": [
"budgetUsd",
"flightStart",
"flightEnd",
"channels"
],
"properties": {
"audience": {
"type": "object",
"properties": {
"hard": {
"type": "boolean"
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"enum": [
"male",
"female"
],
"type": "string"
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"culture": {
"type": "array",
"items": {
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
],
"type": "string"
},
"minItems": 1
},
"min_fit": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"language": {
"type": "array",
"items": {
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
],
"type": "string"
},
"minItems": 1
},
"age_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"education": {
"type": "array",
"items": {
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
],
"type": "string"
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"lifestyle": {
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"life_stage": {
"type": "array",
"items": {
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
],
"type": "string"
},
"minItems": 1
},
"income_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
}
}
]
}
},
"additionalProperties": false
},
"channels": {
"type": "array",
"items": {
"enum": [
"ctv",
"video",
"audio",
"display"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"geography": {
"type": "object",
"properties": {
"radius": {
"type": "object",
"required": [
"center",
"miles"
],
"properties": {
"miles": {
"type": "number",
"maximum": 500,
"exclusiveMinimum": 0
},
"center": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"markets": {
"type": "array",
"items": {
"type": "object",
"required": [
"country",
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
},
"additionalProperties": false
},
"maxItems": 50
},
"polygon": {
"type": "array",
"items": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 3
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"countryCode": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"postalCodes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 200
}
},
"additionalProperties": false
},
"targeting": {
"type": "object",
"properties": {
"audience": {
"type": "object",
"properties": {
"hard": {
"type": "boolean"
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"enum": [
"male",
"female"
],
"type": "string"
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"culture": {
"type": "array",
"items": {
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
],
"type": "string"
},
"minItems": 1
},
"min_fit": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"language": {
"type": "array",
"items": {
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
],
"type": "string"
},
"minItems": 1
},
"age_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"education": {
"type": "array",
"items": {
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
],
"type": "string"
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"lifestyle": {
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"life_stage": {
"type": "array",
"items": {
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
],
"type": "string"
},
"minItems": 1
},
"income_range": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
}
}
]
}
},
"additionalProperties": false
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"packageAudienceLens": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50
},
"selectedProductIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100
},
"packageAudienceLens": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"ownedBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
},
"ownedImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"partnerBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"partnerImpressions": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Save campaign draft",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}attach_campaign_creative — Attach campaign creative
Copy 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId",
"idempotency_key",
"creativeFile"
],
"properties": {
"creativeFile": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"file_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"mime_type": {
"type": "string",
"maxLength": 100
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Attach campaign creative",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}prepare_campaign_booking — Prepare campaign booking
Read the exact current campaign selections, total, currency and creative readiness for the buyer to review before payment.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId"
],
"properties": {
"quoteId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"partner": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"bookingIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 1000
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
},
"providerLineIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 100
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Prepare campaign booking",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_campaign_checkout — Create campaign checkout
Create 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId",
"idempotency_key",
"reviewedSubtotalUsd",
"reviewedAmount",
"reviewedCurrency",
"reviewedSelection"
],
"properties": {
"quoteId": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"partner": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
},
"bookingIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 1000
},
"reviewedAmount": {
"type": "integer",
"minimum": 0,
"description": "Exact amountMinor from prepare_campaign_booking, in the currency minor unit."
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
},
"providerLineIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 100
},
"reviewedCurrency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Exact currency from prepare_campaign_booking."
},
"reviewedSelection": {
"type": "string",
"pattern": "^v1:[a-f0-9]{64}$",
"description": "Exact native reviewedSelection from prepare_campaign_booking; binds the reviewed inventory, flight, quantities and targeting."
},
"reviewedSubtotalUsd": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Create campaign checkout",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_campaign_status — Get campaign status
Read the campaign and booking progress from the same order records as the advertiser portal, including creative review, scheduled dates and live fulfillment.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId"
],
"properties": {
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Get campaign status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_campaign_delivery — Get campaign delivery
Read measured campaign delivery and screen performance from the native campaign reporting services.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Get campaign delivery",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}rebook_campaign — Rebook campaign
Copy 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"advertisementId",
"idempotency_key",
"flightStart",
"flightEnd"
],
"properties": {
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"advertisementId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Native campaign ID returned by save_campaign_draft."
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
],
"type": "string"
},
"checkoutUrl": {
"type": "string",
"format": "uri"
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
}{
"title": "Rebook campaign",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
advertiser_booking — Trillboards campaign booking
Review local inventory, channel mix and campaign bookings.
ui://trillboards/advertiser.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 329 ms
- 95th percentile latency
- 329 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 329 ms · metadata changed · 9 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http trillboards-mcp https://api.trillboards.com/mcp/advertiserCodex
codex mcp add trillboards-mcp --url https://api.trillboards.com/mcp/advertiserCursor
{
"mcpServers": {
"trillboards-mcp": {
"url": "https://api.trillboards.com/mcp/advertiser"
}
}
}Cline
{
"mcpServers": {
"trillboards-mcp": {
"type": "streamableHttp",
"url": "https://api.trillboards.com/mcp/advertiser",
"disabled": false
}
}
}VS Code
{
"servers": {
"trillboards-mcp": {
"type": "http",
"url": "https://api.trillboards.com/mcp/advertiser"
}
}
}Gemini CLI
gemini mcp add --transport http trillboards-mcp https://api.trillboards.com/mcp/advertiserClaude Desktop
{
"mcpServers": {
"trillboards-mcp": {
"url": "https://api.trillboards.com/mcp/advertiser"
}
}
}Windsurf
{
"mcpServers": {
"trillboards-mcp": {
"serverUrl": "https://api.trillboards.com/mcp/advertiser"
}
}
}Let your agent find its tools
Find servers like Trillboards MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run Trillboards MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.