> ## Documentation Index
> Fetch the complete documentation index at: https://agents.concierca.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool Reference

> Each canonical vertical_* tool — purpose, when to call, key inputs, and the notes that keep answers grounded.

This is the operating view of the canonical tools — *purpose, when to call, key inputs, notes*. For the exact parameter tables and return shapes, see the full [Vertical tool list](/for-agents/vertical).

<Warning>
  Prefer the canonical `vertical_*` names. The `feed_*` names (`feed_card`, `feed_search`, `feed_compare`, `feed_brand_resolve`, `feed_index_list`) and the older `list_lookups` / `market_density` / `read_know_how` are **deprecated aliases** that map 1:1 onto the tools below.

  Federated on the main server the tools are namespaced `vertical__vertical_*`; on the standalone endpoint `/api/mcp/watchinside` they carry their bare names (`vertical_*`).
</Warning>

## vertical\_legend

**Purpose** — the live capability manifest. Channels, benchmarks, lookups, the full signal catalog (each signal's `how_to_read`, an `example_question`, its `grain` and `window`), the bootstrap article ids, and live counts.

**When to call** — **first**, and whenever you are unsure what exists or which `signal_type` to filter on. This is the authoritative runtime map.

**Notes** — read counts and coverage from here *live*; never carry a remembered figure. The legend also names the `getting_started` and `agent_rules` articles to load via `vertical_knowhow`.

## vertical\_resolve

**Purpose** — turn a free-text name into a canonical `entity_id`.

**When to call** — **required** whenever the input is a brand name, handle, domain, partial, or otherwise ambiguous. Every card/compare/search-by-entity flow starts here.

**Key inputs** — `query` (name or fragment); optional `limit`.

**Notes** — on failure, **do not invent** an id. Try a cleaner form of the name, and if it is still ambiguous, explain the ambiguity and surface the candidates rather than picking silently.

## vertical\_card

**Purpose** — the complete intelligence card for **one** entity: curated signals across all channels plus entity attributes.

**When to call** — any "tell me about one entity" question. For 2+ entities use `vertical_compare` instead.

**Key inputs** — `entity_id`; optional `period` (strict cut), `channel` (filter to one channel from the legend), `include_details` (source refs).

**Notes** — the default favors **completeness**, so different signals may carry different `period_key`s. Because of that, **never call a default card "all data from quarter X"** — it is the newest available per channel, not a single aligned period. Use `period=` when you need one strict period, and `channel=` to focus.

## vertical\_search

**Purpose** — cross-entity / cross-signal search over the feed — the "which brands…" tool.

**When to call** — market-discovery questions: filter by `signal_type`, or free-text over headlines.

**Key inputs** — optional `signal_type`, `channel`, `entity_id`, `period_from` / `period_to`, `text`.

**Notes** — **prefer a structured `signal_type` over free text** whenever one exists; text search is the fallback, not the default.

## vertical\_compare

**Purpose** — **2–6 entities** in a single call, with aligned signals.

**When to call** — every multi-entity comparison. Never loop `vertical_card` per entity.

**Key inputs** — `entity_ids` (2–6, names or ids); optional `signal_types` for a focused comparison (e.g. growth, launch, or reviewer perception), `channel`, `period`.

**Notes** — start from coverage differences; a missing signal for one entity is "not tracked", not "weak".

## vertical\_benchmark

**Purpose** — non-entity **market aggregates** — the "what is normal" numbers.

**When to call** — density and industry-pulse questions, e.g. `market_density` with a `dimension_filter` like `{"country":"X"}`, or `industry_pulse`.

**Key inputs** — `name` (benchmark name from the legend); optional `dimension_filter`, `period_from` / `period_to`.

**Notes** — always explain what the benchmark **measures**. In particular, **`market_density` is paid-media competitive density — not market share.**

## vertical\_knowhow

**Purpose** — the editorial layer: guides, playbooks, and interpretation rules.

**When to call** — for method and framing, and for the mandatory first-use bootstrap.

**Key inputs** — `article_id` (fetch one) or `query` (keyword filter).

**Notes** — **data ≠ playbook.** Load `getting_started` and `agent_rules` by the ids the legend advertises before advisory work.

## vertical\_lookups

**Purpose** — the controlled vocabulary: countries, brand\_tiers, segments, platforms, and other reference values.

**When to call** — whenever you need a valid value for a filter or want to confirm the allowed set.

**Key inputs** — optional `lookup_name` to restrict to one lookup.

**Notes** — **never invent a lookup value.** Use only what the lookup returns.

## Related

* [START HERE](/for-agents/vertical/start-here) — the routing table and decision tree that pick among these tools.
* [Business Question Recipes](/for-agents/vertical/recipes) — these tools sequenced into end-to-end flows.
* [Error Handling & Sources](/for-agents/vertical/errors) — what to do when a name, channel, or benchmark is rejected.
