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
| Tool | REST equivalent | What 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). |
account_status | /account | 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. |
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 quota. 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
| Hosted | Local stdio | |
|---|---|---|
| Endpoint | https://api.unzoi.com/mcp | A binary your client spawns |
| Setup | A URL and a header | Build it, point it at storage |
| Corpus | The whole live index | Whatever shard you have locally |
| Auth | Per request | Once, from the environment |
| For | Everyone | Air-gapped work, or hacking on the engine |
Almost everyone wants the hosted endpoint. Pick your client.