Skip to main content
Glama

AI Agent Analytics

Server Details

Seller-side analytics for AI-agent discovery, settled revenue, delivery, and repeat use.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.7/5.0

Scored across 11 tools

Disambiguation5/5

Every tool targets a distinct analytics slice—agents, discovery, revenue, pulse, report, evidence, portfolio, health, validation, products, and public readiness. The explicit 'do not use' guidance further removes any ambiguity between adjacent tools like get_daily_pulse, get_report, and get_evidence.

Naming Consistency5/5

All tool names follow a consistent verb-first snake_case pattern: get_* for data access, plus list_products, scan_agent_commerce_readiness, and validate_installation. There are no mixed casing styles or vague generic verbs.

Tool Count5/5

11 tools is well-scoped for an analytics server. Each tool covers a meaningful capability without redundancy or bloat, fitting comfortably in the ideal 3–15 tool range.

Completeness5/5

The surface covers the analytics domain comprehensively: product lookup, daily and multi-day metrics, metric rationale, discovery, repeat relationships, settled revenue, portfolio comparison, installation validation, connection health, and external readiness. There are no obvious dead ends or missing lifecycle steps for the stated purpose.

Available Tools

11 tools
get_agentsGet observed agent relationshipsA
Read-onlyIdempotent
Inspect

Return the most recently observed countable-external pseudonymous agent relationships for product_id, ordered newest first by last_seen_at. Use this for repeat and relationship history; do not use it for acquisition sources, use get_discovery, or for settled commerce, use get_revenue. limit defaults to 100, maxes at 200, and only truncates returned rows, not evidence thresholds or identity rules. Requires analytics:read; unknown traffic is excluded, raw prompts/IPs/credentials are never returned, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum relationship rows to return, 1 through 200 inclusive. Defaults to 100 when omitted.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentsYes
schemaYesDelegated response schema identifier.
productYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description adds meaningful behavioral context: the limit semantics (truncates rows but not thresholds/identity rules), the analytics:read permission requirement, exclusion of unknown traffic, a hard guarantee that prompts/IPs/credentials are never returned, and the 300-calls/60s shared MCP rate limit with HTTP 429 and Retry-After. These are not inferable from annotations and materially affect safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, each carrying a distinct responsibility: function, usage guidance, and operational constraints. The most important information (what it returns and when to use it) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations carrying the safety profile, the description covers the operational envelope (auth, rate limit, data exclusions, limit semantics) and explicit routing. Nothing needed to call this correctly at runtime is missing from the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds nuance: limit 'only truncates returned rows, not evidence thresholds or identity rules' and that defaults/max are 100/200. This extra context clarifies that limit is a presentation-level cap, not a data inclusion filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the exact operation: returning recently observed countable-external pseudonymous agent relationships for product_id, ordered by last_seen_at. It explicitly distinguishes itself from get_discovery and get_revenue while the title and name reinforce the resource. This gives an agent a precise mental model with no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Use this for repeat and relationship history' and then gives two explicit negative cases with named alternatives: 'do not use it for acquisition sources, use get_discovery, or for settled commerce, use get_revenue.' This leaves no room for misrouting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connection_healthGet instrumentation connection healthA
Read-onlyIdempotent
Inspect

Return telemetry connection health for product_id, including credential state, accepted-event freshness, funnel coverage, setup evidence, and aggregate rejection reasons. Use this for instrumentation troubleshooting; do not use it for the narrow post-setup verdict, use validate_installation. days defaults to 30 and includes the current partial day plus the preceding 29 days; an unobserved business stage remains unknown, not broken instrumentation. Requires analytics:read; rejected payload contents and credentials are never returned, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDiagnostic lookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
healthYes
schemaYesDelegated response schema identifier.
productYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the read-only/idempotent annotations by disclosing the authentication requirement (analytics:read), privacy guarantees (rejected payload contents and credentials are never returned), rate limits (300 calls per 60 seconds per caller, 429 with Retry-After), and the semantic edge case (unobserved business stage remains unknown, not broken instrumentation). None of this contradicts the annotations and all of it is actionable for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences pack the core output, usage routing, defaults, edge-case semantics, auth, privacy, and rate limiting with zero filler. The most decision-relevant information (what it returns and when to use it) is front-loaded before transition details and limits.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only diagnostic tool with a moderate schema and an output schema present, this description covers everything an agent needs: what is returned, when to use it, parameter semantics, auth, privacy, and throttling. The sibling differentiation is explicit, and no important behavioral aspect appears omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining that days includes the current partial day plus the preceding 29 days, and links that to the 'unknown vs broken' interpretation. It does not repeat the product_id pattern or the list_products reference, which is appropriate since the schema already carries those details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ("Return telemetry connection health for product_id") and enumerates the exact output dimensions (credential state, accepted-event freshness, funnel coverage, setup evidence, rejection reasons). It further distinguishes itself from validate_installation, making its scope unmistakable. An agent can differentiate this from all sibling tools without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ("Use this for instrumentation troubleshooting") and when not to ("do not use it for the narrow post-setup verdict, use validate_installation"), naming the alternative tool. This is exactly the kind of routing guidance that prevents misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_daily_pulseGet Daily PulseA
Read-onlyIdempotent
Inspect

Return the six core Daily Pulse metrics for product_id on one product-local day. Use this for headline daily status; use get_evidence to explain why metrics counted, get_report for multi-day analysis, or get_portfolio_pulse for organization-wide comparison. day is optional: omit it for the current product-local day, which may return a live partial pulse until finalized data is ready. Requires analytics:read; product_id is tenant-checked, missing evidence is never promoted, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNoProduct-local calendar day as YYYY-MM-DD. Omit to read the current product-local day, with live-pulse fallback when the finalized daily pulse is not ready.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pulseYes
schemaYesDelegated response schema identifier.
productYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds meaningful behavioral context beyond them: the 'live partial pulse' fallback, 'missing evidence is never promoted', tenant-checked product_id, required analytics:read permission, and the shared MCP rate limit of 300 calls per 60 seconds with HTTP 429 and Retry-After. This substantially exceeds the annotation baseline and contains no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and every sentence earns its place: the first defines the tool's result, the second handles sibling routing, the third covers the optional parameter and freshness semantics, and the fourth bundles auth, constraints, and rate limits. It is front-loaded with the core purpose before caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the headline use case, alternatives, optional-day behavior, data-finality nuance, permissions, tenant scoping, and rate-limit failure mode. Since an output schema is present, return-value documentation is not required, and nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The schema already explains the product_id format and the day omission behavior with live-pulse fallback; the description only adds the phrase 'tenant-checked' as extra validation context. That is helpful but not enough to push above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return the six core Daily Pulse metrics for product_id on one product-local day.' It clearly scopes the tool to a single product-local day and distinguishes it from siblings by naming get_evidence, get_report, and get_portfolio_pulse, so an agent can identify its role unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('for headline daily status') and names the alternatives with their distinct purposes: get_evidence for metric explanations, get_report for multi-day analysis, and get_portfolio_pulse for organization-wide comparison. This gives direct selection guidance without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_discoveryGet agent discovery evidenceA
Read-onlyIdempotent
Inspect

Return evidence-backed discovery sources for product_id over a trailing days window. Use this to answer how the product was found; do not use it for repeat relationships, use get_agents, or for settled commerce, use get_revenue. days defaults to 30 and includes the current partial day plus the preceding 29 days; changing days changes only the window, never evidence classification. Requires analytics:read; product_id is tenant-checked, traffic classes remain separate, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesDelegated response schema identifier.
productYes
discoveryYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses authentication requirements, tenant checking, isolation of traffic classes, and a concrete rate limit with the HTTP 429 and Retry-After behavior. It also explains the precise window semantics including the current partial day. This is rich behavioral context with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, routing, window semantics, and operational constraints. It front-loads the core function and keeps the exclusions immediately after, so an agent gets the decision-relevant information first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, no return-format explanation is needed. The description covers purpose, alternative routing, parameter semantics, authorization, tenant scoping, and rate limiting — nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuinely useful semantics beyond the schema: days includes the current partial day plus the preceding 29 days, and changing days affects only the window, not evidence classification. That extra nuance earns a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Return evidence-backed discovery sources for product_id over a trailing days window.' It clearly distinguishes itself from related tools by naming what it is not for (repeat relationships via get_agents, settled commerce via get_revenue), and 'discovery sources' differentiates it from the generic get_evidence sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when-to-use guidance ('answer how the product was found') and when-not-to-use guidance with named alternatives. This is exactly the routing information an agent needs to select between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_evidenceInspect metric evidenceA
Read-onlyIdempotent
Inspect

