typesearch
News search for AI agents: recent news on any topic from outlets worldwide, by country and language.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"news": {
"url": "https://api.typesearch.ai/mcp"
}
}
}Remote endpoints
https://api.typesearch.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
๐ขsearch_news(query, mode, max_results, days, published_after, ...)
Search recent news on any topic across a curated index of news outlets worldwide, judged by a relevance model. Returns the matching articles: title, link, source, date, country and language, standfirst, and short excerpts in the modes that read. Use it for current events and for what outlets reported about a company, person, place or topic. Defaults: mode "fast" (US$1.40 per 1,000 searches) and the last 7 days; mode "ultra" judges headlines only, for US$1.00.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "What to look for, in any language: a topic, event, person, company or place, such as \"inflation in Argentina\" or \"OpenAI funding\"."
},
"mode": {
"default": "fast",
"description": "fast (default): headlines and standfirsts ยท ultra (cheapest): headlines only ยท normal: also reads the best matches ยท deep: reads more, finds the topic in other words too.",
"type": "string",
"enum": [
"ultra",
"fast",
"normal",
"deep"
]
},
"max_results": {
"default": 10,
"description": "How many results, 1 to 25. Defaults to 10.",
"type": "integer",
"minimum": 1,
"maximum": 25
},
"days": {
"description": "Only the last N days, 1 to 365. Defaults to 7 unless published_after or published_before are given.",
"type": "integer",
"minimum": 1,
"maximum": 365
},
"published_after": {
"description": "Published on or after this date: 2026-09-25, or a date-time with offset.",
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
]
},
"published_before": {
"description": "Published on or before this date; a bare date includes that whole day.",
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
]
},
"include_domains": {
"description": "Only these domains or paths, such as example.com or example.com/sports.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"exclude_domains": {
"description": "Never these domains or paths.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"countries": {
"description": "Only sources from these countries: ISO 3166-1 alpha-2 codes, such as [\"AR\"] or [\"US\", \"GB\"].",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 20
}
},
"languages": {
"description": "Only sources that publish in these languages: ISO 639-1 codes, such as [\"es\"] or [\"en\", \"pt\"].",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 35
}
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"ultra",
"fast",
"normal",
"deep"
]
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"type": "string"
},
"published_at": {
"description": "ISO 8601, UTC, to the minute.",
"type": "string"
},
"country": {
"type": "string"
},
"language": {
"type": "string"
},
"snippet": {
"description": "The standfirst, as the outlet published it (shortened).",
"type": "string"
},
"highlights": {
"description": "Short verbatim excerpts from reading the article.",
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number",
"description": "Probability that the article is about the query."
},
"found_in": {
"description": "Only when it was not found in the index: where it came from.",
"type": "string",
"enum": [
"homepage",
"section",
"site_search",
"discovery"
]
}
},
"required": [
"title",
"url",
"score"
],
"additionalProperties": false
}
},
"near_misses": {
"description": "Only when nothing matched: the closest articles, which may not be about it.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"type": "string"
},
"published_at": {
"description": "ISO 8601, UTC, to the minute.",
"type": "string"
},
"country": {
"type": "string"
},
"language": {
"type": "string"
},
"snippet": {
"description": "The standfirst, as the outlet published it (shortened).",
"type": "string"
},
"highlights": {
"description": "Short verbatim excerpts from reading the article.",
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number",
"description": "Probability that the article is about the query."
},
"found_in": {
"description": "Only when it was not found in the index: where it came from.",
"type": "string",
"enum": [
"homepage",
"section",
"site_search",
"discovery"
]
}
},
"required": [
"title",
"url",
"score"
],
"additionalProperties": false
}
},
"incomplete": {
"description": "The time or token budget ran out: there may be more.",
"type": "boolean",
"const": true
},
"cached": {
"type": "boolean",
"const": true
},
"cost_usd": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"request_id": {
"type": "string"
}
},
"required": [
"query",
"mode",
"results",
"cost_usd",
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}๐ขget_contents(urls, query)
Get the title, standfirst, date, source and a short verbatim excerpt (up to 25 words) of up to 10 news article URLs. With a query, the excerpt is the one about it and relevance says how much the article covers it. Never returns the full text. US$0.20 per 1,000 pages read (US$0.40 with a query); pages that fail are free.
Input Schema
{
"type": "object",
"properties": {
"urls": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"description": "Up to 10 article URLs, such as https://example.com/news/article."
},
"query": {
"description": "Optional: the excerpt is then the one about this query, with a relevance score.",
"type": "string",
"minLength": 2,
"maxLength": 200
}
},
"required": [
"urls"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ok",
"error"
]
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"published_at": {
"type": "string"
},
"source": {
"type": "string"
},
"excerpt": {
"type": "string"
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"relevance": {
"type": "number"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"required": [
"url",
"status"
],
"additionalProperties": false
}
},
"cost_usd": {
"type": "number"
},
"request_id": {
"type": "string"
}
},
"required": [
"results",
"cost_usd",
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}๐ขfind_similar(url, max_results, days)
Find other news articles about the same story as a given article URL, across the index (the last 7 days by default). Useful to see how other outlets covered a story. US$2.20 per 1,000 calls.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"description": "The article URL whose story to find elsewhere."
},
"max_results": {
"default": 10,
"description": "How many results, 1 to 25. Defaults to 10.",
"type": "integer",
"minimum": 1,
"maximum": 25
},
"days": {
"description": "Only the last N days, 1 to 365. Defaults to 7.",
"type": "integer",
"minimum": 1,
"maximum": 365
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"reference": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"title",
"url"
],
"additionalProperties": false
},
"mode": {
"type": "string",
"enum": [
"ultra",
"fast",
"normal",
"deep"
]
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"type": "string"
},
"published_at": {
"description": "ISO 8601, UTC, to the minute.",
"type": "string"
},
"country": {
"type": "string"
},
"language": {
"type": "string"
},
"snippet": {
"description": "The standfirst, as the outlet published it (shortened).",
"type": "string"
},
"highlights": {
"description": "Short verbatim excerpts from reading the article.",
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number",
"description": "Probability that the article is about the query."
},
"found_in": {
"description": "Only when it was not found in the index: where it came from.",
"type": "string",
"enum": [
"homepage",
"section",
"site_search",
"discovery"
]
}
},
"required": [
"title",
"url",
"score"
],
"additionalProperties": false
}
},
"near_misses": {
"description": "Only when nothing matched: the closest articles, which may not be about it.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"type": "string"
},
"published_at": {
"description": "ISO 8601, UTC, to the minute.",
"type": "string"
},
"country": {
"type": "string"
},
"language": {
"type": "string"
},
"snippet": {
"description": "The standfirst, as the outlet published it (shortened).",
"type": "string"
},
"highlights": {
"description": "Short verbatim excerpts from reading the article.",
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number",
"description": "Probability that the article is about the query."
},
"found_in": {
"description": "Only when it was not found in the index: where it came from.",
"type": "string",
"enum": [
"homepage",
"section",
"site_search",
"discovery"
]
}
},
"required": [
"title",
"url",
"score"
],
"additionalProperties": false
}
},
"incomplete": {
"description": "The time or token budget ran out: there may be more.",
"type": "boolean",
"const": true
},
"cached": {
"type": "boolean",
"const": true
},
"cost_usd": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"request_id": {
"type": "string"
}
},
"required": [
"mode",
"results",
"cost_usd",
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence