# Discovery & context

**Read-only tools.** Start every session here: what data this organization has, what its custom metrics mean, and the full operating contract.

| Tool | Purpose |
|---|---|
| [`get_data_coverage`](#get_data_coverage) | Data coverage |
| [`get_metric_definitions`](#get_metric_definitions) | Metric definitions |
| [`get_context_pack`](#get_context_pack) | Context pack |

## `get_data_coverage`

**Data coverage**

Which analytics modules this organization has (entitlements) and which actually have data flowing, with the latest date per surface. CALL THIS FIRST in a new session, and any time you are unsure whether a data surface exists for this org — entitled-but-empty and has-data-but-lapsed are both real states, and every other tool's availability follows from what this returns.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/get_data_coverage`

Takes no arguments. Send `{}` (any key at all is rejected).

## `get_metric_definitions`

**Metric definitions**

What this organization's custom metric slots (metric_1..metric_10) count, with each metric's name, abbreviation, description, type and display format — plus whether its conversion numbers come from its CRM or from ad-platform pixels. Read this BEFORE interpreting or ranking by any metric_N column: the slots mean different things per organization (for CRM-source orgs metric_1 is typically MQLs from Salesforce/HubSpot, not a platform pixel conversion).

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/get_metric_definitions`

Takes no arguments. Send `{}` (any key at all is rejected).

## `get_context_pack`

**Context pack**

The full operating contract for this API as one markdown document: how the platform defines its metrics (Monday-start weeks, ROAS as total revenue over total spend, rate metrics recomputed from summed components rather than averaged, the display-format and ad-network vocabularies), the grounding rules your answers must follow, the BigQuery marts behind each tool with their documented columns and grains, and the full tool reference. LOAD THIS ONCE at the start of a session, before answering any question about this organization's numbers — it is what stops a correct-looking figure from being computed the wrong way. It is static per deployment: cache it against the returned meta.version and re-fetch only when that changes.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/get_context_pack`

Takes no arguments. Send `{}` (any key at all is rejected).
