Skip to content
unzoi docs
Search and navigation
Start here
REST API
MCP
Limits and plans
Agent clients
SDKs
Guides

MCP

The same index as the REST API, as a Model Context Protocol server, so an agent can decide for itself what to look up.

https://api.unzoi.com/mcp

Authenticated with the same key and the same header as REST, billed against the same allowance, and returning the same JSON. The tool arguments are the REST query parameters — the two surfaces are generated from one contract, so they cannot answer a question differently.

The tools

ToolREST equivalentWhat it does
search_news /search Search the news index.
list_stories /stories Search and collapse results into deduplicated stories (one real event across many outlets).
top_headlines /top-headlines Most-recent articles, optionally filtered by indexed article metadata and time range.
get_article /doc/{id} Fetch a single article's rich metadata by id, including names, structured locations and dates, quotations, amounts, related media, links, and alternate URLs.
find_related /similar/{id} Find articles semantically similar to a given article id (More-Like-This).
get_story /stories/{id} Expand one story by its story_id (from list_stories or any article): the article and outlet counts, every outlet, when it was first and last seen, the entities and topics it is about, and its newest articles as compact hits.
resolve_entity /entities Find the spellings the index holds for an organization, person, place, topic, author or source, before filtering on it.
aggregate_news /aggregate A time series over the match set: per calendar bucket (hour, day, week, month, or `all` for one bucket), the article count and optionally the distinct story count, the distinct outlet count and a signal's mean and percentiles.
related_entities /graph/related The entities most often mentioned alongside one entity (organizations, people, places, topics), strongest first, each with its co-mention count and share and, for the strongest, the newest articles mentioning both plus distinct sources, stories and first and last seen.
connection_path /graph/path How two entities connect in the reporting: the articles mentioning both, and up to five paths through one shared neighbour, each hop with its co-mentions and evidence.
entity_network /graph/network One entity's neighbours grouped by type for a window.
shared_exposures /graph/exposures What up to five entities have in common: the articles mentioning all of them, their distinct stories and sources, the facets you ask for (topics, countries, sources and so on), mean and percentile intensities of the signals you name, and the newest shared articles as evidence.
create_watch POST /watches Save a /stories query the index runs for you every interval_minutes, instead of polling.
list_watches /watches List this account's watches with their status (active, paused_key, paused_credits, failing), last and next run, and the plan's cap.
get_watch /watches/{id} Read one watch: the /stories query it runs, its interval and minimum_outlets, which events it records, its webhook_url, and its status (active, paused_key, paused_credits, failing) with the last and next run and the watermark.
delete_watch DELETE /watches/{id} Delete a watch with its state and its events.
watch_events /watches/{id}/events Read a watch's events, newest first: new_story and story_growth, each with the story's counts and, when a webhook is set, its delivery status.
account_status /account Report this session's account: plan, credits a minute, the monthly credit allocation and how much of it is used, whether the key stops at its allocation or bills overage, how far back the plan may query (history_days; null = the full archive), calls and credits this session, and whether metered billing is active.

Read the schemas straight from the server at https://api.unzoi.com/mcp/tools.json — no key needed. This site's tool reference is generated from that file.

When to use MCP instead of REST

Use MCP when a model is choosing what to look up. Use REST when your code is.

That is not a style preference. The tool descriptions are written for a model to read, and they carry the judgement a good integration needs: when clustering beats article search, why hybrid ranking suits a query a model wrote, which calls cost more credits. A model reading those picks well. Your own code does not need to be told, and REST is one less hop.

A pipeline with a fixed query wants REST. A research agent that will follow a thread it has not seen yet wants MCP. An application that does both should use both, on one key.

Two ways to run it

HostedLocal stdio
Endpointhttps://api.unzoi.com/mcpA binary your client spawns
SetupA URL and a headerBuild it, point it at storage
CorpusThe whole live indexWhatever shard you have locally
AuthPer requestOnce, from the environment
WatchesYesNo: the watch tools answer unsupported
ForEveryoneAir-gapped work, or hacking on the engine

Almost everyone wants the hosted endpoint. Pick your client.