Skip to content
unzoi docs

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

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
ForEveryoneAir-gapped work, or hacking on the engine

Almost everyone wants the hosted endpoint. Pick your client.