Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 2 of 2 tools scored. Lowest: 3.9/5.

Server CoherenceA
Disambiguation5/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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness4/5

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 tools
search_newsNews SearchA
Read-only
Inspect

Search news articles using APITube News API with comprehensive filtering.

IMPORTANT INSTRUCTIONS FOR QUERY CONSTRUCTION:

  1. DO NOT use dots in parameter names directly in the root object. Use nested objects instead.

  2. The system will automatically convert nested objects to dot notation for the API. Example: Use { language: { code: "en" } } instead of { "language.code": "en" }.

  3. For multiple values in one parameter, use COMMA separation (e.g., "en,ru,fr" for multiple languages).

  4. Integer filters (has_*, is_*) accept ONLY 0 or 1 (e.g., has_image=1, is_duplicate=0).

  5. Date format: ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).

  6. Sentiment scores range: -1.0 (negative) to 1.0 (positive).

  7. Default sorting: published_at DESC (newest first).

  8. Unknown parameters are rejected with an error (-32602) instead of being silently ignored — check the spelling against the list below.

  9. 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:

  • 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"}}

ParametersJSON Schema
NameRequiredDescriptionDefault
flNoComma-separated fields to return (dot-notation supported), e.g. "id,title,source.name,sentiment.overall.score".
hlNoEnable highlighting (true) or object form.
pageNoPage number (default 1).
sortNo
brandNo
eventNo
facetNoEnable faceting (true) or object form for analytics.
mediaNoMedia-content filter.
titleNoSearch by article title. Up to 3 keywords comma-separated (OR). Phrase in quotes for exact match.
topicNo
authorNo
entityNoNamed-entity filter.
ignoreNoExclusion filters — exclude articles matching these. Mirror the positive filters.
personNo
sourceNoSource filter.
diseaseNo
categoryNoIPTC category filter.
disasterNo
industryNo
languageNoLanguage filter.
locationNo
per_pageNoResults per page (default 10). One response carries at most 25 articles.
has_imageNoArticles with at least one image.
has_videoNoArticles with at least one video.
read_timeNoReading time in minutes.
sentimentNoSentiment filter. Scores range -1.0..1.0.
has_authorNoHas an attributed author.
is_paywallNo0 to exclude paywalled content.
is_breakingNoBreaking news only.
is_duplicateNo0 to exclude duplicates.
is_long_readNoRead time >= 5 minutes.
organizationNo
published_atNoPublication date range (ISO 8601).
has_hq_imagesNoHigh-quality images (width >= 1200px).
is_media_richNoBoth images and videos.
is_short_readNoRead time < 3 minutes.
is_premium_sourceNoPremium sources (OPR >= 6).
is_verified_sourceNoVerified sources (OPR >= 5).
Behavior1/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 IDsA
Read-only
Inspect

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" } })

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesWhich taxonomy to autocomplete.
prefixYesName or prefix to search, e.g. "Tesla", "Elon", "spo".
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    7
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Real-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.
    4
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Real-time crypto news aggregation with sentiment scores and token mentions, enabling market analysis and trading signals via pay-per-call micropayments.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.