# Trillboards DOOH Advertising

> DOOH advertising via AI agents. 5,000+ screens with edge AI audience intelligence.

- name: io.github.snehdhruv/trillboards-dooh
- version: 1.1.0
- connection class: unknown (deleted)
- trust: 73/100 flags: deleted
- quality: 67/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.snehdhruv%2Ftrillboards-dooh
- tools: https://api.protogrid.dev/v1/servers/io.github.snehdhruv%2Ftrillboards-dooh/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

_No connection block available._


## Trust

- hygiene: 100
- liveness: 100
- freshness: 0
- provenance: 75
- drivers: +repository +website +reachable +uptime-100%
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 67/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 57 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 24 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- warn `tools.annotations`: only 10 of 93 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_usage_summary (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); import_feedback_creative (openWorldHint); get_creative_experiment (openWorldHint); …
- fail `tools.token_cost`: about 38,085 tokens to load every tool, a large share of an agent's context
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 17 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 93, about 38,085 tokens to load them all
- tool set hash: 3d44e793bf8652e79ee1efffa07fcf11
- tools last changed: 2026-10-20T02:15:44.303Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.snehdhruv/trillboards-dooh.svg)](https://protogrid.dev/servers/io.github.snehdhruv/trillboards-dooh)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `get_social_contagion_summary` changed (description)
  - before: Aggregate social attention metrics across screens and time periods. Shows which venues and dayparts have the highest social amplification. Queries observation_stream for social attention data and aggregates by the requested dimension (venue, daypart, or screen), computing average SAF, average cascade depth, average viral attention score, and event count. WHEN TO USE: - Understanding which venues generate the most social amplification - Comparing daypart effectiveness for social contagion - Identifying top-performing screens for attention cascading - Planning campaigns that leverage social proof RETURNS: - data: Array of aggregated rows, sorted by avg SAF descending - group_key: the dimension value (venue type, daypart, or screen ID) - avg_saf: average social amplification factor - avg_cascade_depth: average attention cascade depth - avg_viral_attention_score: average viral attention score - event_count: number of social attention events in the group - metadata: { group_by, time_range, total_events } - suggested_next_queries: Follow-up queries EXAMPLE: User: "Which venues have the highest social amplification this week?" get_social_contagion_summary({ group_by: "venue", time_range: { start: "2026-03-09", end: "2026-03-16" } }) User: "Show me social attention by daypart over the last 7 days" get_social_contagion_summary({ group_by: "daypart" })
  - after: Aggregate social attention metrics across screens and time periods. Shows which venues and dayparts have the highest social amplification. Summarizes measured social attention events within your authorized scope by the requested dimension (venue, daypart, or screen), computing average SAF, average cascade depth, average viral attention score, and event count. WHEN TO USE: - Understanding which venues generate the most social amplification - Comparing daypart effectiveness for social contagion - Identifying top-performing screens for attention cascading - Planning campaigns that leverage social proof RETURNS: - data: Array of aggregated rows, sorted by avg SAF descending - group_key: the dimension value (venue type, daypart, or screen ID) - avg_saf: average social amplification factor - avg_cascade_depth: average attention cascade depth - avg_viral_attention_score: average viral attention score - event_count: number of social attention events in the group - payload: null - metadata: { group_by, group_alias, time_range, total_events } EXAMPLE: User: "Which venues have the highest social amplification this week?" get_social_contagion_summary({ group_by: "venue", time_range: { start: "2026-03-09", end: "2026-03-16" } }) User: "Show me social attention by daypart over the last 7 days" get_social_contagion_summary({ group_by: "daypart" })
- 2026-10-20 `get_social_attention` changed (description)
  - before: Query social attention contagion metrics from the observation stream. Returns windows where attention propagated between viewers (social amplification factor > 1). Social attention data is produced by the AttentionGraphBuilder running on CTV edge devices, which models viewer attention as a directed graph and detects when one viewer looking at the screen triggers nearby viewers to also look (attention contagion / social amplification). WHEN TO USE: - Finding moments where social proof drove collective engagement - Identifying which venues or dayparts exhibit highest attention contagion - Understanding cascading attention patterns (cascade depth) - Correlating social amplification with ad effectiveness (VAS) RETURNS: - data: Array of observation_stream rows with socialAttention payload - payload.socialAttention.socialAmplificationFactor (SAF): ratio of actual-to-expected group attention (>1 = contagion detected) - payload.socialAttention.cascadeDepth: max depth of attention propagation chain - payload.socialAttention.viralAttentionScore: composite metric combining SAF and cascade depth - payload.socialAttention.contagionWindowMs: time window over which cascade occurred - payload.socialAttention.triggerViewerIndex: which viewer initiated the cascade - metadata: { result_count, time_range, min_saf_filter } - suggested_next_queries: Follow-up queries EXAMPLE: User: "Show me moments where attention went viral in bar venues" get_social_attention({ min_saf: 2.0, venue_type: "bar" }) User: "Find the strongest social amplification events this week" get_social_attention({ min_saf: 3.0, time_range: { start: "2026-03-09T00:00:00Z", end: "2026-03-16T00:00:00Z" } })
  - after: Query measured social attention events within your authorized screen and venue scope. Filter by minimum social amplification factor and time range; results are sorted by social amplification factor descending. WHEN TO USE: - Finding moments where social proof drove collective engagement - Identifying which venues or dayparts exhibit highest attention contagion - Understanding cascading attention patterns (cascade depth) - Correlating social amplification with ad effectiveness (VAS) RETURNS: - data: Array of events with flat fields - observation_id, observed_at, screen_mongo_id, venue_type: event context - social_amplification_factor (SAF): ratio of actual-to-expected group attention - cascade_depth: maximum depth of the attention propagation chain - viral_attention_score: composite social attention score - primary_attention_anchor_face_index: the event's attention anchor index, or null - amplification_evidence: description of the measured attention pattern - payload: null - metadata: { result_count, time_range, min_saf_filter } EXAMPLE: User: "Show me moments where attention went viral in bar venues" get_social_attention({ min_saf: 2.0, venue_type: "bar" }) User: "Find the strongest social amplification events this week" get_social_attention({ min_saf: 3.0, time_range: { start: "2026-03-09T00:00:00Z", end: "2026-03-16T00:00:00Z" } })
- 2026-10-20 `export_dataset` changed (inputSchema)
- 2026-10-16 `purchase_credits` changed (inputSchema)
- 2026-10-15 `setup_billing` changed (description)
  - before: Set up pay-per-use billing with a Stripe payment method. Required after exceeding free tier limits. Pass a Stripe payment method token (pm_xxx) obtained from Stripe.js or Stripe Elements.
  - after: Set up pay-per-use billing with a Stripe payment method. A stored card grants no API credit; fund usage with credits or explicitly authorized API postpay allowance. Pass a Stripe payment method token (pm_xxx) obtained from Stripe.js or Stripe Elements.
- 2026-10-15 `review_feedback_creative` added
  - Approve or reject your generated creative using native brand review. Uses your authenticated native buyer and existing funded placement.
- 2026-10-15 `generate_brand_creative` added
  - 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.
- 2026-10-15 `stop_creative_experiment` added
  - Stop the native experiment at the expected policy version. Uses your authenticated native buyer and existing funded placement.
- 2026-10-15 `get_creative_rewards` added
  - 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.
- 2026-10-15 `update_creative_policy` added
  - Replace native creative weights at the expected policy version. Uses your authenticated native buyer and existing funded placement.

Full history: https://api.protogrid.dev/v1/servers/io.github.snehdhruv%2Ftrillboards-dooh/changes

## Remotes

_none_

## Packages

_none_

## Tools (0)

_none observed_