Return privacy-minimized evidence explaining why the six core metrics counted for product_id on one product-local day. Use this to audit metric rationale; do not use it for headline daily status, use get_daily_pulse, or for a multi-day window, use get_report. day is optional: omit it for the current product-local day, and partially observed days are labeled as partial. Requires analytics:read; unresolved evidence stays unresolved, raw prompts/private payloads/credentials/full paid results are never returned, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNoProduct-local calendar day as YYYY-MM-DD. Omit to inspect the current product-local day.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesDelegated response schema identifier.
productYes
evidenceYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds valuable context beyond that: requires analytics:read permission, states unresolved evidence stays unresolved, notes that raw prompts/private payloads/credentials/full paid results are never returned, and discloses the rate limit (300 calls/60s) with HTTP 429 and Retry-After behavior. It also mentions partially observed days are labeled as partial. This goes well beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph, but every clause carries useful information: purpose, alternatives, optional day behavior, auth requirement, data privacy guarantees, partial-day labeling, and rate limit. It is front-loaded with the core purpose and then proceeds logically to constraints. It could be slightly more scannable with bullets or shorter sentences, but there is no fluff or repetition, so it earns a strong 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's privacy-sensitive nature and the presence of an output schema (so return format need not be explained), the description covers everything an agent needs: clear scope (single product, single day), precise usage rules with alternatives, authentication requirement, behavioral guarantees about what is never returned, rate limiting, and handling of partial days. Nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (day and product_id) with formats and constraints. The description re-states that 'day is optional' and omitting it gets the current day, but this duplicates the schema's 'Omit to inspect the current product-local day.' No new semantic detail is added beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Return' with a clear resource ('privacy-minimized evidence') and scope ('why the six core metrics counted for product_id on one product-local day'). It also explicitly differentiates from siblings by naming get_daily_pulse and get_report for alternative use cases, making it impossible to confuse with other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage guidance: 'Use this to audit metric rationale' and directly states what not to use it for, naming two alternatives with conditions ('headline daily status' → get_daily_pulse, 'multi-day window' → get_report). This is exactly the when/when-not/alternatives pattern that earns a top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_pulseGet Portfolio PulseA
Read-onlyIdempotent
Inspect

Return cross-product Portfolio Pulse for the bearer token's organization. Use this for organization-wide comparison; do not use it for one product/day, use get_daily_pulse, or for one product over a date window, use get_report. Takes no parameters because organization scope comes from the token. Requires portfolio:read; the same actor may count in more than one product, invalid or expired authority fails closed, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesDelegated portfolio response schema identifier.
portfolioYes
organizationYes

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds valuable context beyond those: the required scope 'portfolio:read', the non-exclusive counting of actors across products, fail-closed behavior on invalid/expired authority, and the shared rate limit (300 calls/60s) with HTTP 429 and Retry-After. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each densely informative: purpose and scope, usage exclusions with alternatives, and behavioral/rate-limit caveats. Nothing is redundant; every sentence earns its place, and the most important differentiator (cross-product scope) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema is present (so return format is documented elsewhere), the description covers all operational essentials: scope derivation, when to use it vs. siblings, required permission, actor-counting behavior, fail-closed semantics, and rate limiting. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema simply states 'This tool takes no parameters.' The description enriches this by explaining why there are none: 'organization scope comes from the token.' This adds meaning beyond the schema and removes any doubt about intended invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return'), a precise resource ('cross-product Portfolio Pulse'), and the scope ('for the bearer token's organization'). It explicitly distinguishes from siblings by naming get_daily_pulse and get_report for narrower queries, making the tool's role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('Use this for organization-wide comparison') and clear exclusions ('do not use it for one product/day, use get_daily_pulse, or for one product over a date window, use get_report'), naming the exact alternative tools. This leaves no ambiguity about selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reportGet bounded product reportA
Read-onlyIdempotent
Inspect

Return an evidence-backed report for product_id over the required half-open UTC window [start, end). Use this for bounded multi-day analysis; do not use it for one day, use get_daily_pulse, for metric rationale, use get_evidence, or for settlement-focused analysis, use get_revenue. start and end are required UTC YYYY-MM-DD dates: start is inclusive, end is exclusive, and the span cannot exceed 31 days. Requires analytics:read; insufficient-history windows return an explicit unavailable blocker rather than invented data, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesRequired UTC calendar end date as YYYY-MM-DD, exclusive. Must be after start and no more than 31 UTC days later.
startYesRequired UTC calendar start date as YYYY-MM-DD, inclusive.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reportYes
schemaYesDelegated response schema identifier.
productYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, and the description goes beyond them by disclosing authentication needs ('Requires analytics:read'), data integrity behavior ('insufficient-history windows return an explicit unavailable blocker rather than invented data'), and rate limiting ('shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After'). These are material operational behaviors not inferable from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. It front-loads the action and resource, then gives routing guidance, then packs constraints and caveats into the final sentence. Every clause contributes operational information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool does, when to use it, how to avoid misrouting to siblings, required parameters and their temporal semantics, authorization, availability behavior, and rate limits. Given the output schema exists and the tool's complexity, nothing essential for invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents start as inclusive, end as exclusive, and the 31-day span limit. The description adds a useful conceptual frame with 'half-open UTC window' and restates the span limit, but does not materially add meaning beyond the schema's parameter-level details. The product_id guidance in the schema is actually richer than in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Return an evidence-backed report for product_id over the required half-open UTC window [start, end).' It also explicitly differentiates this tool from siblings by naming what it is not for, such as get_daily_pulse, get_evidence, and get_revenue, so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use guidance: 'Use this for bounded multi-day analysis; do not use it for one day, use get_daily_pulse, for metric rationale, use get_evidence, or for settlement-focused analysis, use get_revenue.' This clearly routes the agent to the correct alternative based on analysis type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_revenueGet agent revenue evidenceA
Read-onlyIdempotent
Inspect

Return settled-revenue intelligence for product_id over a trailing days window. Use this for actual settled commerce; do not use it for a headline daily snapshot, use get_daily_pulse, or for a complete bounded-window funnel, use get_report. days defaults to 30 and includes the current partial UTC day plus the preceding 29 days. Requires analytics:read; challenges and attempts are not revenue, settlement remains distinct from delivery, unlike money is never combined, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted.
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesDelegated response schema identifier.
productYes
revenueYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses meaningful behavioral details: the auth requirement, the 300-calls-per-60-seconds rate limit with HTTP 429 and Retry-After behavior, and the semantic distinction that challenges/attempts are not revenue and settlement differs from delivery. These details are not available in the schema or annotations and materially affect invocation expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, exclusivity guidance, default window behavior, auth, business semantics, and rate limits. It front-loads the primary action and immediately routes the agent away from incorrect sibling usage. No filler or redundant restatements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover safety, the description fills all remaining contextual gaps: when to use, when not to use, defaults, auth, rate limiting, and revenue-specific semantics. An agent has everything needed to select and invoke this tool correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds extra semantic value by clarifying that the trailing days window includes the current partial UTC day plus the preceding 29 days, and by reinforcing that product_id must be the exact ID from list_products. This goes slightly beyond the schema's default-value note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Return settled-revenue intelligence for product_id over a trailing days window." It clearly distinguishes this tool from siblings by naming get_daily_pulse and get_report as alternatives for different use cases. No ambiguity remains about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: use this for actual settled commerce, not for headline daily snapshots (get_daily_pulse) or complete bounded-window funnels (get_report). It also states the required analytics:read permission, making it obvious when this tool is appropriate versus when a sibling should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_productsList analytics productsA
Read-onlyIdempotent
Inspect

List active products in the bearer token's organization and return the IDs needed by product-scoped tools. Use this when you need a product_id; do not use it for metrics, use get_portfolio_pulse instead. Takes no parameters because organization scope comes from the token. Requires products:read or products:create; invalid or expired authority fails closed, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesResponse schema identifier.
productsYesActive products visible to this authorization.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide safety hints (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds valuable behavioral context beyond them: auth requirements ('Requires products:read or products:create'), failure behavior ('invalid or expired authority fails closed'), and rate limits ('300 calls per 60 seconds per caller before HTTP 429 with Retry-After'). No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose, usage guidance, then behavioral constraints. The content is front-loaded with core purpose, with no filler. The third sentence is dense but well-structured, using semicolons to pack auth and rate-limit information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a zero-parameter list tool. It states what the tool returns (product IDs), when to use it, auth prerequisites, failure behavior, and rate limits. An output schema exists to document the return shape, so the description needs no further detail. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parametersainer schema only says 'This tool takes no parameters.' The description adds meaning by explaining why: 'Takes no parameters because organization scope comes from the token.' This helps an agent understand the token-driven scope without needing to pass arguments, exceeding the schema's minimal coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List active products in the bearer token's organization' and clarifies the output's purpose ('return the IDs needed by product-scoped tools'). It also distinguishes itself from a sibling by explicitly saying 'do not use it for metrics, use get_portfolio_pulse instead', so an agent can choose correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives direct usage guidance: 'Use this when you need a product_id; do not use it for metrics, use get_portfolio_pulse instead.' This clearly states when to use the tool and names the alternative, leaving no ambiguity about call selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_agent_commerce_readinessScan public agent-commerce readinessA
Read-onlyIdempotent
Inspect

Inspect a fixed set of public machine-facing surfaces at the HTTPS origin derived from url. Use this before recommending or integrating a public agent-facing product; do not use it for an authorized customer's instrumentation state, use get_connection_health, and never treat the result as a security score. url path/query/fragment are ignored; redirects are not followed, credentials are never sent, direct/private-style or non-public DNS targets are rejected, and response bodies are bounded. No authorization is required; DNS rebinding cannot be proven impossible, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesAny public HTTPS URL on the product host. Only its scheme and host are used; path, query, and fragment are ignored. Custom ports, embedded credentials, IP literals, localhost/private-style hostnames, and non-public A/AAAA answers are rejected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsYesEvidence-based follow-up gaps; absence is not proof a capability does not exist.
checksYesResults for the fixed public surfaces; no user-supplied paths are fetched.
schemaYesReadiness-scan schema identifier.
targetYes
summaryYes
integrityYesScanner safety properties and explicit limitations.
observed_atYesUTC scan timestamp.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses concrete behavioral constraints: path/query/fragment ignored, redirects not followed, credentials never sent, private-style DNS rejected, response bodies bounded, no authorization required, DNS rebinding caveat, and a 300-calls/60-second rate limit with 429/Retry-After behavior. This gives the agent a precise operational model and no annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries a distinct operational fact. It front-loads the purpose, then usage boundaries, then technical constraints and rate limits, with no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a one-parameter tool with a full input schema and an output schema, the description covers the remaining essential context: when to use, what is ignored/rejected, network behavior, authentication, security caveats, and rate limits. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% because the url parameter is fully documented in the schema. The description adds extra behavioral semantics not in the schema, such as redirects not followed and response bodies bounded, which helps the agent understand the effective meaning of the URL parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Inspect a fixed set of public machine-facing surfaces at the HTTPS origin derived from url.' It clearly names the intended context, public agent-commerce readiness scanning, and explicitly differentiates from get_connection_health, so an agent can distinguish it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use rule ('Use this before recommending or integrating a public agent-facing product'), a when-not-to-use rule, and names the alternative ('do not use it for an authorized customer's instrumentation state, use get_connection_health'). It also warns against misusing the result as a security score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_installationValidate an Agent Analytics installationA
Read-onlyIdempotent
Inspect

Verify that product_id has an active ingestion credential, an accepted customer_test setup event, and an accepted event visible to Agent Analytics. Use this immediately after setup; do not use it for broader diagnostics or history, use get_connection_health. product_id is the only parameter and validation always uses a fixed 30-day health window. Requires analytics:read; this proves setup plumbing only, creates no production activity or payment, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesExact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaYesDelegated response schema identifier.
productYes
validationYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context beyond these: the required permission (analytics:read), that it creates no production activity or payment, the fixed 30-day health window, and the shared MCP rate limit (300 calls/60s) with HTTP 429 and Retry-After. None of this contradicts the annotations, and it meaningfully aids the agent in safe and correct invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: the primary purpose, the usage constraint with alternative, parameter and window context, and critical operational limits. Front-loaded with the core verification objective, no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which covers return values) and rich annotations, the description covers all required invocation context: purpose, scope, exclusions, permissions, rate limits, and fixed operational window. An agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already details product_id with pattern and explicit guidance (exact ID from list_products, not a name/URL/org ID). The description mentions product_id is the only parameter and the fixed 30-day window, but these are operational notes, not new parameter semantics. Baseline of 3 is appropriate given the schema already carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Verify') and the resource (installation setup state of product_id), and explicitly distinguishes itself from get_connection_health by noting it is not for broader diagnostics or history. This makes the purpose unambiguous and clearly differentiated from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use ('immediately after setup') and when-not-to-use ('do not use it for broader diagnostics or history, use get_connection_health'). Naming the exact alternative and the condition for choosing it gives agents clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • Changedget_agents8 fields changed
      • addedOutput schema / properties / agents / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / agents / description
        Removed value: -"Privacy-safe pseudonymous agent relationship and repeat-use evidence."
      • addedOutput schema / properties / agents / properties
        Added value: +{
        +  "generated_at": {
        +    "description": "UTC generation timestamp.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "identity_model": {
        +        "type": "string"
        +      },
        +      "invasive_fingerprinting": {
        +        "type": "boolean"
        +      },
        +      "note": {
        +        "type": "string"
        +      },
        +      "summary_scope": {
        +        "type": "string"
        +      },
        +      "unknown_external_excluded": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "identity_model",
        +      "unknown_external_excluded",
        +      "invasive_fingerprinting",
        +      "summary_scope",
        +      "note"
        +    ],
        +    "type": "object"
        +  },
        +  "property_id": {
        +    "description": "Product/property ID.",
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "relationships": {
        +    "description": "Most recently observed countable-external agent relationships.",
        +    "items": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "actor_id": {
        +          "description": "Pseudonymous stable actor identifier.",
        +          "type": "string"
        +        },
        +        "confidence": {
        +          "description": "Evidence confidence.",
        +          "enum": [
        +            "confirmed",
        +            "probable"
        +          ],
        +          "type": "string"
        +        },
        +        "delivered_receipts": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "display_id": {
        +          "description": "Short privacy-safe display identifier.",
        +          "type": "string"
        +        },
        +        "first_seen_at": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "invocation_count": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "last_seen_at": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "relationship_state": {
        +          "description": "Observed relationship state, such as engaged_agent or delivered_customer.",
        +          "type": "string"
        +        },
        +        "repeat": {
        +          "type": "boolean"
        +        },
        +        "settled_receipts": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "traffic_class": {
        +          "description": "Evidence classification for this observed actor.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "actor_id",
        +        "display_id",
        +        "traffic_class",
        +        "confidence",
        +        "first_seen_at",
        +        "last_seen_at",
        +        "invocation_count",
        +        "settled_receipts",
        +        "delivered_receipts",
        +        "repeat",
        +        "relationship_state"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "result_limit": {
        +    "description": "Applied relationship-row limit.",
        +    "maximum": 200,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "returned_relationships": {
        +    "description": "Rows returned after the requested limit.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "schema_version": {
        +    "description": "Agent-relationships schema version.",
        +    "type": "string"
        +  },
        +  "summary": {
        +    "additionalProperties": {},
        +    "description": "Summary over returned relationships, not all historical actors.",
        +    "properties": {
        +      "confirmed_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "delivered_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "observed_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "paying_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "probable_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "repeat_relationships": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "observed_relationships",
        +      "confirmed_relationships",
        +      "probable_relationships",
        +      "repeat_relationships",
        +      "paying_relationships",
        +      "delivered_relationships"
        +    ],
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / agents / required
        Added value: +[
        +  "schema_version",
        +  "property_id",
        +  "generated_at",
        +  "returned_relationships",
        +  "result_limit",
        +  "summary",
        +  "relationships",
        +  "integrity"
        +]
      • addedOutput schema / properties / agents / type
        Added value: +"object"
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_connection_health8 fields changed
      • addedOutput schema / properties / health / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / health / description
        Removed value: -"Instrumentation connection-health diagnostics and evidence coverage."
      • addedOutput schema / properties / health / properties
        Added value: +{
        +  "credentials": {
        +    "additionalProperties": {},
        +    "description": "Credential counts only; secret values are never returned.",
        +    "properties": {
        +      "active": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "latest_created_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "revoked": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "total": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "write_credential_available": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "total",
        +      "active",
        +      "revoked",
        +      "latest_created_at",
        +      "write_credential_available"
        +    ],
        +    "type": "object"
        +  },
        +  "event_schema": {
        +    "description": "Accepted Agent Analytics ingestion event schema version.",
        +    "type": "string"
        +  },
        +  "freshness": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "last_accepted_event_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "seconds_since_last_accepted_event": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "last_accepted_event_at",
        +      "seconds_since_last_accepted_event"
        +    ],
        +    "type": "object"
        +  },
        +  "generated_at": {
        +    "description": "UTC generation timestamp.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "absence_is_not_proof_of_missing_instrumentation": {
        +        "type": "boolean"
        +      },
        +      "coverage_model": {
        +        "type": "string"
        +      },
        +      "note": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "coverage_model",
        +      "absence_is_not_proof_of_missing_instrumentation",
        +      "note"
        +    ],
        +    "type": "object"
        +  },
        +  "observed_traffic": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "countable_external_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "synthetic_or_internal_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unknown_external_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "countable_external_events",
        +      "unknown_external_events",
        +      "synthetic_or_internal_events"
        +    ],
        +    "type": "object"
        +  },
        +  "property_id": {
        +    "description": "Product/property ID.",
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "rejected_event_telemetry": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "available": {
        +        "type": "boolean"
        +      },
        +      "last_rejected_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "reasons": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "endpoint": {
        +              "type": "string"
        +            },
        +            "last_rejected_at": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "reason": {
        +              "type": "string"
        +            },
        +            "rejected_count": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            }
        +          },
        +          "required": [
        +            "endpoint",
        +            "reason",
        +            "rejected_count",
        +            "last_rejected_at"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "rejected_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "available",
        +      "rejected_events",
        +      "last_rejected_at",
        +      "reasons"
        +    ],
        +    "type": "object"
        +  },
        +  "schema_version": {
        +    "description": "Connection-health schema version.",
        +    "type": "string"
        +  },
        +  "stage_coverage": {
        +    "additionalProperties": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "event_count": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "observed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "observed",
        +        "event_count"
        +      ],
        +      "type": "object"
        +    },
        +    "description": "Per-funnel-stage observed event coverage.",
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "state": {
        +    "description": "credential_missing, awaiting_first_event, or receiving.",
        +    "type": "string"
        +  },
        +  "unobserved_stages": {
        +    "description": "Stages with zero observed events; absence is not proof of broken instrumentation.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "verification": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "customer_test_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "setup_event_observed": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "customer_test_events",
        +      "setup_event_observed"
        +    ],
        +    "type": "object"
        +  },
        +  "window": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "accepted_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "lookback_days": {
        +        "maximum": 90,
        +        "minimum": 1,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "lookback_days",
        +      "accepted_events"
        +    ],
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / health / required
        Added value: +[
        +  "schema_version",
        +  "property_id",
        +  "generated_at",
        +  "state",
        +  "event_schema",
        +  "window",
        +  "freshness",
        +  "credentials",
        +  "verification",
        +  "observed_traffic",
        +  "stage_coverage",
        +  "unobserved_stages",
        +  "rejected_event_telemetry",
        +  "integrity"
        +]
      • addedOutput schema / properties / health / type
        Added value: +"object"
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_daily_pulse8 fields changed
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • addedOutput schema / properties / pulse / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / pulse / description
        Removed value: -"Daily Pulse payload containing the six core metrics plus evidence-integrity state."
      • addedOutput schema / properties / pulse / properties
        Added value: +{
        +  "biggest_opportunity": {
        +    "description": "Largest observed opportunity or next useful observation.",
        +    "type": "string"
        +  },
        +  "confidence": {
        +    "description": "Evidence confidence label.",
        +    "type": "string"
        +  },
        +  "day": {
        +    "description": "Product-local YYYY-MM-DD day represented by this pulse.",
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "generated_at": {
        +    "description": "UTC timestamp when the pulse was generated.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "description": "Evidence-quality and exclusion details.",
        +    "properties": {
        +      "note": {
        +        "type": "string"
        +      },
        +      "source_completeness_proven": {
        +        "type": "boolean"
        +      },
        +      "strict_external_settlements": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "synthetic_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unclassified_settled_commerce": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unknown_external_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "live_window_end": {
        +    "description": "End of the partial live window when state is live_partial.",
        +    "type": "string"
        +  },
        +  "live_window_start": {
        +    "description": "Start of the partial live window when state is live_partial.",
        +    "type": "string"
        +  },
        +  "metrics": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "agent_revenue": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +            "propertyNames": {
        +              "type": "string"
        +            },
        +            "type": "object"
        +          },
        +          "conversion": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "converted_agents": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "intent_agents": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "rate": {
        +                "anyOf": [
        +                  {
        +                    "maximum": 1,
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              }
        +            },
        +            "required": [
        +              "converted_agents",
        +              "intent_agents",
        +              "rate"
        +            ],
        +            "type": "object"
        +          },
        +          "paid_intent": {
        +            "description": "Countable-external actors with paid-intent evidence.",
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "real_agents": {
        +            "description": "Countable-external pseudonymous actors.",
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "repeat_agents": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "successful_delivery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "real_agents",
        +          "paid_intent",
        +          "conversion",
        +          "agent_revenue",
        +          "successful_delivery",
        +          "repeat_agents"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "observed_funnel": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "description": "Observed event counts by canonical commerce-funnel stage.",
        +        "properties": {
        +          "discovery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_accepted": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_rejected": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "evaluation": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "free_or_preflight_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_deliveries": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_operation_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_attempts": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_challenges": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "settlements": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "discovery",
        +          "evaluation",
        +          "free_or_preflight_invocations",
        +          "paid_operation_invocations",
        +          "eligibility_accepted",
        +          "eligibility_rejected",
        +          "payment_challenges",
        +          "payment_attempts",
        +          "settlements",
        +          "paid_deliveries"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "schema_version": {
        +    "description": "Daily Pulse schema version.",
        +    "type": "string"
        +  },
        +  "state": {
        +    "description": "Pulse state such as ready, live_partial, or unavailable.",
        +    "type": "string"
        +  },
        +  "strict_external_funnel": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "description": "Observed event counts by canonical commerce-funnel stage.",
        +        "properties": {
        +          "discovery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_accepted": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_rejected": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "evaluation": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "free_or_preflight_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_deliveries": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_operation_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_attempts": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_challenges": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "settlements": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "discovery",
        +          "evaluation",
        +          "free_or_preflight_invocations",
        +          "paid_operation_invocations",
        +          "eligibility_accepted",
        +          "eligibility_rejected",
        +          "payment_challenges",
        +          "payment_attempts",
        +          "settlements",
        +          "paid_deliveries"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "time_zone": {
        +    "description": "IANA time zone used for the product-local day.",
        +    "type": "string"
        +  },
        +  "what_happened": {
        +    "description": "Evidence-grounded activity summary.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / pulse / required
        Added value: +[
        +  "schema_version",
        +  "day",
        +  "generated_at",
        +  "state",
        +  "time_zone"
        +]
      • addedOutput schema / properties / pulse / type
        Added value: +"object"
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_discovery8 fields changed
      • addedOutput schema / properties / discovery / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / discovery / description
        Removed value: -"Discovery intelligence grouped by observed source and evidence class for the requested lookback."
      • addedOutput schema / properties / discovery / properties
        Added value: +{
        +  "generated_at": {
        +    "description": "UTC end of the observed discovery window.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "historical_source_backfill": {
        +        "type": "boolean"
        +      },
        +      "note": {
        +        "type": "string"
        +      },
        +      "registry_directory_infrastructure_not_real_agents": {
        +        "type": "boolean"
        +      },
        +      "source_attribution_model": {
        +        "type": "string"
        +      },
        +      "unknown_external_not_promoted": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "source_attribution_model",
        +      "registry_directory_infrastructure_not_real_agents",
        +      "unknown_external_not_promoted",
        +      "historical_source_backfill",
        +      "note"
        +    ],
        +    "type": "object"
        +  },
        +  "property_id": {
        +    "description": "Product/property ID.",
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "schema_version": {
        +    "description": "Discovery-intelligence schema version.",
        +    "type": "string"
        +  },
        +  "sources": {
        +    "description": "Per-source discovery and linked relationship evidence.",
        +    "items": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "average_confidence": {
        +          "anyOf": [
        +            {
        +              "maximum": 1,
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "discoveries": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "evaluated_agents": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "evaluation_rate": {
        +          "anyOf": [
        +            {
        +              "maximum": 1,
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "identified_agents": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "infrastructure": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "label": {
        +          "description": "Human-readable source label.",
        +          "type": "string"
        +        },
        +        "paying_agents": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "paying_rate": {
        +          "anyOf": [
        +            {
        +              "maximum": 1,
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "qualified_discoveries": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "source": {
        +          "description": "Normalized observed discovery source.",
        +          "type": "string"
        +        },
        +        "source_class": {
        +          "description": "Evidence class such as qualified_external or infrastructure.",
        +          "type": "string"
        +        },
        +        "synthetic_or_internal": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "unresolved_external": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "label",
        +        "source_class",
        +        "discoveries",
        +        "qualified_discoveries",
        +        "unresolved_external",
        +        "infrastructure",
        +        "synthetic_or_internal",
        +        "average_confidence",
        +        "identified_agents",
        +        "evaluated_agents",
        +        "paying_agents",
        +        "evaluation_rate",
        +        "paying_rate"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "summary": {
        +    "additionalProperties": {},
        +    "description": "Discovery totals kept separate by evidence class.",
        +    "properties": {
        +      "countable_evaluations": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "identified_agents": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "infrastructure_discoveries": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "qualified_discoveries": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "source_linked_evaluations": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "synthetic_or_internal_discoveries": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unattributed_countable_evaluations": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unknown_external_evaluations": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unresolved_external_discoveries": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "qualified_discoveries",
        +      "unresolved_external_discoveries",
        +      "infrastructure_discoveries",
        +      "synthetic_or_internal_discoveries",
        +      "identified_agents",
        +      "countable_evaluations",
        +      "source_linked_evaluations",
        +      "unattributed_countable_evaluations",
        +      "unknown_external_evaluations"
        +    ],
        +    "type": "object"
        +  },
        +  "window": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "current_day_partial": {
        +        "description": "True because the current day may still be in progress.",
        +        "type": "boolean"
        +      },
        +      "end": {
        +        "description": "UTC end of the discovery lookback.",
        +        "type": "string"
        +      },
        +      "lookback_days": {
        +        "description": "Requested trailing-day count.",
        +        "maximum": 90,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "start": {
        +        "description": "UTC start of the discovery lookback.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "start",
        +      "end",
        +      "lookback_days",
        +      "current_day_partial"
        +    ],
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / discovery / required
        Added value: +[
        +  "schema_version",
        +  "property_id",
        +  "generated_at",
        +  "window",
        +  "summary",
        +  "sources",
        +  "integrity"
        +]
      • addedOutput schema / properties / discovery / type
        Added value: +"object"
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_evidence8 fields changed
      • addedOutput schema / properties / evidence / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / evidence / description
        Removed value: -"Evidence inspector payload explaining metric inclusion, exclusions, and unresolved evidence."
      • addedOutput schema / properties / evidence / properties
        Added value: +{
        +  "blocker": {
        +    "description": "Explicit reason evidence is unavailable.",
        +    "type": "string"
        +  },
        +  "day": {
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "exclusions": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "registry_directory_events": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "synthetic_or_internal_events": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "unknown_external_events": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "unknown_external_events",
        +          "synthetic_or_internal_events",
        +          "registry_directory_events"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "generated_at": {
        +    "description": "UTC generation timestamp.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "actor_ids_are_pseudonymous": {
        +        "type": "boolean"
        +      },
        +      "full_receipt_ids_exposed": {
        +        "type": "boolean"
        +      },
        +      "note": {
        +        "type": "string"
        +      },
        +      "raw_payloads_exposed": {
        +        "type": "boolean"
        +      },
        +      "unknown_external_promoted": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "raw_payloads_exposed",
        +      "full_receipt_ids_exposed",
        +      "actor_ids_are_pseudonymous",
        +      "unknown_external_promoted"
        +    ],
        +    "type": "object"
        +  },
        +  "metrics": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "agent_revenue": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "description": "Privacy-minimized evidence rows supporting the metric.",
        +                "items": {},
        +                "type": "array"
        +              },
        +              "rule": {
        +                "description": "Deterministic counting rule.",
        +                "type": "string"
        +              },
        +              "value": {
        +                "additionalProperties": {
        +                  "type": "string"
        +                },
        +                "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +                "propertyNames": {
        +                  "type": "string"
        +                },
        +                "type": "object"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          },
        +          "conversion": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "items": {
        +                  "additionalProperties": {},
        +                  "properties": {
        +                    "actor": {
        +                      "description": "Masked pseudonymous actor label.",
        +                      "type": "string"
        +                    },
        +                    "confidence": {
        +                      "enum": [
        +                        "confirmed",
        +                        "probable"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "conversion_seen": {
        +                      "type": "boolean"
        +                    },
        +                    "first_seen_at": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "intent_seen": {
        +                      "type": "boolean"
        +                    },
        +                    "invocation_count": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": 0,
        +                      "type": "integer"
        +                    },
        +                    "last_seen_at": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "actor",
        +                    "confidence",
        +                    "invocation_count",
        +                    "intent_seen",
        +                    "conversion_seen",
        +                    "first_seen_at",
        +                    "last_seen_at"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "rule": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "additionalProperties": {},
        +                "properties": {
        +                  "converted_agents": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "intent_agents": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "rate": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 1,
        +                        "minimum": 0,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "converted_agents",
        +                  "intent_agents",
        +                  "rate"
        +                ],
        +                "type": "object"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          },
        +          "paid_intent": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "description": "Privacy-minimized evidence rows supporting the metric.",
        +                "items": {},
        +                "type": "array"
        +              },
        +              "rule": {
        +                "description": "Deterministic counting rule.",
        +                "type": "string"
        +              },
        +              "value": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          },
        +          "real_agents": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "description": "Privacy-minimized evidence rows supporting the metric.",
        +                "items": {},
        +                "type": "array"
        +              },
        +              "rule": {
        +                "description": "Deterministic counting rule.",
        +                "type": "string"
        +              },
        +              "value": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          },
        +          "repeat_agents": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "description": "Privacy-minimized evidence rows supporting the metric.",
        +                "items": {},
        +                "type": "array"
        +              },
        +              "rule": {
        +                "description": "Deterministic counting rule.",
        +                "type": "string"
        +              },
        +              "value": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          },
        +          "successful_delivery": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "evidence": {
        +                "description": "Privacy-minimized evidence rows supporting the metric.",
        +                "items": {},
        +                "type": "array"
        +              },
        +              "rule": {
        +                "description": "Deterministic counting rule.",
        +                "type": "string"
        +              },
        +              "value": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "value",
        +              "evidence",
        +              "rule"
        +            ],
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "real_agents",
        +          "paid_intent",
        +          "conversion",
        +          "agent_revenue",
        +          "successful_delivery",
        +          "repeat_agents"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "property_id": {
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "schema_version": {
        +    "description": "Evidence-inspector schema version.",
        +    "type": "string"
        +  },
        +  "stage_evidence": {
        +    "additionalProperties": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "countable_external": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "observed_events": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "outcomes": {
        +          "additionalProperties": {
        +            "type": "number"
        +          },
        +          "propertyNames": {
        +            "type": "string"
        +          },
        +          "type": "object"
        +        },
        +        "stage": {
        +          "type": "string"
        +        },
        +        "synthetic_or_internal": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "unknown_external": {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "stage",
        +        "observed_events",
        +        "countable_external",
        +        "unknown_external",
        +        "synthetic_or_internal",
        +        "outcomes"
        +      ],
        +      "type": "object"
        +    },
        +    "description": "Aggregate evidence by canonical funnel stage.",
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "state": {
        +    "description": "Present when evidence is unavailable.",
        +    "type": "string"
        +  },
        +  "time_zone": {
        +    "type": "string"
        +  },
        +  "window": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "end": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "full_property_day_observed": {
        +        "type": "boolean"
        +      },
        +      "start": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "start",
        +      "end",
        +      "full_property_day_observed"
        +    ],
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / evidence / required
        Added value: +[
        +  "schema_version",
        +  "property_id",
        +  "day",
        +  "time_zone",
        +  "generated_at",
        +  "window",
        +  "metrics",
        +  "stage_evidence",
        +  "exclusions",
        +  "integrity"
        +]
      • addedOutput schema / properties / evidence / type
        Added value: +"object"
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_portfolio_pulse7 fields changed
      • changedOutput schema / properties / organization / properties / id / description
        Previous value: -"Authorized organization ID."New value: +"Authorized organization ID selected by the bearer token."
      • addedOutput schema / properties / portfolio / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / portfolio / description
        Removed value: -"Organization-wide Portfolio Pulse with evidence-backed per-product metrics."
      • addedOutput schema / properties / portfolio / properties
        Added value: +{
        +  "generated_at": {
        +    "description": "UTC timestamp when this portfolio view was generated.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "description": "Important interpretation limits for portfolio aggregation.",
        +    "properties": {
        +      "cross_property_actor_deduplication": {
        +        "description": "False: the same actor may appear in more than one product.",
        +        "type": "boolean"
        +      },
        +      "real_agent_semantics": {
        +        "type": "string"
        +      },
        +      "repeat_agent_semantics": {
        +        "type": "string"
        +      },
        +      "revenue_semantics": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "cross_property_actor_deduplication",
        +      "real_agent_semantics",
        +      "repeat_agent_semantics",
        +      "revenue_semantics"
        +    ],
        +    "type": "object"
        +  },
        +  "metrics": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "agent_revenue": {
        +        "additionalProperties": {
        +          "type": "string"
        +        },
        +        "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +        "propertyNames": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "converted_agent_signals": {
        +        "description": "Sum of property-level converted-agent signals.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "paid_intent": {
        +        "description": "Sum of property-level paid-intent counts.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "real_agent_signals": {
        +        "description": "Sum of property-level Real Agent counts; not cross-product unique actors.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "repeat_agent_signals": {
        +        "description": "Sum of property-level repeat-agent signals.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "successful_delivery": {
        +        "description": "Count of successful paid deliveries across products.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "real_agent_signals",
        +      "paid_intent",
        +      "converted_agent_signals",
        +      "successful_delivery",
        +      "repeat_agent_signals",
        +      "agent_revenue"
        +    ],
        +    "type": "object"
        +  },
        +  "products": {
        +    "description": "Per-product pulse summaries.",
        +    "items": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "biggest_opportunity": {
        +          "description": "Largest evidence-backed opportunity or next observation.",
        +          "type": "string"
        +        },
        +        "confidence": {
        +          "description": "Evidence confidence label.",
        +          "type": "string"
        +        },
        +        "day": {
        +          "description": "Product-local day when available.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "has_activity": {
        +          "description": "Whether any meaningful observed activity is present.",
        +          "type": "boolean"
        +        },
        +        "metrics": {
        +          "additionalProperties": {},
        +          "description": "Six product-level machine-customer metrics.",
        +          "properties": {
        +            "agent_revenue": {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            "converted_agents": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "paid_intent": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "real_agents": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "repeat_agents": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "successful_delivery": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            }
        +          },
        +          "required": [
        +            "real_agents",
        +            "paid_intent",
        +            "converted_agents",
        +            "successful_delivery",
        +            "repeat_agents",
        +            "agent_revenue"
        +          ],
        +          "type": "object"
        +        },
        +        "name": {
        +          "description": "Display name.",
        +          "type": "string"
        +        },
        +        "observed_funnel": {
        +          "additionalProperties": {
        +            "type": "number"
        +          },
        +          "description": "Observed funnel event counts by stage.",
        +          "propertyNames": {
        +            "type": "string"
        +          },
        +          "type": "object"
        +        },
        +        "property_id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "state": {
        +          "description": "Pulse availability state.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "Product IANA time zone.",
        +          "type": "string"
        +        },
        +        "unresolved_external_events": {
        +          "description": "External events not promoted into verified agent metrics.",
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "what_happened": {
        +          "description": "Evidence-grounded activity summary.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "property_id",
        +        "name",
        +        "state",
        +        "day",
        +        "time_zone",
        +        "what_happened",
        +        "biggest_opportunity",
        +        "confidence",
        +        "metrics",
        +        "observed_funnel",
        +        "unresolved_external_events",
        +        "has_activity"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "products_total": {
        +    "description": "Number of active products included.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "products_with_activity": {
        +    "description": "Products with observed activity in the current pulse.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "schema_version": {
        +    "description": "Portfolio Pulse schema version.",
        +    "type": "string"
        +  },
        +  "state": {
        +    "description": "Portfolio aggregation state; currently live_partial for live views.",
        +    "type": "string"
        +  },
        +  "story": {
        +    "description": "Plain-language summary derived only from observed portfolio evidence.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / portfolio / required
        Added value: +[
        +  "schema_version",
        +  "generated_at",
        +  "state",
        +  "products_total",
        +  "products_with_activity",
        +  "metrics",
        +  "story",
        +  "products",
        +  "integrity"
        +]
      • addedOutput schema / properties / portfolio / type
        Added value: +"object"
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated portfolio response schema identifier."
    • Changedget_report8 fields changed
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • addedOutput schema / properties / report / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / report / description
        Removed value: -"Bounded report with coverage state, six core metrics, observed and strict-external funnels, diagnostics, and integrity notes."
      • addedOutput schema / properties / report / properties
        Added value: +{
        +  "blocker": {
        +    "description": "Reason the requested report is unavailable.",
        +    "type": "string"
        +  },
        +  "coverage": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "first_seen_at": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "last_seen_at": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "first_seen_at",
        +          "last_seen_at"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "coverage_assurance": {
        +    "description": "Evidence-coverage assurance label.",
        +    "type": "string"
        +  },
        +  "diagnostic": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "evidence_level": {
        +            "type": "string"
        +          },
        +          "from_count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "from_stage": {
        +            "type": "string"
        +          },
        +          "lost": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "to_count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "to_stage": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "evidence_level",
        +          "from_stage",
        +          "to_stage",
        +          "from_count",
        +          "to_count",
        +          "lost"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "generated_at": {
        +    "description": "UTC generation timestamp.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "actor_identity_evidence_present": {
        +        "type": "boolean"
        +      },
        +      "note": {
        +        "type": "string"
        +      },
        +      "source_completeness_proven": {
        +        "type": "boolean"
        +      },
        +      "strict_external_settlements": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "synthetic_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unclassified_settled_commerce": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unknown_external_events": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "synthetic_events",
        +      "unknown_external_events",
        +      "unclassified_settled_commerce",
        +      "strict_external_settlements",
        +      "actor_identity_evidence_present",
        +      "source_completeness_proven",
        +      "note"
        +    ],
        +    "type": "object"
        +  },
        +  "measurement_type": {
        +    "description": "observed_utc_day_window or unavailable.",
        +    "type": "string"
        +  },
        +  "metrics": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "agent_revenue": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +            "propertyNames": {
        +              "type": "string"
        +            },
        +            "type": "object"
        +          },
        +          "conversion": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "converted_agents": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "intent_agents": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "rate": {
        +                "anyOf": [
        +                  {
        +                    "maximum": 1,
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              }
        +            },
        +            "required": [
        +              "converted_agents",
        +              "intent_agents",
        +              "rate"
        +            ],
        +            "type": "object"
        +          },
        +          "paid_intent": {
        +            "description": "Countable-external actors with paid-intent evidence.",
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "real_agents": {
        +            "description": "Countable-external pseudonymous actors.",
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "repeat_agents": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "successful_delivery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "real_agents",
        +          "paid_intent",
        +          "conversion",
        +          "agent_revenue",
        +          "successful_delivery",
        +          "repeat_agents"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "observed_funnel": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "description": "Observed event counts by canonical commerce-funnel stage.",
        +        "properties": {
        +          "discovery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_accepted": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_rejected": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "evaluation": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "free_or_preflight_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_deliveries": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_operation_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_attempts": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_challenges": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "settlements": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "discovery",
        +          "evaluation",
        +          "free_or_preflight_invocations",
        +          "paid_operation_invocations",
        +          "eligibility_accepted",
        +          "eligibility_rejected",
        +          "payment_challenges",
        +          "payment_attempts",
        +          "settlements",
        +          "paid_deliveries"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "property_id": {
        +    "description": "Product/property ID when report evidence is available.",
        +    "type": "string"
        +  },
        +  "schema_version": {
        +    "description": "Report schema version.",
        +    "type": "string"
        +  },
        +  "strict_external_funnel": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "description": "Observed event counts by canonical commerce-funnel stage.",
        +        "properties": {
        +          "discovery": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_accepted": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "eligibility_rejected": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "evaluation": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "free_or_preflight_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_deliveries": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "paid_operation_invocations": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_attempts": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "payment_challenges": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "settlements": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "discovery",
        +          "evaluation",
        +          "free_or_preflight_invocations",
        +          "paid_operation_invocations",
        +          "eligibility_accepted",
        +          "eligibility_rejected",
        +          "payment_challenges",
        +          "payment_attempts",
        +          "settlements",
        +          "paid_deliveries"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "window_end": {
        +    "description": "Exclusive UTC report-window end.",
        +    "type": "string"
        +  },
        +  "window_start": {
        +    "description": "Inclusive UTC report-window start.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / report / required
        Added value: +[
        +  "schema_version",
        +  "measurement_type",
        +  "coverage_assurance",
        +  "window_start",
        +  "window_end",
        +  "generated_at",
        +  "coverage",
        +  "metrics",
        +  "observed_funnel",
        +  "strict_external_funnel",
        +  "diagnostic"
        +]
      • addedOutput schema / properties / report / type
        Added value: +"object"
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedget_revenue8 fields changed
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • addedOutput schema / properties / revenue / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / revenue / description
        Removed value: -"Settled-revenue intelligence with money kept in separate currency, asset, and network buckets."
      • addedOutput schema / properties / revenue / properties
        Added value: +{
        +  "delivery_evidence_rate": {
        +    "anyOf": [
        +      {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "funnel": {
        +    "additionalProperties": {},
        +    "description": "Countable-external observed stage events; not unique customers.",
        +    "properties": {
        +      "delivered": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "found": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "interested": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "payment_attempts": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "payment_challenges": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "returned": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "settled": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "found",
        +      "interested",
        +      "payment_challenges",
        +      "payment_attempts",
        +      "settled",
        +      "delivered",
        +      "returned"
        +    ],
        +    "type": "object"
        +  },
        +  "generated_at": {
        +    "description": "UTC end of the observed revenue window.",
        +    "type": "string"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "funnel_unit": {
        +        "type": "string"
        +      },
        +      "note": {
        +        "type": "string"
        +      },
        +      "source_completeness_proven": {
        +        "type": "boolean"
        +      },
        +      "strict_external_only": {
        +        "type": "boolean"
        +      },
        +      "unknown_external_revenue_excluded": {
        +        "type": "boolean"
        +      },
        +      "unlike_money_not_combined": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "strict_external_only",
        +      "unknown_external_revenue_excluded",
        +      "unlike_money_not_combined",
        +      "funnel_unit",
        +      "source_completeness_proven",
        +      "note"
        +    ],
        +    "type": "object"
        +  },
        +  "largest_observed_dropoff": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {},
        +        "properties": {
        +          "evidence_level": {
        +            "type": "string"
        +          },
        +          "from_count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "from_stage": {
        +            "type": "string"
        +          },
        +          "lost": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "to_count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "to_stage": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "evidence_level",
        +          "from_stage",
        +          "to_stage",
        +          "from_count",
        +          "to_count",
        +          "lost"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ]
        +  },
        +  "property_id": {
        +    "description": "Product/property ID.",
        +    "type": [
        +      "string",
        +      "null"
        +    ]
        +  },
        +  "revenue_buckets": {
        +    "additionalProperties": {
        +      "type": "string"
        +    },
        +    "description": "Settled minor-unit amounts keyed by an exact currency/asset/network identity; unlike money is never combined.",
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "schema_version": {
        +    "description": "Revenue-intelligence schema version.",
        +    "type": "string"
        +  },
        +  "settled_receipts": {
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "settled_with_delivery_evidence": {
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "unknown_external_settlements": {
        +    "description": "Settlements excluded from verified revenue because actor evidence is unresolved.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "window": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "current_day_partial": {
        +        "type": "boolean"
        +      },
        +      "end": {
        +        "description": "UTC end of the revenue lookback.",
        +        "type": "string"
        +      },
        +      "lookback_days": {
        +        "maximum": 90,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "start": {
        +        "description": "UTC start of the revenue lookback.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "start",
        +      "end",
        +      "lookback_days",
        +      "current_day_partial"
        +    ],
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / revenue / required
        Added value: +[
        +  "schema_version",
        +  "property_id",
        +  "generated_at",
        +  "window",
        +  "funnel",
        +  "revenue_buckets",
        +  "settled_receipts",
        +  "settled_with_delivery_evidence",
        +  "delivery_evidence_rate",
        +  "unknown_external_settlements",
        +  "largest_observed_dropoff",
        +  "integrity"
        +]
      • addedOutput schema / properties / revenue / type
        Added value: +"object"
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
    • Changedscan_agent_commerce_readiness17 fields changed
      • changedOutput schema / properties / checks / description
        Previous value: -"Per-surface observations for the fixed public readiness checks."New value: +"Results for the fixed public surfaces; no user-supplied paths are fetched."
      • addedOutput schema / properties / checks / items / additionalProperties
        Added value: +{}
      • addedOutput schema / properties / checks / items / properties
        Added value: +{
        +  "error": {
        +    "description": "Bounded scanner error classification when applicable.",
        +    "type": "string"
        +  },
        +  "evidence": {
        +    "additionalProperties": {},
        +    "description": "Small public evidence summary for this surface.",
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "http_status": {
        +    "anyOf": [
        +      {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "Observed HTTP status when a response was received."
        +  },
        +  "id": {
        +    "description": "Fixed machine-surface identifier.",
        +    "type": "string"
        +  },
        +  "standard": {
        +    "description": "Protocol or convention being checked.",
        +    "type": "string"
        +  },
        +  "status": {
        +    "description": "Observed status such as present, protected, absent, invalid, redirected, or unavailable.",
        +    "type": "string"
        +  },
        +  "url": {
        +    "description": "Exact public URL inspected.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / checks / items / required
        Added value: +[
        +  "id",
        +  "standard",
        +  "url",
        +  "status",
        +  "http_status"
        +]
      • addedOutput schema / properties / checks / items / type
        Added value: +"object"
      • changedOutput schema / properties / gaps / description
        Previous value: -"Evidence-based follow-up gaps inferred from directly observed public surfaces."New value: +"Evidence-based follow-up gaps; absence is not proof a capability does not exist."
      • addedOutput schema / properties / integrity / additionalProperties
        Added value: +{}
      • changedOutput schema / properties / integrity / description
        Previous value: -"Scanner safety properties and explicit limitations, including the DNS-rebinding limitation."New value: +"Scanner safety properties and explicit limitations."
      • addedOutput schema / properties / integrity / properties
        Added value: +{
        +  "credentials_sent": {
        +    "type": "boolean"
        +  },
        +  "direct_ip_and_private_style_targets_rejected": {
        +    "type": "boolean"
        +  },
        +  "dns_a_aaaa_preflight_verified_public": {
        +    "type": "boolean"
        +  },
        +  "dns_rebinding_fully_eliminated": {
        +    "type": "boolean"
        +  },
        +  "fixed_public_surfaces_only": {
        +    "type": "boolean"
        +  },
        +  "note": {
        +    "type": "string"
        +  },
        +  "redirects_followed": {
        +    "type": "boolean"
        +  },
        +  "response_body_limit_bytes": {
        +    "exclusiveMinimum": 0,
        +    "maximum": 9007199254740991,
        +    "type": "integer"
        +  },
        +  "security_score_assigned": {
        +    "type": "boolean"
        +  },
        +  "user_supplied_paths_fetched": {
        +    "type": "boolean"
        +  }
        +}
      • addedOutput schema / properties / integrity / required
        Added value: +[
        +  "security_score_assigned",
        +  "redirects_followed",
        +  "credentials_sent",
        +  "user_supplied_paths_fetched",
        +  "fixed_public_surfaces_only",
        +  "direct_ip_and_private_style_targets_rejected",
        +  "dns_a_aaaa_preflight_verified_public",
        +  "dns_rebinding_fully_eliminated",
        +  "response_body_limit_bytes",
        +  "note"
        +]
      • addedOutput schema / properties / integrity / type
        Added value: +"object"
      • changedOutput schema / properties / observed_at / description
        Previous value: -"UTC ISO-8601 scan timestamp."New value: +"UTC scan timestamp."
      • addedOutput schema / properties / summary / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / summary / description
        Removed value: -"Observed state of key machine-facing surfaces."
      • addedOutput schema / properties / summary / properties
        Added value: +{
        +  "llms_txt": {
        +    "description": "Observed llms.txt state.",
        +    "type": "string"
        +  },
        +  "machine_interface_observed": {
        +    "description": "Whether at least one public machine interface was directly observed.",
        +    "type": "boolean"
        +  },
        +  "mcp": {
        +    "description": "Observed MCP state such as present, protected, absent, invalid, or unavailable.",
        +    "type": "string"
        +  },
        +  "oauth_protected_resource_metadata": {
        +    "description": "Whether RFC 9728 metadata was observed for a protected MCP.",
        +    "type": "string"
        +  },
        +  "openapi": {
        +    "description": "Observed OpenAPI state.",
        +    "type": "string"
        +  },
        +  "payment_or_commercial_surface_declared": {
        +    "description": "Whether public OpenAPI evidence declares a payment or commercial surface.",
        +    "type": "boolean"
        +  },
        +  "portable_skill_index": {
        +    "description": "Observed portable-skill index state.",
        +    "type": "string"
        +  },
        +  "security_txt": {
        +    "description": "Observed security.txt state.",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / summary / required
        Added value: +[
        +  "machine_interface_observed",
        +  "mcp",
        +  "openapi",
        +  "llms_txt",
        +  "security_txt",
        +  "oauth_protected_resource_metadata",
        +  "portable_skill_index",
        +  "payment_or_commercial_surface_declared"
        +]
      • addedOutput schema / properties / summary / type
        Added value: +"object"
    • Changedvalidate_installation8 fields changed
      • changedOutput schema / properties / product / properties / id / description
        Previous value: -"Product/property ID."New value: +"Tenant-checked product/property ID."
      • changedOutput schema / properties / product / properties / time_zone / description
        Previous value: -"IANA time zone used for product-local daily interpretation."New value: +"IANA time zone used for product-local interpretation."
      • changedOutput schema / properties / schema / description
        Previous value: -"Response schema identifier."New value: +"Delegated response schema identifier."
      • addedOutput schema / properties / validation / additionalProperties
        Added value: +{}
      • removedOutput schema / properties / validation / description
        Removed value: -"Installation-verification checks, verified scope, unresolved claims, and next action."
      • addedOutput schema / properties / validation / properties
        Added value: +{
        +  "checks": {
        +    "items": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "evidence": {
        +          "description": "Human-readable evidence for the check result.",
        +          "type": "string"
        +        },
        +        "id": {
        +          "description": "Stable check identifier.",
        +          "type": "string"
        +        },
        +        "passed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "passed",
        +        "evidence"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "integrity": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "absence_of_a_business_stage_is_not_treated_as_broken_instrumentation": {
        +        "type": "boolean"
        +      },
        +      "customer_test_never_counts_as_real_agent": {
        +        "type": "boolean"
        +      },
        +      "no_payment_required": {
        +        "type": "boolean"
        +      },
        +      "no_synthetic_production_activity_created_by_validation": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "no_payment_required",
        +      "customer_test_never_counts_as_real_agent",
        +      "absence_of_a_business_stage_is_not_treated_as_broken_instrumentation",
        +      "no_synthetic_production_activity_created_by_validation"
        +    ],
        +    "type": "object"
        +  },
        +  "next": {
        +    "description": "Next recommended setup action.",
        +    "type": "string"
        +  },
        +  "not_verified_by_this_check": {
        +    "description": "Commercial or behavioral claims this check explicitly does not prove.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "schema": {
        +    "description": "Installation-validation schema identifier.",
        +    "type": "string"
        +  },
        +  "state": {
        +    "enum": [
        +      "verified",
        +      "not_yet_verified"
        +    ],
        +    "type": "string"
        +  },
        +  "verified": {
        +    "description": "True only when all setup-plumbing checks pass.",
        +    "type": "boolean"
        +  },
        +  "verified_scope": {
        +    "description": "Claims actually verified by this check.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +}
      • addedOutput schema / properties / validation / required
        Added value: +[
        +  "schema",
        +  "verified",
        +  "state",
        +  "checks",
        +  "verified_scope",
        +  "not_verified_by_this_check",
        +  "next",
        +  "integrity"
        +]
      • addedOutput schema / properties / validation / type
        Added value: +"object"
  2. 11 tool updates
    • Changedget_agents3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum observed relationships to return, from 1 to 200."New value: +"Maximum relationship rows to return, 1 through 200 inclusive. Defaults to 100 when omitted."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "agents": {
        +      "description": "Privacy-safe pseudonymous agent relationship and repeat-use evidence."
        +    },
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "agents"
        +  ],
        +  "type": "object"
        +}
    • Changedget_connection_health3 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Lookback window in days, from 1 to 90."New value: +"Diagnostic lookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "health": {
        +      "description": "Instrumentation connection-health diagnostics and evidence coverage."
        +    },
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "health"
        +  ],
        +  "type": "object"
        +}
    • Changedget_daily_pulse3 fields changed
      • changedInput schema / properties / day / description
        Previous value: -"Optional YYYY-MM-DD day in the product's configured time zone."New value: +"Product-local calendar day as YYYY-MM-DD. Omit to read the current product-local day, with live-pulse fallback when the finalized daily pulse is not ready."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "pulse": {
        +      "description": "Daily Pulse payload containing the six core metrics plus evidence-integrity state."
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "pulse"
        +  ],
        +  "type": "object"
        +}
    • Changedget_discovery3 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Lookback window in days, from 1 to 90."New value: +"Lookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "discovery": {
        +      "description": "Discovery intelligence grouped by observed source and evidence class for the requested lookback."
        +    },
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "discovery"
        +  ],
        +  "type": "object"
        +}
    • Changedget_evidence3 fields changed
      • changedInput schema / properties / day / description
        Previous value: -"Optional YYYY-MM-DD day in the product's configured time zone."New value: +"Product-local calendar day as YYYY-MM-DD. Omit to inspect the current product-local day."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "evidence": {
        +      "description": "Evidence inspector payload explaining metric inclusion, exclusions, and unresolved evidence."
        +    },
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "evidence"
        +  ],
        +  "type": "object"
        +}
    • Changedget_portfolio_pulse4 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / description
        Added value: +"This tool takes no parameters."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "organization": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Authorized organization ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Authorized organization name.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name"
        +      ],
        +      "type": "object"
        +    },
        +    "portfolio": {
        +      "description": "Organization-wide Portfolio Pulse with evidence-backed per-product metrics."
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "organization",
        +    "portfolio"
        +  ],
        +  "type": "object"
        +}
    • Changedget_report7 fields changed
      • changedInput schema / properties / end / description
        Previous value: -"Optional report end accepted by the canonical report API."New value: +"Required UTC calendar end date as YYYY-MM-DD, exclusive. Must be after start and no more than 31 UTC days later."
      • addedInput schema / properties / end / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedInput schema / properties / start / description
        Previous value: -"Optional report start accepted by the canonical report API."New value: +"Required UTC calendar start date as YYYY-MM-DD, inclusive."
      • addedInput schema / properties / start / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / required
        Previous value: -[
        -  "product_id"
        -]New value: +[
        +  "product_id",
        +  "start",
        +  "end"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "report": {
        +      "description": "Bounded report with coverage state, six core metrics, observed and strict-external funnels, diagnostics, and integrity notes."
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "report"
        +  ],
        +  "type": "object"
        +}
    • Changedget_revenue3 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Lookback window in days, from 1 to 90."New value: +"Lookback length in whole days, 1 through 90 inclusive. Defaults to 30 when omitted."
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "revenue": {
        +      "description": "Settled-revenue intelligence with money kept in separate currency, asset, and network buckets."
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "revenue"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_products4 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / description
        Added value: +"This tool takes no parameters."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "products": {
        +      "description": "Active products visible to this authorization.",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "created_at": {
        +            "description": "UTC ISO-8601 product creation timestamp.",
        +            "type": "string"
        +          },
        +          "id": {
        +            "description": "Stable product/property ID to pass as product_id to product-scoped tools.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Customer-visible product name.",
        +            "type": "string"
        +          },
        +          "status": {
        +            "description": "Current product state.",
        +            "type": "string"
        +          },
        +          "time_zone": {
        +            "description": "IANA time zone used for product-local daily metrics.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "status",
        +          "time_zone",
        +          "created_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "products"
        +  ],
        +  "type": "object"
        +}
    • Changedscan_agent_commerce_readiness2 fields changed
      • changedInput schema / properties / url / description
        Previous value: -"Public HTTPS product origin or URL. The scanner uses only its origin and fixed known paths."New value: +"Any public HTTPS URL on the product host. Only its scheme and host are used; path, query, and fragment are ignored. Custom ports, embedded credentials, IP literals, localhost/private-style hostnames, and non-public A/AAAA answers are rejected."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "checks": {
        +      "description": "Per-surface observations for the fixed public readiness checks.",
        +      "items": {},
        +      "type": "array"
        +    },
        +    "gaps": {
        +      "description": "Evidence-based follow-up gaps inferred from directly observed public surfaces.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "integrity": {
        +      "description": "Scanner safety properties and explicit limitations, including the DNS-rebinding limitation."
        +    },
        +    "observed_at": {
        +      "description": "UTC ISO-8601 scan timestamp.",
        +      "type": "string"
        +    },
        +    "schema": {
        +      "description": "Readiness-scan schema identifier.",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Observed state of key machine-facing surfaces."
        +    },
        +    "target": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "hostname": {
        +          "description": "Normalized public hostname that passed syntax and DNS preflight checks.",
        +          "type": "string"
        +        },
        +        "origin": {
        +          "description": "Normalized public HTTPS origin that was inspected.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "origin",
        +        "hostname"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "target",
        +    "observed_at",
        +    "summary",
        +    "checks",
        +    "gaps",
        +    "integrity"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_installation2 fields changed
      • changedInput schema / properties / product_id / description
        Previous value: -"AI Agent Analytics product/property ID from list_products."New value: +"Exact AI Agent Analytics product/property ID returned by list_products. Do not pass a product name, URL, or organization ID."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "product": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "id": {
        +          "description": "Product/property ID.",
        +          "type": "string"
        +        },
        +        "name": {
        +          "description": "Product name.",
        +          "type": "string"
        +        },
        +        "time_zone": {
        +          "description": "IANA time zone used for product-local daily interpretation.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "time_zone"
        +      ],
        +      "type": "object"
        +    },
        +    "schema": {
        +      "description": "Response schema identifier.",
        +      "type": "string"
        +    },
        +    "validation": {
        +      "description": "Installation-verification checks, verified scope, unresolved claims, and next action."
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "product",
        +    "validation"
        +  ],
        +  "type": "object"
        +}
  3. 11 tool updates
    • First observedget_agents
    • First observedget_connection_health
    • First observedget_daily_pulse
    • First observedget_discovery
    • First observedget_evidence
    • First observedget_portfolio_pulse
    • First observedget_report
    • First observedget_revenue
    • First observedlist_products
    • First observedscan_agent_commerce_readiness
    • First observedvalidate_installation

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Real-time Amazon Sponsored Products (SP) ad placements, keyword tracking, and comprehensive review data for AI Agents. Enables LLMs to autonomously conduct competitor ad audits, consumer sentiment analysis (VOC), and product optimization.
    19
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    agentcentral is a hosted MCP server for Amazon sellers that connects Claude, ChatGPT, and other AI clients to Amazon Ads, Seller Central, inventory, orders, catalog, rankings, finance, and fulfillment data. It provides fast reads from pre-materialized Amazon data, scoped API keys, OAuth-based Amazon connections, encrypted tokens, per-tenant isolation, and guarded write tools with audit log
    100
    6
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources