Skip to main content
Glama
elcamino

newsapi-ai-mcp

by elcamino

newsapi-ai-mcp

MCP server for newsapi.ai (Event Registry): search news articles and events from ~150k sources worldwide — from Claude (Code, Desktop, claude.ai), Codex, OpenCode, Cursor or any other MCP client. Ships with an Agent Skill that teaches agents how to query the API well (and how to fall back to plain curl where no MCP is available).

Tools

Tool

What it does

newsapi_search_articles

Article search: keywords, concepts, categories, sources, locations, language, dates, sentiment, source rank; Advanced Query Language passthrough

newsapi_get_articles

Full text + metadata by article URI or original URL

newsapi_search_events

Event search (articles clustered by real-world happening, cross-language)

newsapi_get_event

Event details + top articles

newsapi_suggest

Resolve names → URIs (concepts, sources, source groups, categories, locations, authors)

newsapi_usage

Remaining API tokens

newsapi_raw_request

Escape hatch: any /api/v1/… endpoint (aggregations, trends, minute stream)

Results are trimmed to compact JSON (snippets instead of full bodies, flattened labels) to save context; pass response_format: "raw" for the untouched API response.

Related MCP server: AI News MCP

Configuration

Variable

NEWSAPI_AI_KEY

your newsapi.ai API key

NEWSAPI_AI_MAX_DAYS

7 or 31: hard cap, never query older data (archive queries cost more tokens)

NEWSAPI_AI_HOST

API host, default https://eventregistry.org

NEWSAPI_AI_CONFIG

path of the config file, default ~/.config/newsapi-ai-mcp/config.json

MCP_AUTH_TOKEN

HTTP mode only: bearer token clients must send

Instead of environment variables you can use a config file — handy for GUI apps, which on macOS don't see variables from ~/.zshrc:

mkdir -p ~/.config/newsapi-ai-mcp && chmod 700 ~/.config/newsapi-ai-mcp
echo '{"apiKey": "your-key", "maxDays": 31}' > ~/.config/newsapi-ai-mcp/config.json
chmod 600 ~/.config/newsapi-ai-mcp/config.json

Key lookup order: plugin settings → NEWSAPI_AI_KEY → config file. Empty values and unexpanded ${…} placeholders are skipped.

Claude Code: one-step plugin (MCP server + skill)

This repo is also a Claude Code plugin marketplace. The plugin installs the MCP server and the skill together:

/plugin install newsapi-ai --marketplace elcamino/newsapi-ai-mcp

(older Claude Code: /plugin marketplace add elcamino/newsapi-ai-mcp, then /plugin install newsapi-ai@elcamino)

During installation Claude Code shows a settings dialog:

Setting

newsapi.ai API key

stored in the system credential store (macOS Keychain), never in a settings file

Limit searches to recent news

off / 31 / 7 days

Change them later with /plugin configure newsapi-ai@elcamino (or /plugin → Installed → newsapi-ai). From a shell: claude plugin install newsapi-ai@elcamino --config api_key=… --config max_days=31. Restart the session after changing settings.

Claude Cowork / desktop chat: these don't show plugin settings dialogs. The plugin still loads there; put the key into the config file (see Configuration) instead.

Install — local (stdio)

Alternatives to npx -y newsapi-ai-mcp: npx -y github:elcamino/newsapi-ai-mcp (latest main) or node /path/to/newsapi-ai-mcp/dist/index.js (after npm install in a checkout).

Claude Code

claude mcp add newsapi-ai -s user -e NEWSAPI_AI_KEY=your-key -- npx -y newsapi-ai-mcp

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "newsapi-ai": {
      "command": "npx",
      "args": ["-y", "newsapi-ai-mcp"],
      "env": { "NEWSAPI_AI_KEY": "your-key" }
    }
  }
}

Codex CLI — ~/.codex/config.toml

