Koskamo

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.

Trillboards MCP logo, by TrillboardsVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Trillboards
MCP endpoint (Streamable HTTP)
https://api.trillboards.com/mcp/advertiser
Vendor documentation

What 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

Vendor evidenceRegistry 1.0.0

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
Server-advertised capabilities
{
  "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.

Help a local agency plan and book digital out-of-home, CTV, video, audio and display campaigns for its clients. The connected advertiser account owns and pays for each campaign. Search inventory, preview a plan, save the draft, attach the buyer's creative, and prepare the exact booking for review before creating Stripe checkout. For neighborhood discovery, use the native geographic radius; query matches screen or venue text, and city filters the native city. Inspect returned screen dimensions. For selected Vistar video, get_campaign_status.partnerDrafts supplies venue pixel dimensions and duration bounds; provider catalog requirements describe provider products. Payment completes in Stripe. Read get_campaign_status after payment to confirm the native booking. Campaign booked means verified purchase; live means native fulfillment confirms activation. Handle media-owner review and launch tracking for the buyer. Rebooking creates a new unpaid campaign with fresh prices. Never invent inventory, totals, payment confirmation or delivery.

Tools

9 advertised

search_ad_inventory — Search ad inventory
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_ad_inventory input schema
{
  "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
}
search_ad_inventory output schema
{
  "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
}
search_ad_inventory annotations
{
  "title": "Search ad inventory",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
preview_campaign_plan — Preview campaign plan
Advertised by the server during the last successful anonymous check.
Advertised read-only

Preview native campaign pricing and audience estimates for selected screens and channels. This does not reserve inventory or charge the advertiser.

preview_campaign_plan input schema
{
  "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
}
preview_campaign_plan output schema
{
  "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
}
preview_campaign_plan annotations
{
  "title": "Preview campaign plan",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
save_campaign_draft — Save campaign draft
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

save_campaign_draft input schema
{
  "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
}
save_campaign_draft output schema
{
  "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
}
save_campaign_draft annotations
{
  "title": "Save campaign draft",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
attach_campaign_creative — Attach campaign creative
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

attach_campaign_creative input schema
{
  "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
}
attach_campaign_creative output schema
{
  "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
}
attach_campaign_creative annotations
{
  "title": "Attach campaign creative",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": true
}
prepare_campaign_booking — Prepare campaign booking
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the exact current campaign selections, total, currency and creative readiness for the buyer to review before payment.

prepare_campaign_booking input schema
{
  "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
}
prepare_campaign_booking output schema
{
  "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
}
prepare_campaign_booking annotations
{
  "title": "Prepare campaign booking",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_campaign_checkout — Create campaign checkout
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_campaign_checkout input schema
{
  "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
}
create_campaign_checkout output schema
{
  "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
}
create_campaign_checkout annotations
{
  "title": "Create campaign checkout",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_campaign_status — Get campaign status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the campaign and booking progress from the same order records as the advertiser portal, including creative review, scheduled dates and live fulfillment.

get_campaign_status input schema
{
  "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
}
get_campaign_status output schema
{
  "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
}
get_campaign_status annotations
{
  "title": "Get campaign status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_campaign_delivery — Get campaign delivery
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read measured campaign delivery and screen performance from the native campaign reporting services.

get_campaign_delivery input schema
{
  "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
}
get_campaign_delivery output schema
{
  "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
}
get_campaign_delivery annotations
{
  "title": "Get campaign delivery",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
rebook_campaign — Rebook campaign
Advertised by the server during the last successful anonymous check.

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.

rebook_campaign input schema
{
  "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
}
rebook_campaign output schema
{
  "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
}
rebook_campaign annotations
{
  "title": "Rebook campaign",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

advertiser_booking — Trillboards campaign booking

Advertised by the server during the last successful anonymous check.

Review local inventory, channel mix and campaign bookings.

advertiser_booking URI
ui://trillboards/advertiser.html

MIME type: text/html;profile=mcp-app

30-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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http trillboards-mcp https://api.trillboards.com/mcp/advertiser

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add trillboards-mcp --url https://api.trillboards.com/mcp/advertiser

Cursor

Merge this server into .cursor/mcp.json in your project, then enable trillboards-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "trillboards-mcp": {
      "url": "https://api.trillboards.com/mcp/advertiser"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "trillboards-mcp": {
      "type": "streamableHttp",
      "url": "https://api.trillboards.com/mcp/advertiser",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start trillboards-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "trillboards-mcp": {
      "type": "http",
      "url": "https://api.trillboards.com/mcp/advertiser"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http trillboards-mcp https://api.trillboards.com/mcp/advertiser

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "trillboards-mcp": {
      "url": "https://api.trillboards.com/mcp/advertiser"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing