APITube News
Server Details
Real-time news search across 500,000+ sources in 60+ languages with sentiment and entities.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- apitube/news-api-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 2 of 2 tools scored. Lowest: 3.9/5.
search_news and suggest have clearly distinct purposes: one performs complex news searches with extensive filtering, the other resolves taxonomy IDs for use in search_news. There is no overlap or ambiguity between the two tools.
search_news follows a verb_noun pattern, while suggest is just a bare verb. This is a minor deviation but still readable and predictable, as both are imperative verbs.
Only two tools is on the thin side, but the search_news tool is extremely comprehensive, covering all search, filtering, pagination, faceting, and highlighting needs. The suggest tool is a necessary complement, so the count is borderline but not unreasonable.
The domain is news search, and search_news covers searching, filtering, sorting, pagination, faceting, highlighting, and field selection. The only potential gap is a dedicated get-by-ID tool, but this may not be needed since search_news can retrieve full article bodies via the fl parameter. Overall the lifecycle is complete for a read-only search API.
Available Tools
2 toolssearch_newsNews SearchARead-onlyInspect
Search news articles using APITube News API with comprehensive filtering.
IMPORTANT INSTRUCTIONS FOR QUERY CONSTRUCTION:
DO NOT use dots in parameter names directly in the root object. Use nested objects instead.
The system will automatically convert nested objects to dot notation for the API. Example: Use { language: { code: "en" } } instead of { "language.code": "en" }.
For multiple values in one parameter, use COMMA separation (e.g., "en,ru,fr" for multiple languages).
Integer filters (has_*, is_*) accept ONLY 0 or 1 (e.g., has_image=1, is_duplicate=0).
Date format: ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
Sentiment scores range: -1.0 (negative) to 1.0 (positive).
Default sorting: published_at DESC (newest first).
Unknown parameters are rejected with an error (-32602) instead of being silently ignored — check the spelling against the list below.
By default the response returns id, title, href, published_at, description and source.domain. The article body is NOT included — request it explicitly with fl (e.g. fl: "title,href,body").
AVAILABLE PARAMETERS:
Content Search
title: Search by article title (supports up to 3 keywords with comma separation) IMPORTANT: a title search covers at most a 31-day published_at window. Omit the dates and the last 31 days are searched; pass a range wider than 31 days and the call fails with 400 ER0110. To cover a longer period, make one call per month-sized window.
ignore: { title: "keyword" } - Exclude articles with specific titles
Languages (60+ supported)
language: { code: "en,ru,fr" } - Filter by language codes (up to 3)
ignore: { language: { code: "fr" } } - Exclude specific languages
Categories (IPTC taxonomy)
category: { id: "medtop:04000000" } - Filter by category ID (up to 3)
ignore: { category: { id: "315" } } - Exclude categories
Topics
topic: { id: "crypto_news,climate_change" } - Filter by topic ID (up to 3)
ignore: { topic: { id: "2" } } - Exclude topics
Industries
industry: { id: "246771,246772" } - Filter by industry ID (up to 3)
ignore: { industry: { id: "246772" } } - Exclude industries
Entities
entity: { id: "1278268,1282301" } - Filter by entity ID (up to 3)
ignore: { entity: { id: "315" } } - Exclude entities
Persons
person: { name: "Elon Musk,Tim Cook" } - Filter by person name (up to 3)
ignore: { person: { name: "John Doe" } } - Exclude persons
Locations
location: { name: "Tokyo,New York" } - Filter by location (up to 3)
ignore: { location: { name: "Paris" } } - Exclude locations
Organizations
organization: { name: "Tesla,Apple,Google" } - Filter by organization (up to 3)
ignore: { organization: { name: "Microsoft" } } - Exclude organizations
Disasters
disaster: { name: "Earthquake,Tsunami" } - Filter by disaster type (up to 3)
ignore: { disaster: { name: "Flood" } } - Exclude disasters
Diseases
disease: { name: "COVID-19,Influenza" } - Filter by disease (up to 3)
ignore: { disease: { name: "Flu" } } - Exclude diseases
Events
event: { name: "Olympics,World Cup" } - Filter by event (up to 3)
ignore: { event: { name: "Super Bowl" } } - Exclude events
Brands
brand: { name: "Nike,Adidas" } - Filter by brand (up to 3)
ignore: { brand: { name: "Puma" } } - Exclude brands
Authors
author: { id: "123,456" } - Filter by author ID (up to 3)
author: { name: "John Doe,Jane Smith" } - Filter by author name (up to 3)
ignore: { author: { id: "789" } } - Exclude author IDs
ignore: { author: { name: "Bob Jones" } } - Exclude author names
has_author: 1 - Articles with attributed authors (0 for without)
Sentiment Analysis
sentiment: { overall: { score: { min: 0.5, max: 1.0 } } } - Sentiment score range
sentiment: { overall: { polarity: "positive" | "negative" | "neutral" } } - Sentiment polarity
sentiment: { title: { score: { min: -1.0, max: 1.0 } } } - Title sentiment
sentiment: { body: { score: { min: -1.0, max: 1.0 } } } - Body sentiment
sentiment: { mixed: 1 } - Articles with mixed sentiment (title/body differ)
sentiment: { consistent: 1 } - Articles with consistent sentiment
Media Content
media: { images: { count: { min: 2, max: 10 } } } - Filter by image count
media: { videos: { count: { min: 1 } } } - Filter by video count
media: { images: { width: { min: 1200, max: 1920 } } } - Filter by image width
media: { images: { height: { min: 800, max: 1080 } } } - Filter by image height
has_image: 1 - Articles with at least one image
has_video: 1 - Articles with at least one video
has_hq_images: 1 - Articles with high-quality images (width >= 1200px)
is_media_rich: 1 - Articles with both images and videos
Source Filtering
source: { id: "314,315" } - Filter by source ID (up to 3)
source: { domain: "cnn.com,bbc.com" } - Filter by domain (up to 3)
source: { country: { code: "us,uk,de" } } - Filter by country (up to 3)
source: { rank: { opr: { min: 0.5, max: 0.9 } } } - OpenPageRank range (0-7)
source: { bias: "left,center,right" } - Filter by media bias (up to 3)
ignore: { source: { id: "315" } } - Exclude source IDs
ignore: { source: { domain: "example.com" } } - Exclude domains
ignore: { source: { country: { code: "fr" } } } - Exclude countries
ignore: { source: { bias: "left" } } - Exclude biases
is_premium_source: 1 - Premium sources (OPR >= 6)
is_verified_source: 1 - Verified sources (OPR >= 5, not duplicates)
Date/Time Filtering
published_at: { start: "2024-01-01", end: "2024-01-31" } - Date range
published_at: "2024-09-26" - Specific date
Supported formats: YYYY-MM-DD, YYYY-MM-DDTHH:MM:SSZ, DD-MM-YYYY, RFC3339
Max 31 days between start and end WHEN the same call also searches titles (title, ignore.title patterns or query); a wider range returns 400 ER0110. Without a title filter the range is unlimited.
An open-ended start ({ start: "2024-01-01" } with no end) runs to the current time, so with a title filter it exceeds the window too — always pair an archive start with an end date.
Sorting
sort: { by: "published_at" | "created_at" | "source.rank.opr" | "read_time" | "sentences_count" | "paragraphs_count" | "characters_count" | "sentiment.overall.score" | "sentiment.title.score" | "sentiment.body.score" | "media.images.count" | "media.videos.count" | "media.images.width.min" | "media.images.width.max" | "media.images.height.min" | "media.images.height.max" | "media_richness" | "relevance" | "engagement" | "quality" | "controversy" | "trust" }
sort: { order: "asc" | "desc" }
Advanced sorting: relevance (search ranking), engagement (viral potential), quality (editorial), controversy (polarization), trust (credibility)
Pagination
page: 1 - Page number (default: 1)
per_page: 10 - Results per page (default: 10). One response carries at most 25 articles, so a larger per_page is clamped to 25 — use page to walk through more.
Content Filters
is_duplicate: 0 - Exclude duplicates (0=unique, 1=include duplicates)
is_paywall: 0 - Exclude paywalled content (0=free, 1=paywall)
is_breaking: 1 - Breaking news only
read_time: { min: 1, max: 10 } - Filter by reading time (minutes)
is_long_read: 1 - Articles with read time >= 5 minutes
is_short_read: 1 - Articles with read time < 3 minutes
Field Selection (fl)
Default (no fl): id, title, href, published_at, description, source.domain — body excluded
fl: "id,title,source.name,published_at" - Return only specific fields
fl: "title,href,body" - Ask for the full article text explicitly when you need to read it
Supports nested fields with dot notation: source.name, sentiment.overall.score
Faceting
facet: true - Enable faceting
facet: { field: "source.id,language.id,sentiment.overall.polarity", limit: 20, mincount: 5 }
Supported facet fields: source.id, source.country.id, source.bias, category.id, topic.id, industry.id, language.id, author.id, sentiment.*.polarity, is_duplicate, is_free, is_important, media.images.count, media.videos.count, read_time, published.year, published.month, published.day_of_week, published.hour
Range Faceting
facet: { range: { field: "published_at", start: "2024-01-01", end: "2024-12-31", gap: "1MONTH" } }
facet: { range: { field: "sentiment.overall.score", start: -1, end: 1, gap: 0.25 } }
Date gaps: 1HOUR, 1DAY, 1WEEK, 1MONTH, 1YEAR
Numeric gaps: 0.1, 0.25, 0.5, 1, 5, 10
Highlighting
hl: true - Enable highlighting
hl: { fl: "title,description,body", fragsize: 300, snippets: 5, tag: { pre: "", post: "" } }
Auto-expands search terms using synonyms and morphology
QUERY BUILDING EXAMPLES:
Basic search: {title: "Bitcoin", language: {code: "en"}}
Sentiment analysis: {organization: {name: "Tesla"}, sentiment: {overall: {polarity: "positive"}}}
High-quality sources: {source: {rank: {opr: {min: 0.7}}}, is_verified_source: 1}
Date range (no title filter, so any width): {published_at: {start: "2024-01-01", end: "2024-12-31"}}
Title search over an archive month: {title: "Bitcoin", published_at: {start: "2024-01-01", end: "2024-01-31"}}
Multiple filters: {title: "AI", organization: {name: "Google,Microsoft"}, language: {code: "en"}, is_breaking: 1}
With media: {has_image: 1, media: {images: {count: {min: 2}}}}
Sorted by engagement: {sort: {by: "engagement", order: "desc"}}
With faceting: {facet: true, facet: {field: "source.id,language.id", limit: 10}}
With highlighting: {title: "innovation", hl: true, hl: {fl: "title,body"}}
Breaking news: {is_breaking: 1, sort: {by: "published_at"}}
Long-form quality: {is_long_read: 1, sort: {by: "quality", order: "desc"}}
| Name | Required | Description | Default |
|---|---|---|---|
| fl | No | Comma-separated fields to return (dot-notation supported), e.g. "id,title,source.name,sentiment.overall.score". | |
| hl | No | Enable highlighting (true) or object form. | |
| page | No | Page number (default 1). | |
| sort | No | ||
| brand | No | ||
| event | No | ||
| facet | No | Enable faceting (true) or object form for analytics. | |
| media | No | Media-content filter. | |
| title | No | Search by article title. Up to 3 keywords comma-separated (OR). Phrase in quotes for exact match. | |
| topic | No | ||
| author | No | ||
| entity | No | Named-entity filter. | |
| ignore | No | Exclusion filters — exclude articles matching these. Mirror the positive filters. | |
| person | No | ||
| source | No | Source filter. | |
| disease | No | ||
| category | No | IPTC category filter. | |
| disaster | No | ||
| industry | No | ||
| language | No | Language filter. | |
| location | No | ||
| per_page | No | Results per page (default 10). One response carries at most 25 articles. | |
| has_image | No | Articles with at least one image. | |
| has_video | No | Articles with at least one video. | |
| read_time | No | Reading time in minutes. | |
| sentiment | No | Sentiment filter. Scores range -1.0..1.0. | |
| has_author | No | Has an attributed author. | |
| is_paywall | No | 0 to exclude paywalled content. | |
| is_breaking | No | Breaking news only. | |
| is_duplicate | No | 0 to exclude duplicates. | |
| is_long_read | No | Read time >= 5 minutes. | |
| organization | No | ||
| published_at | No | Publication date range (ISO 8601). | |
| has_hq_images | No | High-quality images (width >= 1200px). | |
| is_media_rich | No | Both images and videos. | |
| is_short_read | No | Read time < 3 minutes. | |
| is_premium_source | No | Premium sources (OPR >= 6). | |
| is_verified_source | No | Verified sources (OPR >= 5). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: The description states 'Unknown parameters are rejected with an error (-32602) instead of being silently ignored,' which directly contradicts the openWorldHint=true annotation that implies the parameter set is open and may accept additional unknown properties. Although readOnlyHint=true is consistent with the search behavior, the open-world contradiction forces a score of 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very long but well-structured with clear headers, numbered instructions, parameter groups, and examples. Given the 38 parameters and the need to convey nesting rules and API-specific constraints, the length is largely justified, though it could be trimmed by linking to reference docs for some exhaustive enumerations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 38 parameters, no output schema, and a single sibling, the description is remarkably complete. It covers defaults, edge cases (31-day window, open-ended start with title), error codes, pagination limits, facet ranges, highlighting, and multiple query building examples, leaving little ambiguity about tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description goes far beyond the schema by explaining nested object usage, comma separation, integer filter constraints, ISO 8601 date formats, the 31-day title window, default fields returned (body excluded), per_page clamping, and detailed sort/facet/highlight semantics. Even with 71% schema coverage, the description substantially enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Search news articles using APITube News API with comprehensive filtering,' which uses a specific verb and resource and clearly states the tool's scope. The extensive parameter breakdown and examples further distinguish it from the sibling tool 'suggest'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive context on how to construct queries, including the 31-day window for title searches, default sorting, and explicit instructions to make one call per month for longer periods. However, it does not directly compare to the sibling tool 'suggest' or state when to prefer this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggestResolve Taxonomy IDsARead-onlyInspect
Resolve a name or prefix to APITube taxonomy IDs so you can use them in the search_news tool's filters.
The search_news tool's most precise filters require IDs you cannot guess:
entity.id — numeric (persons, organizations, locations, brands, events...)
category.id — IPTC slug, e.g. "medtop:04000000"
topic.id — slug
industry.id — numeric
Use this tool FIRST to look those IDs up, then pass them into search_news.
USAGE:
type: which taxonomy to autocomplete — one of "entities", "categories", "topics", "industries".
prefix: the name (or its beginning) to search, e.g. "Tesla", "Elon", "spo".
Returns an array of matches; take the id of the best match and put it into search_news:
suggest({ type: "entities", prefix: "Tesla" }) → [{ id: 12345, name: "Tesla, Inc.", ... }]
search_news({ entity: { id: "12345" } })
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Which taxonomy to autocomplete. | |
| prefix | Yes | Name or prefix to search, e.g. "Tesla", "Elon", "spo". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having readOnlyHint and openWorldHint annotations, the description adds substantial behavioral detail: it states the return type (array of matches), instructs the user to pick the best match's ID, and illustrates the output-to-input flow with inline examples. This goes well beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but highly structured: purpose, why needed, usage instructions, and a concrete example. Every sentence earns its place—no filler or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description fully compensates by showing the exact return structure and a complete usage example. It explains the different taxonomy ID formats and how to integrate with the sibling tool, making the whole workflow comprehensible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters with descriptions, so baseline is 3. The description adds value by providing concrete enum examples ('entities', 'categories', etc.) and prefix examples ('Tesla', 'Elon', 'spo'), plus explaining how the returned ID should be used in search_news.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Resolve') and identifies the exact resource (APITube taxonomy IDs) plus the downstream purpose (use in search_news filters). It clearly distinguishes this tool from its sibling search_news by explaining that this is a lookup step, not a search step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Use this tool FIRST' and explains why (IDs cannot be guessed), with detailed guidance on which `type` values map to which ID formats. It also gives a concrete example of passing the result into search_news, making the intended workflow unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables access to real-time news articles through search, topic headlines, full story coverage, and geo-based local news across multiple countries and languages using the Real Time News Data API.7MIT
- Alicense-qualityCmaintenanceProvides news sentiment scores, media volume trends, and historical coverage data for any topic, enabling AI to analyze positive or negative coverage over time.1MIT
- AlicenseBqualityFmaintenanceReal-time cryptocurrency news, analysis, and price predictions for AI agents. 5 tools to search 50,000+ articles across 12 categories, filter by 120+ asset tickers, and access content with built-in attribution. Free with attribution. SSE and Streamable HTTP transport.4MIT
- Alicense-qualityDmaintenanceReal-time crypto news aggregation with sentiment scores and token mentions, enabling market analysis and trading signals via pay-per-call micropayments.MIT