[mcp_servers.newsapi-ai]
command = "npx"
args = ["-y", "newsapi-ai-mcp"]
env = { NEWSAPI_AI_KEY = "your-key" }

OpenCode — opencode.json (project) or ~/.config/opencode/opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "newsapi-ai": {
      "type": "local",
      "command": ["npx", "-y", "newsapi-ai-mcp"],
      "environment": { "NEWSAPI_AI_KEY": "{env:NEWSAPI_AI_KEY}" },
      "enabled": true
    }
  }
}

Cursor / Windsurf / Cline / Zed / anything else: same command + args + env triple in that client's MCP config.

Install — remote (Streamable HTTP)

For claude.ai custom connectors, Claude mobile, or sharing one server across machines:

NEWSAPI_AI_KEY=your-key MCP_AUTH_TOKEN=$(openssl rand -hex 32) \
  npx -y newsapi-ai-mcp --http --host 0.0.0.0 --port 8787
  • Endpoint: https://your-host/mcp (health check: /health). Stateless, POST only.

  • Auth: Authorization: Bearer <MCP_AUTH_TOKEN>; clients that can't set headers (e.g. a claude.ai custom connector) can use https://your-host/mcp?token=<MCP_AUTH_TOKEN>.

  • Optional per-client API key: header X-NewsAPI-Key overrides NEWSAPI_AI_KEY.

  • Run it behind TLS (Caddy, Traefik, Cloudflare Tunnel).

Docker + Caddy:

docker compose up -d   # see docker-compose.yml, put NEWSAPI_AI_KEY / MCP_AUTH_TOKEN in .env
news-mcp.example.com {
  reverse_proxy newsapi-ai-mcp:8787
}

Then in claude.ai: Settings → Connectors → Add custom connector → URL https://news-mcp.example.com/mcp?token=….

Remote config for other clients, e.g. Claude Code:

claude mcp add --transport http newsapi-ai https://news-mcp.example.com/mcp --header "Authorization: Bearer …"

The skill

skills/newsapi-ai/ is a standard SKILL.md folder:

  • Claude Code: comes with the plugin above; or copy to ~/.claude/skills/newsapi-ai/

  • claude.ai / Desktop: zip the folder and upload it under Settings → Capabilities → Skills (claude.ai skills also sync into Claude Code sessions signed in with a claude.ai account)

  • Codex / OpenCode / others with Agent Skills support: put it in the client's skills directory; otherwise paste it into AGENTS.md or the system prompt

Development

npm install
npm test        # builds, then runs an end-to-end test (stdio + HTTP) against a mock API

Releases: bump version in package.json and src/index.ts, push a tag vX.Y.Z — the GitHub workflow tests and publishes to npm (needs the NPM_TOKEN repo secret).

MIT License.

Available Tools

7 tools
newsapi_get_articlesGet full articlesA
Read-onlyIdempotent

Fetch full details (complete body text, authors, concepts, categories) for articles by their newsapi.ai URI (from search results) or by original article URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urisNoArticle URIs as returned by newsapi_search_articles.
urlsNoOriginal article URLs – mapped to URIs first (only works for articles in the index).
body_charsNo-1 = full body (default), 0 = none.
result_langNo
response_formatNocompact (default): trimmed, token-friendly JSON. raw: the unmodified API response.compact
include_conceptsNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety semantics are covered. The description adds useful content-level context (that a full body text is returned, not a summary), but says nothing about auth requirements, rate limits, or what happens when a URL cannot be mapped to an indexed article.

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?

A single sentence that front-loads the verb and resource, then lists the lookup mechanisms and returned fields. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by naming the returned fields. It is nearly complete, lacking only guidance on batching limits and partial-failure behavior for URLs not in the index.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, so the schema already documents uris, urls, body_chars and response_format. The description reinforces the two lookup keys but adds nothing about result_lang, include_concepts, or the practical caps (100 URIs / 20 URLs), so it neither compensates for nor extends the schema meaningfully.

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?

