newsapi-ai-mcp
MCP server for newsapi.ai (Event Registry): search and read news articles and events from ~150k sources worldwide, with URI resolution, token usage, and a raw API escape hatch.
newsapi_search_articles— search articles by keywords, concepts, categories, sources, locations, language, dates, sentiment, and source importance; supports Advanced Query Language passthrough.newsapi_get_articles— fetch full text and metadata by article URI (up to 100) or original URL (up to 20).newsapi_search_events— search events (cross-language clusters of articles about the same real-world happening), sortable by date, relevance, size, or social score.newsapi_get_event— get one event's details plus its top/central articles.newsapi_suggest— resolve names to the URIs needed by other tools: concepts, sources, source groups, categories, locations, authors.newsapi_usage— check remaining and used API tokens on the current plan.newsapi_raw_request— POST arbitrary parameters to any/api/v1/…endpoint (aggregations, trends, minute stream); API key added automatically.All tools are read-only; results are trimmed to compact JSON to save context unless
response_format: "raw"is passed, and searches can be capped to the last 7 or 31 days to reduce token cost.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@newsapi-ai-mcpfind recent news articles about AI regulation in the US"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Article search: keywords, concepts, categories, sources, locations, language, dates, sentiment, source rank; Advanced Query Language passthrough |
| Full text + metadata by article URI or original URL |
| Event search (articles clustered by real-world happening, cross-language) |
| Event details + top articles |
| Resolve names → URIs (concepts, sources, source groups, categories, locations, authors) |
| Remaining API tokens |
| Escape hatch: any |
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 | |
| your newsapi.ai API key |
|
|
| API host, default |
| path of the config file, default |
| 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.jsonKey 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 |
|
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-mcpClaude 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 8787Endpoint:
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 usehttps://your-host/mcp?token=<MCP_AUTH_TOKEN>.Optional per-client API key: header
X-NewsAPI-KeyoverridesNEWSAPI_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 .envnews-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.mdor the system prompt
Development
npm install
npm test # builds, then runs an end-to-end test (stdio + HTTP) against a mock APIReleases: 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 toolsnewsapi_get_articlesGet full articlesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| uris | No | Article URIs as returned by newsapi_search_articles. | |
| urls | No | Original article URLs – mapped to URIs first (only works for articles in the index). | |
| body_chars | No | -1 = full body (default), 0 = none. | |
| result_lang | No | ||
| response_format | No | compact (default): trimmed, token-friendly JSON. raw: the unmodified API response. | compact |
| include_concepts | No |
TDQS
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.
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.
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.
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.
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.
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 detailsBRead-onlyIdempotent
Details for one event (summary, concepts, location) plus optionally its top articles.
| Name | Required | Description | Default |
|---|---|---|---|
| event_uri | Yes | Event URI, e.g. eng-1234567 | |
| body_chars | No | ||
| result_lang | No | ||
| articles_lang | No | Only articles in these languages (ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho). | |
| articles_count | No | Number of articles to include (0 = none). | |
| response_format | No | compact (default): trimmed, token-friendly JSON. raw: the unmodified API response. | compact |
| articles_sort_by | No | cosSim = most central to the event. | cosSim |
TDQS
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.
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.
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.
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.
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.
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 requestARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Endpoint path, e.g. /api/v1/article/getArticles | |
| params | No | JSON body parameters (without apiKey). |
TDQS
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.
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.
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.
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.
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.
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 articlesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language filter, ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho. | |
| page | No | ||
| count | No | Results per page, max 100. | |
| sort_by | No | date (newest first), rel (relevance), sourceImportance, … | date |
| date_end | No | Latest publishing date, YYYY-MM-DD. | |
| keywords | No | Keyword(s) or phrase(s) to search for. | |
| sort_asc | No | ||
| data_type | No | Content types. Default: news only. | |
| days_back | No | Convenience: sets date_start to today minus N days (ignored if date_start is set). | |
| body_chars | No | Characters of article body to return: 0 = none, -1 = full text. Default 300. | |
| date_start | No | Earliest publishing date, YYYY-MM-DD. | |
| result_lang | No | Preferred language for concept labels (eng, deu, …). | |
| source_uris | No | Source URIs (usually domains like heise.de, theverge.com) – via newsapi_suggest kind=sources. | |
| concept_uris | No | Concept URIs (Wikipedia URLs) – get them via newsapi_suggest kind=concepts. | |
| event_filter | No | Filter by whether articles were clustered into an event. | |
| category_uris | No | Category URIs, e.g. dmoz/Computers/Artificial_Intelligence or news/Technology – via newsapi_suggest kind=categories. | |
| location_uris | No | Content about these locations (Wikipedia URLs) – via newsapi_suggest kind=locations. | |
| max_sentiment | No | ||
| min_sentiment | No | Min sentiment -1..1 (only English content has sentiment). | |
| advanced_query | No | Advanced 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_keywords | No | Exclude results mentioning any of these keywords. | |
| response_format | No | compact (default): trimmed, token-friendly JSON. raw: the unmodified API response. | compact |
| concept_operator | No | ||
| duplicate_filter | No | Syndicated copies of the same article. Default skipDuplicates. | skipDuplicates |
| include_concepts | No | Include extracted concepts (entities) per article. | |
| keyword_location | No | Where keywords must appear: body (default), title (high precision), or body,title. | |
| keyword_operator | No | Whether ALL (and) or ANY (or) keywords must match. | and |
| source_group_uris | No | Source group URIs (curated lists such as top news sources) – via newsapi_suggest kind=source_groups. | |
| ignore_source_uris | No | Exclude these sources. | |
| include_categories | No | ||
| keyword_search_mode | No | phrase (default): words of a phrase near each other; exact: exact match; simple: words anywhere. | |
| source_location_uris | No | Only sources based in these locations (Wikipedia URLs, e.g. http://en.wikipedia.org/wiki/Germany). | |
| end_source_rank_percentile | No | 10..100 step 10; e.g. 30 = only the top 30% most important sources. | |
| force_max_data_time_window | No | Restrict search to the last 7 or 31 days. Cheaper: queries reaching beyond 31 days consume more tokens (archive). | |
| start_source_rank_percentile | No | 0..90 step 10; 0 = most important sources. |
TDQS
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.
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.
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.
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.
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.
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 eventsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language filter, ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho. | |
| page | No | ||
| count | No | Max 50. | |
| sort_by | No | size = number of articles. | date |
| date_end | No | Latest publishing date, YYYY-MM-DD. | |
| keywords | No | Keyword(s) or phrase(s) to search for. | |
| sort_asc | No | ||
| days_back | No | Convenience: sets date_start to today minus N days (ignored if date_start is set). | |
| date_start | No | Earliest publishing date, YYYY-MM-DD. | |
| result_lang | No | Preferred language for titles/summaries (eng, deu, …). | |
| source_uris | No | Source URIs (usually domains like heise.de, theverge.com) – via newsapi_suggest kind=sources. | |
| concept_uris | No | Concept URIs (Wikipedia URLs) – get them via newsapi_suggest kind=concepts. | |
| min_articles | No | Only events with at least N articles. | |
| category_uris | No | Category URIs, e.g. dmoz/Computers/Artificial_Intelligence or news/Technology – via newsapi_suggest kind=categories. | |
| location_uris | No | Content about these locations (Wikipedia URLs) – via newsapi_suggest kind=locations. | |
| max_sentiment | No | ||
| min_sentiment | No | Min sentiment -1..1 (only English content has sentiment). | |
| summary_chars | No | ||
| advanced_query | No | Advanced Query Language object; replaces simple filters. | |
| ignore_keywords | No | Exclude results mentioning any of these keywords. | |
| response_format | No | compact (default): trimmed, token-friendly JSON. raw: the unmodified API response. | compact |
| concept_operator | No | ||
| keyword_location | No | Where keywords must appear: body (default), title (high precision), or body,title. | |
| keyword_operator | No | Whether ALL (and) or ANY (or) keywords must match. | and |
| source_group_uris | No | Source group URIs (curated lists such as top news sources) – via newsapi_suggest kind=source_groups. | |
| ignore_source_uris | No | Exclude these sources. | |
| keyword_search_mode | No | phrase (default): words of a phrase near each other; exact: exact match; simple: words anywhere. | |
| source_location_uris | No | Only sources based in these locations (Wikipedia URLs, e.g. http://en.wikipedia.org/wiki/Germany). | |
| force_max_data_time_window | No | Restrict search to the last 7 or 31 days. Cheaper: queries reaching beyond 31 days consume more tokens (archive). |
TDQS
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.
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.
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.
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.
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.
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 URIsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| lang | No | Language of the prefix/labels (ISO 639-2 three-letter codes, e.g. eng, deu, fra, spa, ita, zho). For concepts/locations. | eng |
| count | No | ||
| prefix | Yes | Name or beginning of the name, e.g. 'Siemens', 'heise', 'Artificial Int' |
TDQS
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.
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.
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.
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.
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.
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 usageARead-onlyIdempotent
Show how many newsapi.ai API tokens are available and used on the current plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.0- First observed
newsapi_get_articles - First observed
newsapi_get_event - First observed
newsapi_raw_request - First observed
newsapi_search_articles - First observed
newsapi_search_events - First observed
newsapi_suggest - First observed
newsapi_usage
TDQS
Scored across 7 tools
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.
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.
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.
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
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
- AlicenseNot gradedqualityAmaintenanceA 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 npm2MIT
- FlicenseNot gradedqualityDmaintenanceLocal 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.-
- AlicenseAqualityBmaintenanceConnect 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 available345 npmMIT
- AlicenseBqualityCmaintenanceMCP 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.16MIT