{"data":{"name":"com.trillboards/planner","title":"Trillboards Campaign Planner","description":"Plan and book out-of-home, CTV, video, audio and display campaigns, paid through Stripe.","version":"1.0.0","websiteUrl":"https://trillboards.com","repositoryUrl":null,"remotes":[{"url":"https://api.trillboards.com/mcp/advertiser","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-20T17:46:08.245Z","updatedAt":"2026-10-20T17:46:08.245Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Trillboards Campaign Planner","source":"official-registry","sourceId":"com.trillboards/planner","updatedAt":"2026-10-20T17:46:08.245Z","confidence":100,"websiteUrl":"https://trillboards.com","description":"Plan and book out-of-home, CTV, video, audio and display campaigns, paid through Stripe.","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"attach_campaign_creative","title":"Attach campaign creative","description":"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.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Stable unique key for this action. Reuse this key and unchanged arguments when retrying."},"creativeFile":{"type":"object","properties":{"download_url":{"type":"string","format":"uri"},"file_id":{"type":"string","minLength":1,"maxLength":200},"mime_type":{"type":"string","maxLength":100},"file_name":{"type":"string","minLength":1,"maxLength":200}},"required":["download_url","file_id"],"additionalProperties":false}},"required":["advertisementId","idempotency_key","creativeFile"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Attach campaign creative","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"definitionHash":"1a4e9763dcfa3b34570c7ed96f038ff8e8e53c6ff669a1c5f4e8a996d17b97d5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"create_campaign_checkout","title":"Create campaign checkout","description":"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.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."},"bookingIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":1000,"default":[]},"providerLineIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100,"default":[]},"quoteId":{"type":"string","minLength":1,"maxLength":200},"quoteIds":{"type":"object","properties":{"owned":{"type":"string","minLength":1,"maxLength":200},"partner":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Stable unique key for this action. Reuse this key and unchanged arguments when retrying."},"reviewedSubtotalUsd":{"type":"number","minimum":0},"reviewedAmount":{"type":"integer","minimum":0,"description":"Exact amountMinor from prepare_campaign_booking, in the currency minor unit."},"reviewedCurrency":{"type":"string","minLength":3,"maxLength":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."}},"required":["advertisementId","idempotency_key","reviewedSubtotalUsd","reviewedAmount","reviewedCurrency","reviewedSelection"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Create campaign checkout","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"3565f83bf6c78a39de29452a95de26a02d5729ef53ea011724924eb532c7aa0d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"get_campaign_delivery","title":"Get campaign delivery","description":"Read measured campaign delivery and screen performance from the native campaign reporting services.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}},"required":["advertisementId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get campaign delivery","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"ae39c0330b447e15b90dc38b470b6aeb1f5c14f6e0c631cf7cce455f0c179e6b","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"get_campaign_status","title":"Get campaign status","description":"Read the campaign and booking progress from the same order records as the advertiser portal, including creative review, scheduled dates and live fulfillment.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."}},"required":["advertisementId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get campaign status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"c4bb8e490e4f1177a1f4aeb7c6ee7fe4bce39b382e18c8a52bf92a654d3e8de6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"prepare_campaign_booking","title":"Prepare campaign booking","description":"Read the exact current campaign selections, total, currency and creative readiness for the buyer to review before payment.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."},"bookingIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":1000,"default":[]},"providerLineIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100,"default":[]},"quoteId":{"type":"string","minLength":1,"maxLength":200},"quoteIds":{"type":"object","properties":{"owned":{"type":"string","minLength":1,"maxLength":200},"partner":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}},"required":["advertisementId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Prepare campaign booking","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"ce5767bf7e61c39b34325a5c68489705d3b8146ce73d9038c528d7605247d8d4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"preview_campaign_plan","title":"Preview campaign plan","description":"Preview native campaign pricing and audience estimates for selected screens and channels. This does not reserve inventory or charge the advertiser.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200},"campaignName":{"type":"string","minLength":1,"maxLength":160},"clientName":{"type":"string","maxLength":160},"landingUrl":{"type":"string","format":"uri","maxLength":2000,"description":"Client business or campaign landing page URL."},"screenIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":1000,"default":[]},"source":{"type":"string","enum":["owned","vistar","mixed"],"default":"mixed"},"impressions":{"type":"integer","exclusiveMinimum":0},"budgetUsd":{"type":"number","exclusiveMinimum":0},"ownedBudgetUsd":{"type":"number","exclusiveMinimum":0},"partnerBudgetUsd":{"type":"number","exclusiveMinimum":0},"ownedImpressions":{"type":"integer","exclusiveMinimum":0},"partnerImpressions":{"type":"integer","exclusiveMinimum":0},"quoteId":{"type":"string","minLength":1,"maxLength":200},"quoteIds":{"type":"object","properties":{"owned":{"type":"string","minLength":1,"maxLength":200},"partner":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false},"flightStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"flightEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"startTime":{"type":"string","default":"00:00"},"endTime":{"type":"string","default":"23:59"},"timezone":{"type":"string","minLength":1,"maxLength":200,"description":"IANA timezone for the local flight."},"providerPlan":{"anyOf":[{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200},"geography":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"radius":{"type":"object","properties":{"center":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"miles":{"type":"number","exclusiveMinimum":0,"maximum":500}},"required":["center","miles"],"additionalProperties":false},"markets":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","minLength":2,"maxLength":2},"code":{"type":"string","minLength":1,"maxLength":200}},"required":["country","code"],"additionalProperties":false},"maxItems":50},"postalCodes":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":200},"countryCode":{"type":"string","minLength":2,"maxLength":2},"polygon":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minItems":3,"maxItems":100}},"additionalProperties":false},"budgetUsd":{"type":"number","exclusiveMinimum":0},"flightStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"flightEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"channels":{"type":"array","items":{"type":"string","enum":["ctv","video","audio","display"]},"minItems":1,"maxItems":4},"selectedProductIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"personaIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"intuiziSegmentIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"packageAudienceLens":{"type":"string","minLength":1,"maxLength":200},"contextualTargeting":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"contextualAvoidance":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"audience":{"type":"object","properties":{"age_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"income_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"culture":{"type":"array","items":{"type":"string","enum":["white","black","asian","american_indian","hispanic"]},"minItems":1},"education":{"type":"array","items":{"type":"string","enum":["hs_or_less","some_college","bachelors","graduate"]},"minItems":1},"gender":{"type":"array","items":{"type":"string","enum":["male","female"]},"minItems":1},"language":{"type":"array","items":{"type":"string","enum":["english_only","spanish","other_indo_european","asian_pacific","other"]},"minItems":1},"life_stage":{"type":"array","items":{"type":"string","enum":["new_movers","settled","long_tenured","married","singles","new_parents","empty_nesters"]},"minItems":1},"household":{"type":"boolean"},"lifestyle":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1},"propertyNames":{"minLength":1}},"interests":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"intent":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"place":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"venue_concept":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1},"minItems":1},{"type":"object","additionalProperties":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyNames":{"minLength":1}}]},"hard":{"type":"boolean"},"min_fit":{"type":"number","minimum":0,"maximum":1}},"additionalProperties":false},"targeting":{"type":"object","properties":{"personaIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"intuiziSegmentIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"packageAudienceLens":{"type":"string","minLength":1,"maxLength":200},"contextualTargeting":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"contextualAvoidance":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"audience":{"type":"object","properties":{"age_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"income_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"culture":{"type":"array","items":{"type":"string","enum":["white","black","asian","american_indian","hispanic"]},"minItems":1},"education":{"type":"array","items":{"type":"string","enum":["hs_or_less","some_college","bachelors","graduate"]},"minItems":1},"gender":{"type":"array","items":{"type":"string","enum":["male","female"]},"minItems":1},"language":{"type":"array","items":{"type":"string","enum":["english_only","spanish","other_indo_european","asian_pacific","other"]},"minItems":1},"life_stage":{"type":"array","items":{"type":"string","enum":["new_movers","settled","long_tenured","married","singles","new_parents","empty_nesters"]},"minItems":1},"household":{"type":"boolean"},"lifestyle":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1},"propertyNames":{"minLength":1}},"interests":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"intent":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"place":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"venue_concept":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1},"minItems":1},{"type":"object","additionalProperties":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyNames":{"minLength":1}}]},"hard":{"type":"boolean"},"min_fit":{"type":"number","minimum":0,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"required":["budgetUsd","flightStart","flightEnd","channels"],"additionalProperties":false},{"type":"null"}]}},"required":["flightStart","flightEnd"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Preview campaign plan","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"39d684645671783151216706b888c5aa83035424c5c25f805f3f67791e7545c4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"rebook_campaign","title":"Rebook campaign","description":"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.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200,"description":"Native campaign ID returned by save_campaign_draft."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Stable unique key for this action. Reuse this key and unchanged arguments when retrying."},"flightStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"flightEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."}},"required":["advertisementId","idempotency_key","flightStart","flightEnd"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Rebook campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"de86d4ceed1bd18bed6e605a49f5fd4545ee3d12da5b44f21ba9493cd8cbbe6a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"save_campaign_draft","title":"Save campaign draft","description":"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.","inputSchema":{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200},"campaignName":{"type":"string","minLength":1,"maxLength":160},"clientName":{"type":"string","maxLength":160},"landingUrl":{"type":"string","format":"uri","maxLength":2000,"description":"Client business or campaign landing page URL."},"screenIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":1000,"default":[]},"source":{"type":"string","enum":["owned","vistar","mixed"],"default":"mixed"},"impressions":{"type":"integer","exclusiveMinimum":0},"budgetUsd":{"type":"number","exclusiveMinimum":0},"ownedBudgetUsd":{"type":"number","exclusiveMinimum":0},"partnerBudgetUsd":{"type":"number","exclusiveMinimum":0},"ownedImpressions":{"type":"integer","exclusiveMinimum":0},"partnerImpressions":{"type":"integer","exclusiveMinimum":0},"quoteId":{"type":"string","minLength":1,"maxLength":200},"quoteIds":{"type":"object","properties":{"owned":{"type":"string","minLength":1,"maxLength":200},"partner":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false},"flightStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"flightEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"startTime":{"type":"string","default":"00:00"},"endTime":{"type":"string","default":"23:59"},"timezone":{"type":"string","minLength":1,"maxLength":200,"description":"IANA timezone for the local flight."},"providerPlan":{"anyOf":[{"type":"object","properties":{"advertisementId":{"type":"string","minLength":1,"maxLength":200},"geography":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"radius":{"type":"object","properties":{"center":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"miles":{"type":"number","exclusiveMinimum":0,"maximum":500}},"required":["center","miles"],"additionalProperties":false},"markets":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","minLength":2,"maxLength":2},"code":{"type":"string","minLength":1,"maxLength":200}},"required":["country","code"],"additionalProperties":false},"maxItems":50},"postalCodes":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":200},"countryCode":{"type":"string","minLength":2,"maxLength":2},"polygon":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minItems":3,"maxItems":100}},"additionalProperties":false},"budgetUsd":{"type":"number","exclusiveMinimum":0},"flightStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"flightEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local calendar date, YYYY-MM-DD."},"channels":{"type":"array","items":{"type":"string","enum":["ctv","video","audio","display"]},"minItems":1,"maxItems":4},"selectedProductIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"personaIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"intuiziSegmentIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"packageAudienceLens":{"type":"string","minLength":1,"maxLength":200},"contextualTargeting":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"contextualAvoidance":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"audience":{"type":"object","properties":{"age_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"income_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"culture":{"type":"array","items":{"type":"string","enum":["white","black","asian","american_indian","hispanic"]},"minItems":1},"education":{"type":"array","items":{"type":"string","enum":["hs_or_less","some_college","bachelors","graduate"]},"minItems":1},"gender":{"type":"array","items":{"type":"string","enum":["male","female"]},"minItems":1},"language":{"type":"array","items":{"type":"string","enum":["english_only","spanish","other_indo_european","asian_pacific","other"]},"minItems":1},"life_stage":{"type":"array","items":{"type":"string","enum":["new_movers","settled","long_tenured","married","singles","new_parents","empty_nesters"]},"minItems":1},"household":{"type":"boolean"},"lifestyle":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1},"propertyNames":{"minLength":1}},"interests":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"intent":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"place":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"venue_concept":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1},"minItems":1},{"type":"object","additionalProperties":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyNames":{"minLength":1}}]},"hard":{"type":"boolean"},"min_fit":{"type":"number","minimum":0,"maximum":1}},"additionalProperties":false},"targeting":{"type":"object","properties":{"personaIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"intuiziSegmentIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":50},"packageAudienceLens":{"type":"string","minLength":1,"maxLength":200},"contextualTargeting":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"contextualAvoidance":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":100},"audience":{"type":"object","properties":{"age_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"income_range":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"culture":{"type":"array","items":{"type":"string","enum":["white","black","asian","american_indian","hispanic"]},"minItems":1},"education":{"type":"array","items":{"type":"string","enum":["hs_or_less","some_college","bachelors","graduate"]},"minItems":1},"gender":{"type":"array","items":{"type":"string","enum":["male","female"]},"minItems":1},"language":{"type":"array","items":{"type":"string","enum":["english_only","spanish","other_indo_european","asian_pacific","other"]},"minItems":1},"life_stage":{"type":"array","items":{"type":"string","enum":["new_movers","settled","long_tenured","married","singles","new_parents","empty_nesters"]},"minItems":1},"household":{"type":"boolean"},"lifestyle":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1},"propertyNames":{"minLength":1}},"interests":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"intent":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"place":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"venue_concept":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1},"minItems":1},{"type":"object","additionalProperties":{"type":"number","exclusiveMinimum":0,"maximum":100},"propertyNames":{"minLength":1}}]},"hard":{"type":"boolean"},"min_fit":{"type":"number","minimum":0,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"required":["budgetUsd","flightStart","flightEnd","channels"],"additionalProperties":false},{"type":"null"}]},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Stable unique key for this action. Reuse this key and unchanged arguments when retrying."}},"required":["flightStart","flightEnd","idempotency_key"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Save campaign draft","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"definitionHash":"72d1afab6759bde91ce0c5ff2b38ba12bc56318719837a45526298f4cedb85ca","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/planner","endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","name":"search_ad_inventory","title":"Search ad inventory","description":"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.","inputSchema":{"type":"object","properties":{"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."},"city":{"type":"string","minLength":1,"maxLength":200,"description":"Native city filter. For neighborhoods such as Manhattan, use radius around the requested area instead."},"state":{"type":"string","minLength":1,"maxLength":200},"radius":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"miles":{"type":"number","exclusiveMinimum":0,"maximum":500}},"required":["lat","lng","miles"],"additionalProperties":false,"description":"Geographic inventory search around the client location. Use this for neighborhoods and nearby screens, without an additional neighborhood text or city filter."},"source":{"type":"string","enum":["owned","vistar","mixed"],"default":"mixed"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"cursor":{"type":"string","minLength":1,"maxLength":200},"channels":{"type":"array","items":{"type":"string","enum":["ctv","video","audio","display"]},"maxItems":4}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Search ad inventory","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"9b1dd1b56699c4aada16027e205cda814c9c2743e81e5dc6674b3451a34102c4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.977Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"b51855cf9f7c98f213c1d4be975a6d1b3217c028ffd3cff83588a131fc3eeaf4","protocol":"streamable-http","status":"indexed","toolCount":9,"observedAt":"2026-10-30T17:46:19.977Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"com.trillboards/planner":{"url":"https://api.trillboards.com/mcp/advertiser"}}},"Cursor":{"mcpServers":{"com.trillboards/planner":{"url":"https://api.trillboards.com/mcp/advertiser"}}},"VS Code":{"servers":{"com.trillboards/planner":{"type":"http","url":"https://api.trillboards.com/mcp/advertiser"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.trillboards.com/mcp/advertiser"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:com.trillboards%2Fplanner","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/com.trillboards%2Fplanner","name":"com.trillboards/planner","description":"Plan and book out-of-home, CTV, video, audio and display campaigns, paid through Stripe.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.trillboards.com/mcp/advertiser"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://trillboards.com","repositoryUrl":null,"version":"1.0.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"com.trillboards/planner","status":"online","lastCheckedAt":"2026-11-03T17:17:24.606Z","lastSuccessfulCheck":"2026-11-03T17:17:24.606Z","latencyMs":119,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T17:17:24.606Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T17:17:24.606Z"},"security":null,"timestamps":{"createdAt":"2026-10-20T17:46:08.245Z","updatedAt":"2026-10-20T17:46:08.245Z","observedAt":"2026-11-03T17:17:24.606Z"},"compatibility":{"serverVersion":"1.0.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}