States a specific verb (fetch) and resource (full articles) plus the two lookup keys (newsapi.ai URI from search results, or original article URL), and enumerates the payload (body text, authors, concepts, categories). This clearly separates it from newsapi_search_articles, which returns the URIs this tool consumes.

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 parenthetical '(from search results)' establishes the intended workflow: run newsapi_search_articles first, then hydrate results here. There is no explicit when-not guidance or mention of the sibling alternatives (e.g. when to prefer raw_request), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_get_eventGet event detailsB
Read-onlyIdempotent

Details for one event (summary, concepts, location) plus optionally its top articles.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_uriYesEvent URI, e.g. eng-1234567
body_charsNo
result_langNo
articles_langNoOnly articles in these languages (ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho).
articles_countNoNumber of articles to include (0 = none).
response_formatNocompact (default): trimmed, token-friendly JSON. raw: the unmodified API response.compact
articles_sort_byNocosSim = most central to the event.cosSim

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds useful substance by naming the returned fields (summary, concepts, location) and the optional article inclusion, but says nothing about payload size, language fallback, or cost of pulling articles.

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?

A single front-loaded sentence that names the resource first and the optional add-on second, with no filler. It is appropriately sized, though it is arguably too thin given the seven parameters it governs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description's list of returned fields is genuinely valuable and covers the main shape of the response. However it leaves the two undocumented parameters (notably body_chars and its -1 sentinel) and any language behaviour unaddressed, which is thin for a seven-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71% and the description adds no parameter meaning at all. Two parameters are undocumented even in the schema — body_chars (whose minimum of -1 is unexplained and whose effect on the 'summary' is unstated) and result_lang — so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Details for one event') and enumerates the payload (summary, concepts, location, plus optional articles), which separates it from newsapi_search_events at a glance. It does not explicitly name a sibling, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative; the reader must infer from 'one event' that this follows a search and takes an event_uri. 'Optionally its top articles' hints at the articles_count parameter but is not framed as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_raw_requestRaw newsapi.ai requestA
Read-only

Escape hatch: POST arbitrary parameters to any newsapi.ai endpoint under /api/v1/ (e.g. /api/v1/article/getArticles with resultType=conceptTrends, /api/v1/minuteStreamArticles, /api/v1/trends). The API key is added automatically. Prefer the dedicated tools when they fit.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesEndpoint path, e.g. /api/v1/article/getArticles
paramsNoJSON body parameters (without apiKey).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true and idempotentHint=false, so safety and scope are partly covered. The description adds genuinely useful behavior beyond that: the API key is injected automatically (so no auth param is needed) and the path is constrained to the /api/v1/ namespace. It does not mention rate limits or explain why the operation is not idempotent, which keeps it short of a 5.

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?

Two sentences, zero waste. The escape-hatch nature and the endpoint scope are front-loaded, and the routing advice comes last where it is most actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an intentionally open-ended passthrough tool with only two parameters and no output schema, the description covers identity, scope, auth handling and routing to siblings. It could say a bit more about what a caller gets back or how errors surface for invalid paths, but nothing essential for correct invocation is missing.

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?

Schema description coverage is 100%, so the baseline is 3. The description goes further by showing what a valid path looks like and demonstrating a body parameter in context (resultType=conceptTrends), which is meaningful guidance for the free-form 'params' object that the schema can only describe as an unconstrained map.

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 states a specific mechanism (POST arbitrary parameters to any newsapi.ai endpoint under /api/v1/) and gives three concrete endpoint examples including one with a query-style parameter. It explicitly differentiates itself from the sibling tools by framing itself as an 'escape hatch' and telling the agent to prefer dedicated tools when they fit.

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?

