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 |
find_related
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.