{"data":{"name":"com.trillboards/dooh","title":"Trillboards DOOH Advertising","description":"757,000+ screens reachable through Trillboards and 29,000+ screens registered on our own network.","version":"1.0.0","websiteUrl":"https://trillboards.com","repositoryUrl":null,"remotes":[{"url":"https://api.trillboards.com/mcp","type":"streamable-http","headers":[{"name":"Authorization","isSecret":true,"description":"Bearer <platform_api_key>. Leave it out to call the open tools (get_products, register_partner); register_partner returns a sandbox key in one call."}]}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-20T17:58:06.113Z","updatedAt":"2026-10-20T17:58:06.113Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Trillboards DOOH Advertising","source":"official-registry","sourceId":"com.trillboards/dooh","updatedAt":"2026-10-20T17:58:06.113Z","confidence":100,"websiteUrl":"https://trillboards.com","description":"757,000+ screens reachable through Trillboards and 29,000+ screens registered on our own network.","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"activate_signal","title":null,"description":"[AdCP Signals] Activate an audience signal for DSP targeting.\n\nReturns an activation_key token for referencing this signal activation. Free-form\nTrillboards signal labels remain custom parameters. IAB Audience Taxonomy 1.1\nsegments are emitted only when registered IDs are supplied explicitly.\n\nWHEN TO USE:\n- Converting audience signals into actionable targeting parameters\n- Activating already-curated, registered IAB segment IDs for programmatic requests\n- Creating reusable targeting configurations\n\nRETURNS:\n- activation_key: Token for referencing this activation (24h expiry)\n- targeting: { iab_segments, iab_taxonomy_version, custom_params }\n- screen_count, provider, data_source, methodology\n\nEXAMPLE:\nUser: \"Activate the registered $100k-$149k household-income segment on my screens\"\nactivate_signal({\n  signal_type: \"audience\",\n  parameters: { iab_audience_segment_ids: [\"68\"] },\n  screen_ids: [\"507f1f77bcf86cd799439011\"]\n})","inputSchema":{"type":"object","properties":{"signal_agent_segment_id":{"type":"string","maxLength":120},"signal_type":{"type":"string","minLength":1,"maxLength":50,"description":"Type of signal to activate (e.g., \"audience\", \"venue\", \"behavior\")"},"parameters":{"type":"object","properties":{"income":{"type":"string","enum":["high","upper_mid","mid","lower_mid","low"]},"lifestyle":{"type":"string","description":"Lifestyle segment key"},"purchase_intent":{"type":"string","enum":["high","medium","low"]},"iab_audience_segment_ids":{"type":"array","items":{"type":"string","pattern":"^(?:iab:)?[1-9]\\d*$"},"maxItems":50,"description":"Explicit registered IAB Audience Taxonomy 1.1 IDs; inferred labels are never auto-mapped"}},"additionalProperties":false,"description":"Signal parameters to activate as targeting"},"screen_ids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"maxItems":500,"description":"Specific screens to activate on (optional, defaults to all partner screens)"},"destinations":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["dsp","dmp","data_clean_room"]},"platform":{"type":"string"},"seat_id":{"type":"string"}},"additionalProperties":true},"description":"Where to push activated segments"}},"required":["signal_type","parameters"],"additionalProperties":true,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"65fd00bcc55905a47e63a93df8af72086f0e16b029b63ce8f88c158a9be0bf9d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"batch_impressions","title":null,"description":"Record multiple impressions in a single request (up to 100).\n\nWHEN TO USE:\n- Bulk reporting impressions from offline period\n- Efficient batch processing of impressions\n- When device was offline and needs to sync\n\nRETURNS:\n- success: Boolean indicating success\n- processed: Number of impressions processed\n- failed: Number of failed impressions\n- total_earnings: Total earnings credited\n- errors: Any error details for failed impressions\n\nEXAMPLE:\nUser: \"Sync the last hour of impressions\"\nbatch_impressions({\n  impressions: [\n    { fingerprint: \"P_abc123\", ad_id: \"507f1f77bcf86cd799439011\", duration_seconds: 15 },\n    { fingerprint: \"P_abc123\", ad_id: \"507f1f77bcf86cd799439012\", duration_seconds: 10 }\n  ]\n})","inputSchema":{"type":"object","properties":{"impressions":{"type":"array","items":{"type":"object","properties":{"fingerprint":{"type":"string","minLength":1,"maxLength":100,"description":"Device fingerprint"},"ad_id":{"type":"string","pattern":"^[0-9a-f]{24}$","description":"Advertisement ID"},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"Display duration"},"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 timestamp"}},"required":["fingerprint","ad_id"],"additionalProperties":false},"minItems":1,"maxItems":100,"description":"Array of impression objects (max 100)"}},"required":["impressions"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"25d40af5f85b3b06a4f457e1370424557e80480ebec080f6342f09ccc00ed9a3","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"configure_feedback_brand","title":null,"description":"Configure your native brand profile and enable its booked reactive campaign. Uses your authenticated native buyer and existing funded placement.","inputSchema":{"type":"object","properties":{"experiment_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native experiment ID returned by create_creative_experiment."},"brand_name":{"type":"string","minLength":1,"description":"Advertiser brand name for the experiment’s native campaign."},"brand_rules":{"type":"object","properties":{"brand_name":{"type":"string","description":"The advertiser brand name, e.g. \"Nike\"."},"palette":{"type":"object","properties":{"primary":{"type":"string","description":"Primary brand colour (hex or named); empty string if unknown."},"secondary":{"type":"string","description":"Secondary brand colour; empty string if none."},"accents":{"type":"array","items":{"type":"string"},"description":"Accent colours; may be empty."}},"required":["primary","secondary","accents"],"additionalProperties":false,"description":"Brand colour palette."},"typography":{"type":"object","properties":{"headline":{"type":"string","description":"Headline typeface / style guidance; empty string if none."},"body":{"type":"string","description":"Body typeface / style guidance; empty string if none."}},"required":["headline","body"],"additionalProperties":false,"description":"Typography guidance."},"voice_tone":{"type":"array","items":{"type":"string"},"description":"Voice + tone adjectives, e.g. [\"confident\",\"playful\"]; may be empty."},"mandatory_elements":{"type":"array","items":{"type":"string"},"description":"Elements that MUST appear in every creative, e.g. [\"logo top-right\",\"legal disclaimer\"]; may be empty."},"prohibited_elements":{"type":"array","items":{"type":"string"},"description":"Elements that must NEVER appear, e.g. [\"competitor logos\",\"alcohol\"]; may be empty."},"products":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Product name."},"description":{"type":"string","description":"Short product description; empty string if none."}},"required":["name","description"],"additionalProperties":false},"description":"Key products to feature; may be empty."},"taglines":{"type":"array","items":{"type":"string"},"description":"Approved taglines / slogans; may be empty."},"stance_preferences":{"type":"array","items":{"type":"string","enum":["adversarial","complementary","same_brand","intent_capture"]},"description":"Preferred reactive stances for this brand; may be empty."}},"required":["brand_name","palette","typography","voice_tone","mandatory_elements","prohibited_elements","products","taglines","stance_preferences"],"additionalProperties":false,"description":"Native brand colours, typography, voice, products and required or prohibited elements."},"brand_assets":{"type":"array","items":{"type":"object","additionalProperties":{}},"description":"Native brand reference assets used by creative generation.","default":[]},"brand_intent_text":{"type":["string","null"],"description":"Optional brand intent supplied to the native creative generator."},"stance":{"type":"string","enum":["adversarial","complementary","same_brand","intent_capture"],"description":"Native reactive relationship used to generate or stage this creative.","default":"intent_capture"},"profile_id":{"type":"string","minLength":1,"maxLength":256,"description":"Optional existing brand profile owned by this advertiser and advertisement."}},"required":["experiment_id","brand_name","brand_rules"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"definitionHash":"6dcd696ef3030ae8dc77dd4876c788dcf8a4d323c88de1bef257b5dc994f9fc6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"create_campaign","title":null,"description":"Create a new advertising campaign targeting DOOH screens.\n\nWHEN TO USE:\n- Setting up a new ad campaign on available screens\n- Targeting specific venues, locations, or audience profiles\n- Allocating budget for programmatic DOOH buys\n\nRETURNS:\n- campaign_id: Unique campaign identifier (UUID)\n- name, status, budget, screen_count, dates\n\nCampaign starts in \"draft\" status. Use update_campaign to set status to \"active\".\n\nEXAMPLE:\nUser: \"Create a campaign targeting retail screens in NYC at $5 CPM\"\ncreate_campaign({\n  name: \"NYC Retail Q1\",\n  budget_cpm: 5.0,\n  daily_budget_usd: 100,\n  venue_types: [\"retail\"],\n  targeting: { geo: { city: \"New York\", state: \"NY\" } },\n  creative_url: \"https://cdn.example.com/ad.mp4\",\n  start_date: \"2026-03-01\",\n  end_date: \"2026-03-31\"\n})","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Campaign name"},"budget_cpm":{"type":"number","exclusiveMinimum":0,"maximum":1000,"description":"Bid CPM in USD (default: 4.0)"},"daily_budget_usd":{"type":"number","minimum":0,"maximum":100000,"description":"Daily budget cap in USD"},"total_budget_usd":{"type":"number","minimum":0,"maximum":10000000,"description":"Total campaign budget in USD"},"screen_ids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"maxItems":500,"description":"Specific screen IDs to target (optional, overrides venue/geo targeting)"},"venue_types":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":20,"description":"Venue types to target: transit, retail, outdoor, office, etc."},"targeting":{"type":"object","properties":{"geo":{"type":"object","properties":{"city":{"type":"string","maxLength":100},"state":{"type":"string","maxLength":100},"country":{"type":"string","maxLength":100},"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"radius_km":{"type":"number","exclusiveMinimum":0,"maximum":500}},"additionalProperties":false},"audience_profile":{"type":"object","properties":{"income":{"type":"string"},"lifestyle":{"type":"string"},"min_attention":{"type":"number","minimum":0,"maximum":1}},"additionalProperties":false},"schedule":{"type":"object","properties":{"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"description":"0=Sun..6=Sat"},"hours":{"type":"array","items":{"type":"integer","minimum":0,"maximum":23},"description":"0-23"}},"additionalProperties":false}},"additionalProperties":false,"description":"Additional targeting criteria"},"creative_url":{"type":"string","format":"uri","description":"URL to video/image creative asset"},"creative_type":{"type":"string","enum":["video","image","vast"],"description":"Creative format"},"creative_duration":{"type":"integer","minimum":1,"maximum":120,"description":"Duration in seconds (default: 15)"},"start_date":{"type":"string","description":"Campaign start date (ISO 8601)"},"end_date":{"type":"string","description":"Campaign end date (ISO 8601)"}},"required":["name"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"b8a5e2fa096358010c780bef96430cb7e686bb7c7b6c6d5391bbd4aef430f14d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"create_creative_experiment","title":null,"description":"Create an experiment on a funded native media-buy placement. Uses your authenticated native buyer and existing funded placement.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Name for this funded creative feedback experiment."},"media_buy_id":{"type":"string","minLength":1,"maxLength":256,"description":"Your funded native AdCP media buy ID."},"package_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native package ID within that media buy."},"objective":{"type":"string","enum":["gaze_share","gaze_overlap_ms","dwell_ms"],"description":"Measured objective: gaze share 0–1, gaze overlap milliseconds, or capped mean dwell milliseconds."},"idempotency_key":{"type":"string","minLength":1,"maxLength":256,"description":"Caller-owned key for this exact operation; do not reuse for changed inputs."},"expected_policy_version":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","maxLength":19,"description":"Exact decimal policy version; zero enrolls an unclaimed native policy.","default":"0"}},"required":["name","media_buy_id","package_id","objective","idempotency_key"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"definitionHash":"969cdd2e856dcfcf460970ce93a6829de8201af00127b89290f1123acdff3d78","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"create_media_buy","title":null,"description":"[AdCP Media Buy] Create a media buy (campaign) from an AdCP buy specification.\n\nCreates a campaign that targets DOOH screens based on the provided specification.\nReturns a media_buy_id for tracking and a creative_deadline for asset submission.\n\nWHEN TO USE:\n- Executing a programmatic DOOH buy via an AI agent\n- Creating campaigns from DSP trading desk agents\n- Automated media buying workflows\n\nRETURNS:\n- media_buy_id: Unique identifier for this media buy\n- campaign_id: Internal campaign identifier\n- creative_deadline: Deadline for creative asset submission\n- targeting_summary: What was targeted\n- budget_summary: Budget allocation details\n\nEXAMPLE:\nUser: \"Buy retail screens in NYC at $5 CPM for next week\"\ncreate_media_buy({\n  name: \"NYC Retail Week 12\",\n  buy_spec: {\n    venue_types: [\"retail\"],\n    geo: { city: \"New York\", state: \"NY\" },\n    budget: { daily_usd: 500, bid_cpm: 5.0 },\n    schedule: { start_date: \"2026-03-16\", end_date: \"2026-03-22\" }\n  },\n  creative: {\n    url: \"https://cdn.example.com/creative.mp4\",\n    type: \"video\",\n    duration_seconds: 15\n  },\n  buyer_ref: \"agency-order-12345\"\n})","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Media buy name"},"packages":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string"},"pricing_option_id":{"type":"string"},"budget":{"anyOf":[{"type":"number","minimum":0},{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"additionalProperties":true}]},"bid_price":{"type":"number","minimum":0},"impressions":{"type":"number","minimum":0},"targeting_overlay":{"type":"object","additionalProperties":{}}},"additionalProperties":true},"description":"AdCP product packages to buy"},"brand":{"type":"object","properties":{"domain":{"type":"string"},"name":{"type":"string"}},"additionalProperties":true,"description":"Brand reference"},"total_budget":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"additionalProperties":true},"context":{"type":"object","additionalProperties":{}},"start_time":{"type":"string","description":"ISO 8601 start time"},"end_time":{"type":"string","description":"ISO 8601 end time"},"buy_spec":{"type":"object","properties":{"venue_types":{"type":"array","items":{"type":"string"}},"screen_ids":{"type":"array","items":{"type":"string"}},"geo":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"radius_km":{"type":"number"}},"additionalProperties":false},"audience_profile":{"type":"object","additionalProperties":{}},"budget":{"type":"object","properties":{"daily_usd":{"type":"number"},"total_usd":{"type":"number"},"bid_cpm":{"type":"number"}},"additionalProperties":false},"schedule":{"type":"object","properties":{"start_date":{"type":"string"},"end_date":{"type":"string"},"days":{"type":"array","items":{"type":"number"}},"hours":{"type":"array","items":{"type":"number"}}},"additionalProperties":false}},"additionalProperties":false,"description":"Buy specification (legacy)"},"creative":{"type":"object","properties":{"url":{"type":"string"},"type":{"type":"string","enum":["video","image","vast"]},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0},"duration_seconds":{"type":"number"}},"additionalProperties":false},"buyer_ref":{"type":"string","maxLength":200,"description":"External reference ID from the buyer/agency"},"idempotency_key":{"type":"string","maxLength":200}},"additionalProperties":true,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"27932ab6bf5bbe639cf817898cef6704fceca4bf02a7eb8ce0506937af1c9d34","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"create_webhook","title":null,"description":"Create a new webhook subscription for real-time events.\n\nWHEN TO USE:\n- Setting up real-time notifications for device events\n- Integrating with external systems\n- Monitoring ad playback and impressions\n\nAVAILABLE EVENTS:\n- device.online: When a device comes online\n- device.offline: When a device goes offline\n- impression.recorded: When an impression is logged\n- campaign.allocated: When a campaign is allocated to a device\n- payout.processed: When a payout is processed\n- programmatic.ad_started: When a programmatic ad begins playing\n- programmatic.ad_ended: When a programmatic ad finishes playing\n- programmatic.no_fill: When a programmatic ad request gets no fill\n- programmatic.error: When a programmatic ad request errors\n\nRETURNS:\n- webhook_id: Unique webhook identifier\n- url: The webhook endpoint URL\n- events: Subscribed events\n- secret: HMAC signing secret (if provided)\n- status: enabled/disabled\n\nEXAMPLE:\nUser: \"Set up a webhook for device status changes\"\ncreate_webhook({\n  url: \"https://api.mycompany.com/trillboards/webhooks\",\n  events: [\"device.online\", \"device.offline\", \"programmatic.error\"],\n  secret: \"my-signing-secret-123\"\n})","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"HTTPS endpoint URL to receive webhook events"},"events":{"type":"array","items":{"type":"string","enum":["device.online","device.offline","impression.recorded","campaign.allocated","payout.processed","programmatic.ad_started","programmatic.ad_ended","programmatic.no_fill","programmatic.error","sensing.threshold_crossed","audience.spike","audience.venue_busy","audience.purchase_intent","audience.demographics_update","venue.traffic_summary","screen_group.created","screen_group.updated","screen_group.deleted","screen_group.member.added","screen_group.member.removed","screen_group.content_policy.updated","screen_group.sensing_config.updated","fleet_command.completed","fleet_command.failed"]},"minItems":1,"maxItems":10,"description":"Events to subscribe to"},"secret":{"type":"string","maxLength":100,"description":"HMAC signing secret for verifying webhook authenticity (optional but recommended)"},"description":{"type":"string","maxLength":500,"description":"Human-readable description for this webhook"}},"required":["url","events"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"860e021f2299bdabdee7dbc3653bb932366749668049c483349ad76cbd8c06d6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"delete_device","title":null,"description":"Soft-delete a device from the partner account.\n\nWHEN TO USE:\n- Removing a device that's been decommissioned\n- Cleaning up test devices\n- Removing a device that's been relocated to another partner\n\nRETURNS:\n- success: Boolean indicating success\n- device_id: The deleted device ID\n- message: Confirmation message\n\nEXAMPLE:\nUser: \"Remove the old lobby kiosk\"\ndelete_device({\n  device_id: \"lobby-kiosk-old\"\n})","inputSchema":{"type":"object","properties":{"device_id":{"type":"string","minLength":1,"maxLength":100,"description":"Your internal device identifier to delete"}},"required":["device_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"9f7a7365f8d510557013cf8dccb1ad33ac9c58e7c02ec098935b6fab054f4415","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"delete_webhook","title":null,"description":"Delete a webhook subscription.\n\nWHEN TO USE:\n- Removing a webhook that's no longer needed\n- Cleaning up old integrations\n- Removing test webhooks\n\nRETURNS:\n- success: Boolean indicating success\n- webhook_id: The deleted webhook ID\n- message: Confirmation message\n\nEXAMPLE:\nUser: \"Delete the old webhook\"\ndelete_webhook({\n  webhook_id: \"wh_mmmpdbvj_8b7c5a59296d\"\n})","inputSchema":{"type":"object","properties":{"webhook_id":{"type":"string","pattern":"^(wh_[a-z0-9]+_[a-f0-9]+|[a-f0-9]{24})$","description":"Webhook ID to delete (wh_xxx format or legacy ObjectId)"}},"required":["webhook_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"9f9cb5e0a6eade9199630b6eed02f63230bb6726167337d486baceb35cad8372","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"device_heartbeat","title":null,"description":"Send a heartbeat signal from a device to report its status.\n\nWHEN TO USE:\n- Regular device health monitoring (every 30-60 seconds)\n- Reporting current playback status\n- Reporting errors or issues\n\nRETURNS:\n- success: Boolean indicating success\n- device_status: Current device status in system\n- next_heartbeat_seconds: Recommended interval for next heartbeat\n\nEXAMPLE:\nUser: \"Send heartbeat for device P_abc123\"\ndevice_heartbeat({\n  fingerprint: \"P_abc123\",\n  status: \"playing\",\n  current_ad_id: \"507f1f77bcf86cd799439011\",\n  uptime_seconds: 3600\n})","inputSchema":{"type":"object","properties":{"fingerprint":{"type":"string","minLength":1,"maxLength":100,"description":"Device fingerprint (e.g., \"P_abc123\")"},"status":{"type":"string","enum":["online","playing","idle","error"],"description":"Current device status"},"current_ad_id":{"type":"string","pattern":"^[0-9a-f]{24}$","description":"Currently playing ad ID (if status is \"playing\")"},"uptime_seconds":{"type":"integer","minimum":0,"description":"Device uptime in seconds"},"error_message":{"type":"string","maxLength":500,"description":"Error message (if status is \"error\")"}},"required":["fingerprint"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"e6a00aa477f8eeae2eb4f7119e82f78cbc253f8caf5fb15d54384ee2da61bee5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"discover_inventory","title":null,"description":"Discover available DOOH screens across the exchange network.\n\nWHEN TO USE:\n- Finding screens by venue type (retail, transit, office, etc.)\n- Finding screens in a specific city/state or within a radius\n- Finding screens with a specific audience profile (high income, professionals, etc.)\n- Getting an overview of available inventory with live audience data\n\nRETURNS:\n- screens: Array of screen objects with location, venue type, online status, and live audience data\n- total: Total matching screens\n- online_count: Number of currently online screens\n\nEach screen includes real-time audience data when available:\n- face_count, attention_score, income_level, mood, lifestyle\n- purchase_intent, crowd_density, ad_receptivity, dwell_time\n\nEXAMPLE:\nUser: \"Find retail screens in New York with high-income audience\"\ndiscover_inventory({\n  venue_types: [\"retail\"],\n  location: { city: \"New York\", state: \"NY\" },\n  audience_profile: { income: \"high\" },\n  limit: 20\n})","inputSchema":{"type":"object","properties":{"venue_types":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":20,"description":"Filter by venue types: transit, retail, outdoor, health_beauty, point_care, education, office, entertainment, government, financial, residential"},"location":{"type":"object","properties":{"city":{"type":"string","maxLength":100,"description":"City name"},"state":{"type":"string","maxLength":100,"description":"State/province"},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude for radius search"},"lng":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude for radius search"},"radius_km":{"type":"number","exclusiveMinimum":0,"maximum":500,"description":"Search radius in kilometers"}},"additionalProperties":false,"description":"Location filter — use city/state OR lat/lng/radius_km"},"audience_profile":{"type":"object","properties":{"income":{"type":"string","enum":["high","upper_mid","mid","lower_mid","low"],"description":"Target income level"},"lifestyle":{"type":"string","maxLength":50,"description":"Target lifestyle segment (professional, student, fitness, luxury_shopper, tech_savvy, etc.)"},"min_attention":{"type":"number","minimum":0,"maximum":1,"description":"Minimum attention score (0-1)"}},"additionalProperties":false,"description":"Filter screens by current audience characteristics"},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Maximum screens to return (default: 50, max: 200)"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"11dcd05fa000cacdb972192e3720129698e7b9c9096abf82ad02dcbb46cda704","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"generate_brand_creative","title":null,"description":"Generate a native brand creative for explicit review and moderation. The native ad and advertiser come from the experiment. Review and AI moderation are separate. The existing data_api/api_calls tariff applies.","inputSchema":{"type":"object","properties":{"experiment_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native experiment ID returned by create_creative_experiment."},"stance":{"type":"string","enum":["adversarial","complementary","same_brand","intent_capture"],"description":"Native reactive relationship used to generate or stage this creative.","default":"intent_capture"},"aspectRatio":{"type":"string","minLength":1,"maxLength":32,"description":"Image aspect ratio, such as 16:9, matched to your booked screens.","default":"16:9"},"brief":{"type":"string","maxLength":10000,"description":"Creative direction added to your configured native brand rules.","default":""},"idempotency_key":{"type":"string","minLength":1,"maxLength":256,"description":"Unique caller-owned generation key; committed retries expose creativeId and renderKey in the receipt."}},"required":["experiment_id","idempotency_key"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"definitionHash":"4cd9bed689b753e6a65b2b8950f5cb9984e5aa0bb9a0be11af64756e1cf3e92c","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_adcp_capabilities","title":null,"description":"[AdCP] Get the seller agent's AdCP capabilities and supported protocols.\n\nReturns the full capability declaration for this AdCP DOOH seller agent.\nThis tool does NOT require authentication.\n\nWHEN TO USE:\n- Discovering what protocols the seller agent supports (Signals, Media Buy)\n- Understanding available audience signals and data methodology\n- Getting MCP endpoint and discovery URLs\n\nRETURNS:\n- supported_protocols: ['signals', 'media_buy']\n- inventory: DOOH format details, network size\n- audience_data: signal list, methodology, refresh rate\n- pricing: model, currency, floor CPM\n- discovery: well_known_url, mcp_endpoint","inputSchema":{"type":"object","properties":{},"additionalProperties":true,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"25e031b07e9fa282f048724d272a53b4d0698f1e46e00d591a1ff63498d7e451","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_analytics","title":null,"description":"Get analytics data for the partner account.\n\nWHEN TO USE:\n- Viewing overall performance metrics\n- Analyzing device performance\n- Generating reports on impressions and earnings\n- Comparing performance over time periods\n\nRETURNS:\n- summary: Overall stats (impressions, earnings, active_devices)\n- time_series: Data points over time\n- top_devices: Best performing devices\n- breakdown: Data grouped by requested dimension\n\nEXAMPLE:\nUser: \"Show me last week's analytics by device\"\nget_analytics({\n  start_date: \"2026-01-01\",\n  end_date: \"2026-01-07\",\n  group_by: \"device\"\n})\n\nUser: \"Get monthly performance breakdown\"\nget_analytics({\n  start_date: \"2025-12-01\",\n  end_date: \"2025-12-31\",\n  group_by: \"day\"\n})","inputSchema":{"type":"object","properties":{"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start date in YYYY-MM-DD format (optional, defaults to 30 days ago)"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date in YYYY-MM-DD format (optional, defaults to today)"},"group_by":{"type":"string","enum":["day","week","month","device"],"description":"How to group the analytics data"},"device_id":{"type":"string","maxLength":100,"description":"Filter to a specific device (optional)"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"8a8ac2cfdce1e47ca2ea4d959405447ad0a4dbef40c7d7bef26f7c675096f0af","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_audience_forecast","title":null,"description":"Predict what the audience will look like at a screen at a specific time.\n\nWHEN TO USE:\n- Planning campaigns for specific time slots\n- Estimating audience composition before buying\n- Comparing audience at different times of day\n\nUses historical audience data to predict typical audience patterns.\n\nRETURNS:\n- predicted_face_count: Expected number of viewers\n- predicted_attention: Expected attention score\n- typical_income: Most common income level at that time\n- typical_lifestyle: Most common lifestyle segment at that time\n- confidence: Prediction confidence (0-1, based on sample count)\n- sample_count: Number of historical data points used\n\nEXAMPLE:\nUser: \"What's the typical audience at this screen on Monday at 3pm?\"\nget_audience_forecast({\n  screen_id: \"507f1f77bcf86cd799439011\",\n  hour: 15,\n  day: 1,\n  lookback_days: 30\n})","inputSchema":{"type":"object","properties":{"screen_id":{"type":"string","minLength":1,"maxLength":50,"description":"Screen ID to forecast"},"hour":{"type":"integer","minimum":0,"maximum":23,"description":"Hour of day (0-23)"},"day":{"type":"integer","minimum":0,"maximum":6,"description":"Day of week (0=Sunday, 1=Monday, ..., 6=Saturday)"},"lookback_days":{"type":"integer","minimum":1,"maximum":365,"description":"Days of historical data to use (default: 30)"}},"required":["screen_id","hour","day"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"3bcc57b8b9f6d1d855fe8ba2465e58848000e82dfa6aa026d7238aa8531f1347","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_campaign_performance","title":null,"description":"Get detailed performance metrics for a campaign.\n\nWHEN TO USE:\n- Monitoring active campaign performance\n- Reviewing completed campaign results\n- Getting per-screen impression breakdowns\n\nRETURNS:\n- campaign_id, name, status, budget, dates\n- performance: impressions, spend_estimate_usd, avg_cpm, unique_screens, avg_latency_ms\n- screen_breakdown: per-screen impressions and CPM\n\nEXAMPLE:\nUser: \"How is my NYC retail campaign performing?\"\nget_campaign_performance({ campaign_id: \"550e8400-e29b-41d4-a716-446655440000\" })","inputSchema":{"type":"object","properties":{"campaign_id":{"type":"string","minLength":1,"maxLength":100,"description":"Campaign UUID returned from create_campaign"}},"required":["campaign_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"40c4fbd3e5c929738ff6191ff23ba2facd04975fdd3bf07de9f12c3c26762630","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_creative_experiment","title":null,"description":"Read your native experiment, policy and latest 500 owned creative recovery records. Uses your authenticated native buyer and existing funded placement.","inputSchema":{"type":"object","properties":{"experiment_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native experiment ID returned by create_creative_experiment."}},"required":["experiment_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true},"definitionHash":"27a1fbb43991aa536e2bdc7fe89b9d591357259e2321b9dd94aea24434d8a16f","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_creative_rewards","title":null,"description":"Read a metered page of latest measured native play states. Read actual latest native plays with NULL preserved. Dates are YYYY-MM-DD, max 31 days. Poll with the returned cursor; canonical_key plus reward_revision_id identify logical changes; build_stamp is provenance. Each page uses the published data_api/api_calls tariff.","inputSchema":{"type":"object","properties":{"experiment_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native experiment ID returned by create_creative_experiment."},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Inclusive first play date, YYYY-MM-DD; date range is at most 31 days."},"to":{"$ref":"#/properties/from","description":"Inclusive last play date, YYYY-MM-DD; date range is at most 31 days."},"limit":{"type":"integer","minimum":1,"maximum":5000,"description":"Maximum native play states returned on this metered page."},"cursor":{"type":"string","minLength":1,"maxLength":8192,"description":"Opaque next_cursor from this same date scope; rewind after scan_complete."},"idempotency_key":{"type":"string","minLength":1,"maxLength":256,"description":"Unique caller-owned billing key for this page; committed retries return the receipt, not another read."}},"required":["experiment_id","from","to","idempotency_key"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true},"definitionHash":"005b56dbf79973b560f69f2d9e746b55481b968ed3366aad0919d73ba62faf6a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_device","title":null,"description":"Get detailed information about a specific device.\n\nWHEN TO USE:\n- Checking status of a single device\n- Getting device configuration details\n- Debugging device issues\n\nRETURNS:\n- device_id: Your internal device ID\n- trillboards_device_id: Internal Trillboards ID\n- fingerprint: Device fingerprint\n- name: Device name\n- status: online/offline\n- last_seen: Last heartbeat timestamp\n- location: Location details\n- specs: Device specifications\n- stats: Impression and earnings stats\n\nEXAMPLE:\nUser: \"Get details for vending machine 001\"\nget_device({\n  device_id: \"vending-001-nyc\"\n})","inputSchema":{"type":"object","properties":{"device_id":{"type":"string","minLength":1,"maxLength":100,"description":"Your internal device identifier"}},"required":["device_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"fa8f843f2ed56313cccb5eed2894354826463fe1439e8ae73b76602b57152d0b","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_device_ads","title":null,"description":"Get current ads scheduled for a device (for testing).\n\nWHEN TO USE:\n- Testing device ad delivery\n- Debugging which ads are being shown\n- Verifying ad targeting is working\n\nRETURNS:\n- ads: Array of advertisement objects\n- default_stream: Default content when no ads\n- schedule: Current ad schedule\n\nEXAMPLE:\nUser: \"What ads are showing on device P_abc123?\"\nget_device_ads({\n  fingerprint: \"P_abc123\"\n})","inputSchema":{"type":"object","properties":{"fingerprint":{"type":"string","minLength":1,"maxLength":100,"description":"Device fingerprint (e.g., \"P_abc123\")"}},"required":["fingerprint"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"ca1575cd8b47e52ec16e2452596953ce5c7d7861024912d312eca2d2cf3eda05","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_live_audience","title":null,"description":"Get real-time audience data for a specific screen.\n\nWHEN TO USE:\n- Checking current audience at a screen before buying\n- Monitoring audience during a live campaign\n- Getting detailed audience signals (attention, mood, purchase intent, demographics)\n\nRETURNS real-time data from edge AI sensors (refreshed every 10 seconds):\n- face_count: Number of people currently viewing\n- attention_score: How attentively the audience is watching (0-1)\n- income_level: Estimated income bracket (from Gemini Vision)\n- mood: Current audience mood\n- lifestyle: Primary lifestyle segment\n- purchase_intent: Purchase intent level\n- crowd_density: Estimated venue occupancy\n- ad_receptivity: How receptive the audience is to ads (0-1)\n- emotional_engagement: Emotional engagement score (0-1)\n- group_composition: Solo/couples/families/friends/work groups\n- signals_age_ms: How fresh the data is in milliseconds\n\nEXAMPLE:\nUser: \"What's the current audience at screen 507f1f77bcf86cd799439011?\"\nget_live_audience({ screen_id: \"507f1f77bcf86cd799439011\" })","inputSchema":{"type":"object","properties":{"screen_id":{"type":"string","minLength":1,"maxLength":50,"description":"Screen ID to get live audience for"}},"required":["screen_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"c212257db9dae7db621885c5436eb71c2aaccf86154f6c51ee3297e070f5d588","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_media_buy_delivery","title":null,"description":"[AdCP Media Buy] Get delivery/performance report for a media buy.\n\nReturns campaign performance with breakdowns by screen, venue, hour, and audience segment.\n\nWHEN TO USE:\n- Monitoring campaign delivery in real-time\n- Getting performance breakdowns for optimization\n- Reporting on campaign results\n\nRETURNS:\n- delivery: impressions, spend, avg_cpm, unique_screens, fill_rate\n- breakdowns: by_screen, by_venue, by_hour (top performers)\n\nEXAMPLE:\nget_media_buy_delivery({ media_buy_id: \"mbuy_abc123\" })","inputSchema":{"type":"object","properties":{"media_buy_id":{"type":"string","minLength":1,"maxLength":100,"description":"Media buy ID"},"dimensions":{"type":"array","items":{"type":"string","enum":["screen","venue","hour","audience_segment","creative","day"]},"description":"Reporting dimensions to include. Only \"screen\" is supported; anything else is returned in dimensions_unsupported rather than silently dropped."},"breakdown_by":{"type":"array","items":{"type":"string","enum":["screen","venue","hour","audience_segment"]},"description":"Dimensions to break down by (legacy, prefer dimensions). Same single supported value."}},"required":["media_buy_id"],"additionalProperties":true,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"f638d4fbb771eacee076c5f867221dcc0d36c5518f98707e9d89b6fde4ca33e1","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_media_buys","title":null,"description":"[AdCP Media Buy] List media buys with status, budget, flight and optional delivery snapshots.\n\nStatus, budget and flight are read from the advertisements + placements spine the buy\nactually books on — not from a stored display string. A buy that its flight ended, or\nthat the pacing cron completed on goal, reports the truth here even though nothing\nrewrote it.\n\nWHEN TO USE:\n- Polling the buys you have open on this account\n- Confirming a buy left pending_creatives after sync_creatives\n- Getting a near-real-time delivery snapshot without a full delivery report\n\nRETURNS:\n- media_buys: each with media_buy_id, status, currency, total_budget, confirmed_at,\n  revision and packages[]. status is the AdCP media-buy-status enum; the accepted\n  values are listed on the status_filter parameter below.\n- pagination: cursor-based\n\nEXAMPLE:\nget_media_buys({ status_filter: [\"active\", \"pending_creatives\"], include_snapshot: true })\nget_media_buys({ media_buy_ids: [\"mbuy_1750000000000_ab12cd34\"] })","inputSchema":{"type":"object","properties":{"media_buy_ids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"minItems":1,"maxItems":100,"description":"Specific media buy IDs. When omitted, returns a paginated set matching status_filter."},"status_filter":{"anyOf":[{"type":"string","enum":["pending_creatives","pending_start","active","paused","completed","rejected","canceled"]},{"type":"array","items":{"$ref":"#/properties/status_filter/anyOf/0"},"minItems":1}],"description":"Single status or array of statuses. Defaults to ['active'] when media_buy_ids is omitted; no implicit filter when ids are given."},"include_snapshot":{"type":"boolean","description":"Include a delivery snapshot per package (impressions, spend, pacing_index). Read live off placements, so staleness_seconds is 0."},"pagination":{"type":"object","properties":{"max_results":{"type":"integer","minimum":1,"maximum":100,"description":"Page size (1-100, default 50)"},"cursor":{"type":"string","maxLength":500,"description":"Opaque cursor from a previous response"}},"additionalProperties":false},"context":{"type":"object","additionalProperties":{}}},"additionalProperties":true,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"cabff3f7b82e641a02aea963a887e9ec3954903c7e18a7d6cfd86d5b7ff0892d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_network_stats","title":null,"description":"Get network-wide statistics across all partner screens.\n\nWHEN TO USE:\n- Getting a high-level overview of network performance\n- Checking how many screens are online\n- Reviewing total impressions and revenue estimates\n\nRETURNS:\n- total_screens, online_screens\n- impressions, total_auctions\n- revenue_estimate_usd, avg_cpm, fill_rate\n\nEXAMPLE:\nUser: \"How is my network performing this week?\"\nget_network_stats({ time_range: \"7d\" })","inputSchema":{"type":"object","properties":{"time_range":{"type":"string","enum":["today","7d","30d"],"description":"Time range for stats (default: 7d)"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"7a5abf86964b49f11c85c50b0b87cf5f886f97bba985bf70f40899a023cb621c","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"},{"serverName":"com.trillboards/dooh","endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","name":"get_partner_info","title":null,"description":"Get information about the authenticated partner account.\n\nWHEN TO USE:\n- Checking current partner status and stats\n- Verifying API key is working\n- Getting partner account details\n\nRETURNS:\n- partner_id: Partner identifier\n- company_name: Registered company name\n- status: Account status (active, suspended, etc.)\n- device_count: Number of registered devices\n- total_impressions: Lifetime impression count\n- earnings: Earnings summary\n\nEXAMPLE:\nUser: \"What's my partner account status?\"\nget_partner_info({})","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":null,"definitionHash":"5511ee065bfff74b7d0f51ba1f334a7099a1cd724ffc769fc9df6f095afed253","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T17:46:19.629Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"8cd6312a9926b582a315885d67325df06ffac520a6537d72e194aa198eaa5737","protocol":"streamable-http","status":"indexed-partial","toolCount":50,"observedAt":"2026-10-30T17:46:19.629Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"com.trillboards/dooh":{"url":"https://api.trillboards.com/mcp"}}},"Cursor":{"mcpServers":{"com.trillboards/dooh":{"url":"https://api.trillboards.com/mcp"}}},"VS Code":{"servers":{"com.trillboards/dooh":{"type":"http","url":"https://api.trillboards.com/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.trillboards.com/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:com.trillboards%2Fdooh","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/com.trillboards%2Fdooh","name":"com.trillboards/dooh","description":"757,000+ screens reachable through Trillboards and 29,000+ screens registered on our own network.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.trillboards.com/mcp"}],"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/dooh","status":"online","lastCheckedAt":"2026-11-03T17:17:24.569Z","lastSuccessfulCheck":"2026-11-03T17:17:24.569Z","latencyMs":138,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T17:17:24.569Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T17:17:24.569Z"},"security":null,"timestamps":{"createdAt":"2026-10-20T17:58:06.113Z","updatedAt":"2026-10-20T17:58:06.113Z","observedAt":"2026-11-03T17:17:24.569Z"},"compatibility":{"serverVersion":"1.0.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}