It gives a clear when-not rule: 'Prefer the dedicated tools when they fit,' which tells the agent this is the fallback for endpoints/parameters the dedicated tools don't cover. What's missing is an explicit mapping of which sibling covers which endpoint (e.g. that getArticles maps to newsapi_search_articles), so the agent must infer that from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_search_articlesSearch news articlesA
Read-onlyIdempotent

Search ~150k news/blog/press-release sources worldwide (newsapi.ai / Event Registry). Filter by keywords, concepts, categories, sources, locations, language and date. For entities (companies, people, places) prefer concept_uris over keywords – resolve them first with newsapi_suggest. Each call consumes API tokens; queries older than 31 days cost more. Returns compact results unless response_format=raw.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage filter, ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho.
pageNo
countNoResults per page, max 100.
sort_byNodate (newest first), rel (relevance), sourceImportance, …date
date_endNoLatest publishing date, YYYY-MM-DD.
keywordsNoKeyword(s) or phrase(s) to search for.
sort_ascNo
data_typeNoContent types. Default: news only.
days_backNoConvenience: sets date_start to today minus N days (ignored if date_start is set).
body_charsNoCharacters of article body to return: 0 = none, -1 = full text. Default 300.
date_startNoEarliest publishing date, YYYY-MM-DD.
result_langNoPreferred language for concept labels (eng, deu, …).
source_urisNoSource URIs (usually domains like heise.de, theverge.com) – via newsapi_suggest kind=sources.
concept_urisNoConcept URIs (Wikipedia URLs) – get them via newsapi_suggest kind=concepts.
event_filterNoFilter by whether articles were clustered into an event.
category_urisNoCategory URIs, e.g. dmoz/Computers/Artificial_Intelligence or news/Technology – via newsapi_suggest kind=categories.
location_urisNoContent about these locations (Wikipedia URLs) – via newsapi_suggest kind=locations.
max_sentimentNo
min_sentimentNoMin sentiment -1..1 (only English content has sentiment).
advanced_queryNoAdvanced Query Language object, e.g. {"$query":{"$and":[{"keyword":"AI"},{"$or":[{"sourceUri":"heise.de"},{"sourceUri":"golem.de"}]}]},"$filter":{"isDuplicate":"skipDuplicates"}}. If given, it REPLACES all simple filters above (except sort/paging/output options).
ignore_keywordsNoExclude results mentioning any of these keywords.
response_formatNocompact (default): trimmed, token-friendly JSON. raw: the unmodified API response.compact
concept_operatorNo
duplicate_filterNoSyndicated copies of the same article. Default skipDuplicates.skipDuplicates
include_conceptsNoInclude extracted concepts (entities) per article.
keyword_locationNoWhere keywords must appear: body (default), title (high precision), or body,title.
keyword_operatorNoWhether ALL (and) or ANY (or) keywords must match.and
source_group_urisNoSource group URIs (curated lists such as top news sources) – via newsapi_suggest kind=source_groups.
ignore_source_urisNoExclude these sources.
include_categoriesNo
keyword_search_modeNophrase (default): words of a phrase near each other; exact: exact match; simple: words anywhere.
source_location_urisNoOnly sources based in these locations (Wikipedia URLs, e.g. http://en.wikipedia.org/wiki/Germany).
end_source_rank_percentileNo10..100 step 10; e.g. 30 = only the top 30% most important sources.
force_max_data_time_windowNoRestrict search to the last 7 or 31 days. Cheaper: queries reaching beyond 31 days consume more tokens (archive).
start_source_rank_percentileNo0..90 step 10; 0 = most important sources.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent, so the bar is lowered, and the description still adds real behavioral context: token consumption per call, higher cost for archive queries beyond 31 days, and the default compact vs raw response shape. It does not describe pagination limits or rate limits, but the added cost/return-shape disclosure is substantive.

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?

Four tight sentences: scope first, then filtering, then the entity-resolution rule, then cost and return-format caveats. No filler, and the most decision-relevant facts are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 35-parameter tool with no output schema, the description covers scope, key filtering dimensions, the resolution workflow for URI parameters, cost implications and return format. It omits guidance on the advanced_query override interaction with simple filters and on pagination depth, but is otherwise sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already documents nearly every parameter, including that source_uris/concept_uris come from newsapi_suggest. The description's URI-resolution advice largely repeats what the schema already says, so it adds little beyond the baseline.

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?

States a specific verb (search) and resource (news articles) with concrete scope: ~150k sources, filterable by keywords, concepts, categories, sources, locations, language and date. It also implicitly distinguishes itself from newsapi_suggest, which it names as the prerequisite for entity resolution.

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?

Gives actionable routing guidance: prefer concept_uris over keywords for entities and resolve them first with newsapi_suggest. Adds a cost-aware usage rule (each call consumes tokens; queries older than 31 days cost more). It does not, however, say when to use this vs newsapi_search_events, so it stops short of explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_search_eventsSearch news eventsA
Read-onlyIdempotent

Search events: clusters of articles (often across languages) reporting on the same real-world happening. Good for 'what happened around X' and for spotting stories with broad coverage. Same filters as article search.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage filter, ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho.
pageNo
countNoMax 50.
sort_byNosize = number of articles.date
date_endNoLatest publishing date, YYYY-MM-DD.
keywordsNoKeyword(s) or phrase(s) to search for.
sort_ascNo
days_backNoConvenience: sets date_start to today minus N days (ignored if date_start is set).
date_startNoEarliest publishing date, YYYY-MM-DD.
result_langNoPreferred language for titles/summaries (eng, deu, …).
source_urisNoSource URIs (usually domains like heise.de, theverge.com) – via newsapi_suggest kind=sources.
concept_urisNoConcept URIs (Wikipedia URLs) – get them via newsapi_suggest kind=concepts.
min_articlesNoOnly events with at least N articles.
category_urisNoCategory URIs, e.g. dmoz/Computers/Artificial_Intelligence or news/Technology – via newsapi_suggest kind=categories.
location_urisNoContent about these locations (Wikipedia URLs) – via newsapi_suggest kind=locations.
max_sentimentNo
min_sentimentNoMin sentiment -1..1 (only English content has sentiment).
summary_charsNo
advanced_queryNoAdvanced Query Language object; replaces simple filters.
ignore_keywordsNoExclude results mentioning any of these keywords.
response_formatNocompact (default): trimmed, token-friendly JSON. raw: the unmodified API response.compact
concept_operatorNo
keyword_locationNoWhere keywords must appear: body (default), title (high precision), or body,title.
keyword_operatorNoWhether ALL (and) or ANY (or) keywords must match.and
source_group_urisNoSource group URIs (curated lists such as top news sources) – via newsapi_suggest kind=source_groups.
ignore_source_urisNoExclude these sources.
keyword_search_modeNophrase (default): words of a phrase near each other; exact: exact match; simple: words anywhere.
source_location_urisNoOnly sources based in these locations (Wikipedia URLs, e.g. http://en.wikipedia.org/wiki/Germany).
force_max_data_time_windowNoRestrict search to the last 7 or 31 days. Cheaper: queries reaching beyond 31 days consume more tokens (archive).

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and determinism are covered. The description adds the cross-language nature of event clusters, which hints at multilingual results, but says nothing about pagination, result shape, or the token cost implied by the archive window.

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?

Three short sentences, front-loaded with the definition of an event before the use-case hint. No filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 29-parameter, no-output-schema tool this is thin: the agent gets a definition of events but no sense of the returned structure (clusters, summaries, counts) or the practical cost/pagination considerations. The schema carries parameter detail, but the description leaves notable gaps for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents nearly all 29 parameters, including the time-window and filter semantics. The description only says filters are the same as article search, adding no new parameter meaning, which matches the baseline for high coverage.

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?

States a specific verb (search) and resource (events), and uniquely defines the resource as 'clusters of articles (often across languages) reporting on the same real-world happening.' This definition is what lets an agent distinguish it from newsapi_search_articles, which is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers usage context ('good for what happened around X' and spotting broad coverage), which is helpful but not a routing decision. It never states when to prefer this over newsapi_search_articles or newsapi_get_event, so the agent must infer the choice from the definition of an event.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_suggestResolve names to URIsA
Read-onlyIdempotent

Autocomplete names to the URIs that the search tools need: concepts (people, organisations, places, topics → Wikipedia URI), sources (news outlets → domain URI), source_groups, categories, locations, authors. Call this BEFORE filtering by entity, source or category.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
langNoLanguage of the prefix/labels (ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho). For concepts/locations.eng
countNo
prefixYesName or beginning of the name, e.g. 'Siemens', 'heise', 'Artificial Int'

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, so safety is covered. The description adds the important precondition that this is a lookup that feeds downstream filters, but says nothing about result format, how many results, or failure behavior when a prefix has no match. With annotations covering the profile, a 3 is appropriate.

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?

Tight and front-loaded: the core purpose is stated first, then the enumerated kinds, then the ordering instruction. Slightly long in the enumeration but every clause is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for an autocomplete-resolve tool: it names every kind, the URI target, and the sequencing relative to search tools. No output schema exists, but for a lookup tool the missing piece (what a result looks like / how many) is minor given annotations cover read-only open-world behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%; 'lang', 'count', and 'prefix' are documented in-schema (with examples), but 'kind' only appears as an enum in the schema with no in-description explanation. The description does list the concept/source/etc. values but does not map them to the 'kind' parameter, so it adds marginal value over the schema. Baseline 3.

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 states a specific verb (resolve/autocomplete) and resource (names → URIs) and enumerates exactly what each 'kind' resolves to (concepts→Wikipedia, sources→domain). It distinguishes itself from all siblings, which are search/retrieval tools that consume these URIs.

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?

Explicitly says 'Call this BEFORE filtering by entity, source or category,' which tells the agent the ordering constraint relative to the search tools. That is the key when-to-use guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsapi_usageAPI token usageA
Read-onlyIdempotent

Show how many newsapi.ai API tokens are available and used on the current plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered. The description adds genuine value beyond them by stating what the call reports — token availability and consumption scoped to the current plan — which the annotations do not 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?

A single, front-loaded sentence that states the resource and scope with zero filler. Nothing is wasted and nothing essential is omitted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must hint at the return content, and it does so by naming token availability, consumption and plan scope. It stops short of specifying the exact fields or units returned, but for a zero-parameter reporting tool this is close to complete.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly implies no input is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Show') and a precise resource (newsapi.ai API tokens available and used on the current plan). This clearly differentiates it from retrieval siblings like newsapi_search_articles and newsapi_get_event, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a quota-check tool to consult before or after making requests. There is no explicit statement of when to call it versus alternatives, nor any prerequisites, so it lands at the minimum-viable level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observednewsapi_get_articles
    • First observednewsapi_get_event
    • First observednewsapi_raw_request
    • First observednewsapi_search_articles
    • First observednewsapi_search_events
    • First observednewsapi_suggest
    • First observednewsapi_usage

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a distinct purpose: search_articles vs search_events target articles vs clusters, get_articles vs get_event fetch details for each, and suggest/usage/raw_request are clearly separate meta/helper tools. Boundaries are well-drawn, and raw_request is explicitly labeled as a fallback for cases the dedicated tools don't cover.

Naming Consistency4/5

All tools share a clean newsapi_ prefix with snake_case and mostly verb_noun structure (search_articles, search_events, get_articles, get_event, suggest, raw_request). newsapi_usage is noun-only and breaks the verb pattern slightly, but overall the convention is predictable.

Tool Count5/5

Seven tools is a well-scoped surface for a news search API, covering search, retrieval, discovery/autocomplete, usage, and an escape hatch without redundancy. Each tool earns its place.

Completeness4/5

The lifecycle is well covered: query (search_articles/events), retrieve full details (get_articles/get_event), resolve entities/sources (suggest), monitor quota (usage), and extend via raw_request. Some higher-level analytics (e.g. trends, concept trends) require the raw escape hatch rather than dedicated tools, a minor gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

  • The only News based AI MCP your agents will ever need — custom categories, global regions, and time-scoped results in one tool. We use multi-vector & sparse-hybrid search to search through thousands of articles across the world to find the exact news you're looking for.

  • Real-time corroborated news events + 5-year archive, for agents. Free tier, no key.

  • AiSeek is a global change-intelligence platform that connects AI assistants and autonomous agents to structured, source-linked information about developments across the world. Rather than providing a conventional news feed, AiSeek focuses on identifying meaningful changes, preserving their context, and making the underlying sources accessible. What a source says (fact) is kept apart from what it may mean (hypothesis). Coverage spans artificial intelligence, technology, global economics, financial markets, companies, government policy, science, and other major domains. The MCP server provides eleven read-only tools. Changes and context: • latest_changes — Browse the newest published changes, newest first, 20 per page. • search_changes — Find changes by keywords such as a company, country, or subject, ranked by relevance. • get_change — Read one change in full: summary, scores, main subject, and the sources that reported it (outlet, link, date). • country_heat — Country-level Change Heat: how much verified change happened in each country (amount of change, not danger), with history windows set by the plan. • release_calendar — Scheduled economic indicators, central bank decisions, company earnings, and other upcoming releases. • company — Look up a company by its AiSeek slug, or search companies by name, with profile, listings, and recent changes. • latest_brief — The latest daily or weekly briefing. SeekTrace evidence records: • get_receipt — The evidence receipt behind a change: how firmly each statement is supported, which evidence it rests on, when it was recorded, and its revision history. • verify_receipt — Recompute a receipt's fingerprint to confirm the record has not been altered since it was issued. • change_history — A change as it was known on a past date, kept apart from what is known now. • recent_corrections — Recently corrected evidence and the published changes it affected. A receipt is a record of how AiSeek assessed the evidence at a given time, not a certificate that a statement is true. Sources that merely repeat one another count once, and a source that cannot be shown to be independent is never presented as independent. Responses carry source names and links, never quoted passages. AiSeek supports English, Simplified Chinese, and Japanese, making it suitable for multilingual research, global monitoring, market intelligence, and cross-border information discovery. All tools are read-only. No trading, account modifications, or external actions are performed. Tool calls require an AiSeek API key, sent as a Bearer token or in the x-api-key header. Usage limits and history depend on the account's plan: the Free plan includes 100 MCP calls a day, and history goes back 7 days on Free, 30 on Pro, 90 on Intelligence, and 180 on Developer. MCP Endpoint: https://aiseek.dev/api/v1/mcp Developer Documentation: https://aiseek.dev/en/developers#mcp

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A Model Context Protocol (MCP) server that provides real-time news intelligence using NewsAPI.ai. This server enables LLMs to search articles, track events, and analyze news through natural conversation.
    26 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Local MCP server that ingests and normalizes recent AI, tech, and research news from multiple sources, exposing tools for media agents to query and retrieve article content on demand.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Connect AI agents to real-time financial news covering global markets, geopolitics, and company-level events. Search and filter articles by ticker, source, country, and language; every article includes sentiment scores and tagged company entities with tickers and ISINs. Remote server with standard OAuth 2.0, works out of the box with Claude, ChatGPT, Cursor, and any MCP client. Free tier available
    3
    45 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server that fetches, ranks, and summarizes global news from 28 RSS sources across 12 categories, exposing 16 tools for LLMs to query technology, AI, finance, politics, and more.
    16
    MIT