
Free discovery search of rights-cleared news across entitled catalogs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a downloadable SimpleFeed export file (JSON, CSV, or Markdown) and return an https resource_link for that file. Does not count against search quota.
Full export text (JSON, CSV, or Markdown).
Download filename, including extension (.json, .csv, .md).
MIME type, e.g. application/json, text/csv, text/markdown.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a downloadable SimpleFeed export file (JSON, CSV, or Markdown) and return an https resource_link for that file. Does not count against search quota.
| Argument | Type | Description |
|---|---|---|
| content* | string | Full export text (JSON, CSV, or Markdown). |
| filename* | string | Download filename, including extension (.json, .csv, .md). |
| mime_type | string | MIME type, e.g. application/json, text/csv, text/markdown. |
{
"type": "object",
"required": [
"filename",
"content"
],
"properties": {
"content": {
"type": "string",
"description": "Full export text (JSON, CSV, or Markdown)."
},
"filename": {
"type": "string",
"description": "Download filename, including extension (.json, .csv, .md)."
},
"mime_type": {
"type": "string",
"description": "MIME type, e.g. application/json, text/csv, text/markdown."
}
}
}Return Free Discovery plan and search quota remaining. Does not increment search quota.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Fetch one article by content_id and publisher_identifier (metadata only; no full body). Does not count against Free Discovery search query quota. May record a delivery audit entry for this account.
| Argument | Type | Description |
|---|---|---|
| content_id* | string | Article content_id from search results. |
| publisher_identifier* | string | Publisher catalog id (e.g. adweek). |
{
"type": "object",
"required": [
"content_id",
"publisher_identifier"
],
"properties": {
"content_id": {
"type": "string",
"description": "Article content_id from search results."
},
"publisher_identifier": {
"type": "string",
"description": "Publisher catalog id (e.g. adweek)."
}
}
}Return one bookmark snapshot if saved. Does not count against search quota.
| Argument | Type | Description |
|---|---|---|
| content_id* | string | |
| publisher_identifier* | string |
{
"type": "object",
"required": [
"content_id",
"publisher_identifier"
],
"properties": {
"content_id": {
"type": "string"
},
"publisher_identifier": {
"type": "string"
}
}
}Return articles saved (bookmarked) for this account. Does not count against search quota.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max bookmarks to return (default 100, max 200). |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"description": "Max bookmarks to return (default 100, max 200)."
}
}
}Return publishers available for Free Discovery (id, name, description, description_short, domain, logo_url). Does not count against quota.
| Argument | Type | Description |
|---|---|---|
| q | string | Optional case-insensitive filter on id, name, description, or domain. |
| limit | integer | Optional max number of publishers to return. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Optional case-insensitive filter on id, name, description, or domain."
},
"limit": {
"type": "integer",
"description": "Optional max number of publishers to return."
}
}
}Remove an article from this account's bookmarks. Does not count against search quota.
| Argument | Type | Description |
|---|---|---|
| content_id* | string | |
| publisher_identifier* | string |
{
"type": "object",
"required": [
"content_id",
"publisher_identifier"
],
"properties": {
"content_id": {
"type": "string"
},
"publisher_identifier": {
"type": "string"
}
}
}Save an article to this account's bookmarks for later review/export. Does not count against search quota. Upserts by content_id + publisher and overwrites any previous snapshot for that article. Remove with remove_bookmark.
| Argument | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| summary | string | |
| entities | array | |
| language | string | |
| has_image | boolean | |
| has_video | boolean | |
| categories | array | |
| content_id* | string | |
| media_type | string | |
| publish_date |
Search articles and content on the Free Discovery plan. Returns metadata only (no full article body). Each call increments the monthly Free Discovery search quota (100 queries/month).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of articles to return. Default: 10. Results are ordered by similarity score (highest first) |
| query | string | Semantic search query to find relevant articles. Supports natural language queries (e.g., 'Taylor Swift', 'NFL playoffs', 'climate change policy') |
| cursor | string | Opaque pagination cursor from a previous response next_cursor. Continues within the top-100 candidate window. |
| recent | object | Recent mode: {since_ts: epoch seconds, take: int} or {days_back: int, take: int}. If both are provided, since_ts takes precedence. |
| filters | object | Optional metadata filters to narrow search results. Available fields: category (string), categories (array), language (string), sentiment (string), media_type (string), has_image/has_video/has_audio (boolean), length_words/length_chars/duration_seconds (number), publish_date_ts (number timestamp), keywords (array), entities (array). Operators: $eq (equals), $ne (not equals), $gt/$gte/$lt/$lte (numeric), $in/$nin (array match), $exists (field presence), $and/$or (logical). Examples: {"category": "sports"}, {"has_video": true}, {"$and":[{"publish_date_ts":{"$gte":1704067200}}]}, {"$and":[{"categories": {"$in": ["sports", "news"]}}]}, {"$and": [{"category": "sports"}, {"has_image": true}]}. Filters evaluated during vector search. |
| threshold |
Search Free Discovery catalogs and return an interactive research widget (MCP App). Results contain article metadata only, without the full article body. Counts against the monthly Free Discovery search quota.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of articles to return. Default: 10. Results are ordered by similarity score (highest first) |
| query | string | Semantic search query to find relevant articles. Supports natural language queries (e.g., 'Taylor Swift', 'NFL playoffs', 'climate change policy') |
| cursor | string | Opaque pagination cursor from a previous response next_cursor. |
| recent | object | Recent mode: {since_ts: epoch seconds, take: int} or {days_back: int, take: int}. If both are provided, since_ts takes precedence. |
| filters | object | Optional metadata filters to narrow search results. Available fields: category (string), categories (array), language (string), sentiment (string), media_type (string), has_image/has_video/has_audio (boolean), length_words/length_chars/duration_seconds (number), publish_date_ts (number timestamp), keywords (array), entities (array). Operators: $eq (equals), $ne (not equals), $gt/$gte/$lt/$lte (numeric), $in/$nin (array match), $exists (field presence), $and/$or (logical). |
| threshold | number | Similarity score threshold (0.0-1.0). Only returns articles with similarity scores above this value. Lower values = stricter matching. Default: 1.0 (returns all matches) |
| string |
| summary_short | string |
| thumbnail_url | string |
| publisher_name | string |
| publisher_identifier* | string |
{
"type": "object",
"required": [
"content_id",
"publisher_identifier"
],
"properties": {
"url": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"entities": {
"type": "array",
"items": {
"type": "string"
}
},
"language": {
"type": "string"
},
"has_image": {
"type": "boolean"
},
"has_video": {
"type": "boolean"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"content_id": {
"type": "string"
},
"media_type": {
"type": "string"
},
"publish_date": {
"type": "string"
},
"summary_short": {
"type": "string"
},
"thumbnail_url": {
"type": "string"
},
"publisher_name": {
"type": "string"
},
"publisher_identifier": {
"type": "string"
}
}
}| number |
| Similarity score threshold (0.0-1.0). Only returns articles with similarity scores above this value. Lower values = stricter matching. Default: 1.0 (returns all matches) |
| publishers | array | Optional array of lowercase publisher identifiers to narrow the search (e.g. adweek, billboard). Omit to search all publishers available on Free Discovery. |
| query_vector | array | Optional precomputed embedding vector. If provided, retrieval uses this vector directly instead of generating one from query. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"description": "Maximum number of articles to return. Default: 10. Results are ordered by similarity score (highest first)"
},
"query": {
"type": "string",
"description": "Semantic search query to find relevant articles. Supports natural language queries (e.g., 'Taylor Swift', 'NFL playoffs', 'climate change policy')"
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous response next_cursor. Continues within the top-100 candidate window."
},
"recent": {
"type": "object",
"description": "Recent mode: {since_ts: epoch seconds, take: int} or {days_back: int, take: int}. If both are provided, since_ts takes precedence."
},
"filters": {
"type": "object",
"description": "Optional metadata filters to narrow search results. Available fields: category (string), categories (array), language (string), sentiment (string), media_type (string), has_image/has_video/has_audio (boolean), length_words/length_chars/duration_seconds (number), publish_date_ts (number timestamp), keywords (array), entities (array). Operators: $eq (equals), $ne (not equals), $gt/$gte/$lt/$lte (numeric), $in/$nin (array match), $exists (field presence), $and/$or (logical). Examples: {\"category\": \"sports\"}, {\"has_video\": true}, {\"$and\":[{\"publish_date_ts\":{\"$gte\":1704067200}}]}, {\"$and\":[{\"categories\": {\"$in\": [\"sports\", \"news\"]}}]}, {\"$and\": [{\"category\": \"sports\"}, {\"has_image\": true}]}. Filters evaluated during vector search."
},
"threshold": {
"type": "number",
"description": "Similarity score threshold (0.0-1.0). Only returns articles with similarity scores above this value. Lower values = stricter matching. Default: 1.0 (returns all matches)"
},
"publishers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional array of lowercase publisher identifiers to narrow the search (e.g. adweek, billboard). Omit to search all publishers available on Free Discovery."
},
"query_vector": {
"type": "array",
"items": {
"type": "number"
},
"description": "Optional precomputed embedding vector. If provided, retrieval uses this vector directly instead of generating one from query."
}
}
}| publishers | array | Optional array of lowercase publisher identifiers to narrow the search (e.g. adweek, billboard). Omit to search all publishers available on Free Discovery. |
| query_vector | array | Optional precomputed embedding vector. If provided, retrieval uses this vector directly instead of generating one from query. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"description": "Maximum number of articles to return. Default: 10. Results are ordered by similarity score (highest first)"
},
"query": {
"type": "string",
"description": "Semantic search query to find relevant articles. Supports natural language queries (e.g., 'Taylor Swift', 'NFL playoffs', 'climate change policy')"
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous response next_cursor."
},
"recent": {
"type": "object",
"description": "Recent mode: {since_ts: epoch seconds, take: int} or {days_back: int, take: int}. If both are provided, since_ts takes precedence."
},
"filters": {
"type": "object",
"description": "Optional metadata filters to narrow search results. Available fields: category (string), categories (array), language (string), sentiment (string), media_type (string), has_image/has_video/has_audio (boolean), length_words/length_chars/duration_seconds (number), publish_date_ts (number timestamp), keywords (array), entities (array). Operators: $eq (equals), $ne (not equals), $gt/$gte/$lt/$lte (numeric), $in/$nin (array match), $exists (field presence), $and/$or (logical)."
},
"threshold": {
"type": "number",
"description": "Similarity score threshold (0.0-1.0). Only returns articles with similarity scores above this value. Lower values = stricter matching. Default: 1.0 (returns all matches)"
},
"publishers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional array of lowercase publisher identifiers to narrow the search (e.g. adweek, billboard). Omit to search all publishers available on Free Discovery."
},
"query_vector": {
"type": "array",
"items": {
"type": "number"
},
"description": "Optional precomputed embedding vector. If provided, retrieval uses this vector directly instead of generating one from query."
}
}
}