Skip to content
unzoi docs

Tool reference

All 6 tools, generated from https://api.unzoi.com/mcp/tools.json — the schemas the server actually accepts, not a second copy of them.

Every tool maps onto a REST endpoint, and the arguments are that endpoint's query parameters. Two argument shapes are richer than their query-string form, because a model emits them more reliably: facets is an array of strings rather than a comma-separated list, and signals is an array of {name, min, max} objects rather than the packed name:min:max syntax.

search_news

Equivalent to /search over REST.

Search the news index. Returns ranked articles with image, topics, entities, locations, and versioned industry/business/risk language signals. Supports keyword, semantic, or hybrid ranking, exact metadata filters, numeric signal ranges, pagination, and facets.

Argument Type Description
amount_object string Filter to an exact object described by a numeric amount.
author string Filter to an exact article author.
city string Filter to an exact mentioned city.
country string Filter by a mentioned country's canonical two-character identifier.
facet_limit integer
facets `source` · `source_type` · `publisher_country` · `language` · `topic` · `organization` · `person` · `country` · `author` · `location` · `location_id` · `city` · `region` · `name` · `mentioned_date` · `quote_verb` · `amount_object`[]
from string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
language string Filter to a source language (ISO-639-3, e.g. eng, fra, ara, zho).
limit integer
location string Filter to an exact mentioned location.
location_id string Filter to an exact canonical location identifier.
mentioned_date string Filter to an exact date mentioned in article text.
mode `keyword` · `semantic` · `hybrid` Ranking mode (default hybrid).
name string Filter to an exact proper name.
offset integer Zero-based result offset.
organization string Filter to an exact organization entity.
person string Filter to an exact person entity.
publisher_country string Filter by the publisher's canonical two-character country identifier.
q required string Query text.
quote_verb string Filter to an exact verb introducing a quotation.
region string Filter to an exact mentioned region.
signal `economy` · `healthcare` · `agriculture` · `labor` · `environment` · `energy` · `transportation` · `real_estate` · `finance` · `defense` · `science_technology` · `trade` · `public_sector` · `financial_uncertainty` · `financial_negative` · `financial_positive` · `legal_litigation` · `financial_stability_stress` · `anxiety` · `conflict` · `supply_disruption` · `cyber_incident` · `climate` · `health_security` · `governance_risk` Select a normalized business signal for inclusive range filtering.
signal_max number
signal_min number
signals object[] Derived signal ranges combined with AND semantics.
source string Filter to a source domain, e.g. bbc.co.uk.
source_type `web` · `citation` · `academic_archive` · `defense_archive` · `journal_archive` · `non_textual` · `other`
to string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
topic string Filter to an exact canonical topic identifier returned by the API.

list_stories

Equivalent to /stories over REST.

Search and collapse results into deduplicated stories (one real event across many outlets). Returns story_id, article count, outlet count, and a representative headline.

Argument Type Description
amount_object string
author string
city string
country string Mentioned-country canonical two-character identifier.
from string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
language string ISO-639-3 source language, e.g. eng, fra.
limit integer
location string
location_id string
mentioned_date string
name string
offset integer
organization string Exact organization entity.
person string Exact person entity.
publisher_country string
q required string
quote_verb string
region string
signal string Normalized business signal name.
signal_max number
signal_min number
signals object[] Derived signal ranges combined with AND semantics.
source_type string
to string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
topic string Exact canonical topic identifier.

top_headlines

Equivalent to /top-headlines over REST.

Most-recent articles, optionally filtered by indexed article metadata and time range.

Argument Type Description
amount_object string
author string
city string
country string Mentioned-country canonical two-character identifier.
facet_limit integer
facets `source` · `source_type` · `publisher_country` · `language` · `topic` · `organization` · `person` · `country` · `author` · `location` · `location_id` · `city` · `region` · `name` · `mentioned_date` · `quote_verb` · `amount_object`[]
from string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
language string ISO-639-3 source language, e.g. eng, fra.
limit integer
location string
location_id string
mentioned_date string
name string
offset integer
organization string Exact organization entity.
person string Exact person entity.
publisher_country string
quote_verb string
region string
signal string Normalized business signal name.
signal_max number
signal_min number
signals object[] Derived signal ranges combined with AND semantics.
source string
source_type string
to string Date/time, e.g. 2026-07-09 or 20260709120000 (YYYYMMDDHHMMSS).
topic string Exact canonical topic identifier.

get_article

Equivalent to /doc/{id} over REST.

Fetch a single article's rich metadata by id, including names, structured locations and dates, quotations, amounts, related media, links, and alternate URLs.

Argument Type Description
id required string

Equivalent to /similar/{id} over REST.

Find articles semantically similar to a given article id (More-Like-This). Returns distinct related stories (deduplicated across outlets), excluding the seed article.

Argument Type Description
id required string Seed article id to find related stories for.
limit integer

account_status

Equivalent to /account over REST.

Report this session's account: plan, per-minute rate limit, monthly quota and how much of it is used, whether the key stops at its quota or bills overage, how far back the plan may query (history_days; null = the full archive), calls made this session, and whether metered billing is active.

FREE: this tool is not billed against your quota in any way you would notice, and it is how to plan a time range instead of discovering the archive boundary by getting fewer results than you expected.

Takes no arguments.

Calling one directly

Nothing about this is special — it is JSON-RPC over one POST:

curl -s -X POST https://api.unzoi.com/mcp \
  -H "x-api-key: $UNZOI_KEY" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_stories",
      "arguments": { "q": "semiconductor export controls", "limit": 5 }
    }
  }'

The result is a content block whose text is the JSON payload — the same body GET /stories returns. See Transport for the handshake, and Errors for what a refusal looks like.