MCP server
Real-time news search for Claude, Cursor, VS Code, Codex and any MCP client, with the same key and prices as the API.
The typesearch MCP server gives any Model Context Protocol client four read-only tools for news search. It's remote — nothing to install — and it uses your API key and the API's prices.
| URL | https://api.typesearch.ai/mcp |
| Transport | Streamable HTTP, stateless |
| Authentication | Authorization: Bearer <key> or x-api-key: <key>. Clients that only take a URL: ?typesearchApiKey=<key> |
| Server name | typesearch |
The key is never logged: we strip it from our logs and error messages, also when it comes in the URL.
Install
The examples read your key from TYPESEARCH_API_KEY, or ask for it. Replace YOUR_API_KEY where a client
needs it written in its configuration.
Cursor
Add to Cursor.
Cursor reads the key from the TYPESEARCH_API_KEY environment variable. To add it by hand, put this in
~/.cursor/mcp.json (or in your project's .cursor/mcp.json):
{
"mcpServers": {
"typesearch": {
"url": "https://api.typesearch.ai/mcp",
"headers": {
"Authorization": "Bearer ${env:TYPESEARCH_API_KEY}"
}
}
}
}VS Code
Add to VS Code.
VS Code asks for your key once and stores it as a secret. By hand, in .vscode/mcp.json:
{
"servers": {
"typesearch": {
"type": "http",
"url": "https://api.typesearch.ai/mcp",
"headers": {
"Authorization": "Bearer ${input:typesearch-api-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "typesearch-api-key",
"description": "typesearch API key",
"password": true
}
]
}Claude Code
claude mcp add --transport http typesearch https://api.typesearch.ai/mcp --header "Authorization: Bearer $TYPESEARCH_API_KEY"Add --scope user to have it in every project.
Codex
codex mcp add typesearch --url https://api.typesearch.ai/mcp --bearer-token-env-var TYPESEARCH_API_KEYClaude Desktop
Open Settings → Developer → Edit config, add the server to claude_desktop_config.json with your key
and restart Claude.
Claude Desktop starts local servers from this file, so it reaches the remote one through mcp-remote:
{
"mcpServers": {
"typesearch": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.typesearch.ai/mcp",
"--header",
"Authorization:${TYPESEARCH_AUTH}"
],
"env": {
"TYPESEARCH_AUTH": "Bearer YOUR_API_KEY"
}
}
}
}Windsurf
Add it to mcp_config.json. Windsurf reads the key from TYPESEARCH_API_KEY:
{
"mcpServers": {
"typesearch": {
"serverUrl": "https://api.typesearch.ai/mcp",
"headers": {
"Authorization": "Bearer ${env:TYPESEARCH_API_KEY}"
}
}
}
}Other clients
Any client that speaks Streamable HTTP works with the URL and one of the headers above. If it only takes a URL, put the key in it:
https://api.typesearch.ai/mcp?typesearchApiKey=YOUR_API_KEYTools
All four are read-only. Their results are compact — the fields an agent cites, and nothing empty — so they leave room in the context window for the answer.
search_news
Search the news index. Returns ranked articles with title, URL, source, publication time, a short excerpt and a calibrated relevance score.
| Parameter | ||
|---|---|---|
query | required | What to search for, in any language. |
mode | fast | ultra, fast, normal or deep: how much is read before ranking. See Modes. |
max_results | 10 | From 1 to 25. |
days | 7 | Only the last N days, 1 to 365. The default of 7 doesn’t apply when you give published_after or published_before. |
published_after, published_before | ISO dates (2026-09-25) or date-times with their offset (2026-09-25T14:00:00Z). | |
include_domains, exclude_domains | Lists of domains. | |
countries, languages | Only outlets from these countries (ISO 3166-1 alpha-2, e.g. AR) or that publish in these languages (ISO 639-1, e.g. es). |
get_contents
Metadata and short verbatim excerpts of up to 10 URLs. With query, the model picks the excerpts about it.
| Parameter | ||
|---|---|---|
urls | required | 1 to 10 URLs. |
query | The excerpts are chosen for it. |
find_similar
Everything in the index about the same story as a URL, ranked, and who published it first.
| Parameter | ||
|---|---|---|
url | required | The article to start from. |
max_results | 10 | From 1 to 25. |
days | 7 | Only the last N days, 1 to 365. |
check_coverage
Whether a domain is in the index, with its country and languages; without domain, how many sources we
cover by country and language. We don’t publish the list of sources.
| Parameter | ||
|---|---|---|
domain | Such as example.com. |
Pricing
Each tool call is billed like the API request it makes:
| Tool | Price |
|---|---|
search_news | $1.40 per 1,000 in ultra and fast · $2.20 in normal · $5.60 in deep |
get_contents | $0.20 per 1,000 pages · $0.40 with query |
find_similar | $2.20 per 1,000 requests |
check_coverage | Free |
Identical calls within 10 minutes come from the cache and cost nothing. Every call counts toward your key’s rate limits.
Errors
A problem comes back as a tool error with a message the model can read and act on: a missing or invalid key, no credit left, or a rate limit to wait out. The same conditions as the API’s errors.