MCP NewsAPI.ai
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., "@MCP NewsAPI.ai search recent news about Tesla earnings"
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.
MCP NewsAPI.ai
A Model Context Protocol (MCP) server for NewsAPI.ai (the Event Registry news intelligence API). It lets AI assistants like Claude search news articles and events (clusters of articles about the same happening), resolve names to entity URIs, see what is trending, and keep an eye on the account's token budget.
Built and maintained by Nubiia — automatización e integraciones con IA para negocios (MCP, Holded, Pipedrive y más). ¿Quieres algo así para tu empresa? Escríbenos en nubiia.es.
⚠️ NewsAPI.ai is metered in tokens
Every search spends tokens from your plan, and a free plan has a small budget. This server is built to be frugal:
Result counts default to 10 (articles/events) and article bodies to 300 characters, so a call is cheap in tokens and in your assistant's context window.
Searches are limited to the last 31 days unless you pass
allow_archive: true(historical data costs extra tokens per year touched).allow_archiverequiresdate_startand thedate_start→date_end(default: today) range may span at most 1 year. Adate_start/date_endolder than 31 days withoutallow_archiveis rejected with an explanation instead of silently returning nothing.A search with no filter at all is rejected locally, before it can spend anything.
A session token budget (default 200 tokens, see below) stops runaway loops before they reach the API.
The
suggest_*tools andget_usageare free — use them to resolve entities to URIs before searching.get_usageshows the remaining budget.
Costs measured against a live account (31-day window):
Tool | Tokens per call |
| 1 |
| 5 |
| 1 |
| 10 |
| 0 |
Plans and pricing change — see newsapi.ai/pricing and
docs/api-notes.md.
Related MCP server: TheNewsAPI MCP Server
Features
Ten read-only tools:
Articles (2):
search_articles,get_articleEvents (2):
search_events,get_eventAutosuggest (4):
suggest_concepts,suggest_categories,suggest_sources,suggest_locationsTrends (1):
get_trending_conceptsAccount (1):
get_usage
Total: 10 tools, all marked readOnlyHint: true — nothing in this server writes to
NewsAPI.ai or anywhere else.
What's deliberately out of scope for v1
Topic pages and saved searches, the analytics service (text categorization, sentiment
of arbitrary text), story clustering, article mentions, aggregation result types
(conceptAggr, timeAggr, …) and multi-tenant configuration.
Installation
Prerequisites
Node.js 22.14 or higher
A NewsAPI.ai account and API key, from newsapi.ai → Dashboard
Install from npm
npm install -g @nubiia/mcp-newsapiInstall from source
git clone https://github.com/nubiia-dev/mcp-newsapi.git
cd mcp-newsapi
npm install
npm run buildConfiguration
Environment Variables
Variable | Required | Description |
| Yes | Your NewsAPI.ai API key (Dashboard). Secret — never commit it. |
| No | Max NewsAPI.ai tokens this server may spend per session (until the server process restarts). Default 200. |
export NEWSAPI_AI_API_KEY=your_newsapi_ai_key
export NEWSAPI_AI_MAX_TOKENS_PER_SESSION=200 # optionalSession token budget
The budget is per server process: each MCP client/server instance you start has its own counter, so two clients configured with 200 can together spend 400. It resets on restart.
Every call is charged its measured token cost (see the table above) before it is
sent. When a call would exceed the remaining budget, the tool returns an error stating the
remaining and total budget and how to raise it — and no request is sent to NewsAPI.ai.
Free tools (suggest_*, get_usage) are never blocked. get_usage also reports the
session budget (maxTokens, spentTokens, remainingTokens) next to your account
balance. Calls the API rejects outright (4xx) are refunded; calls that fail after being
accepted (including HTTP 200 {"error"} bodies) stay charged, because the API bills them.
An invalid value (e.g. abc, -5) falls back to 200 with a warning on stderr; 0
disables all paid calls.
Claude Desktop Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"newsapi": {
"command": "npx",
"args": ["-y", "@nubiia/mcp-newsapi@latest"],
"env": {
"NEWSAPI_AI_API_KEY": "your_newsapi_ai_key",
"NEWSAPI_AI_MAX_TOKENS_PER_SESSION": "200"
}
}
}
}Or if installed from source:
{
"mcpServers": {
"newsapi": {
"command": "node",
"args": ["/path/to/mcp-newsapi/dist/index.js"],
"env": {
"NEWSAPI_AI_API_KEY": "your_newsapi_ai_key"
}
}
}
}Claude Code Configuration
claude mcp add newsapi --env NEWSAPI_AI_API_KEY=your_newsapi_ai_key -- npx -y @nubiia/mcp-newsapi@latestTroubleshooting
sh: mcp-newsapi: command not foundwhen launching from inside this repo. If you start Claude Code (or another MCP client) from the cloned repository directory,npx @nubiia/mcp-newsapiresolves the localpackage.jsoninstead of the published package, and themcp-newsapibinary is not on thePATH. Pin the registry version with@latest(as in the examples above), or launch the client from another directory.
Tools
List parameters (lang, concept_uris, category_uris, source_uris, location_uris,
ignore_source_uris, data_types, types, concept_types) accept either a single string
or an array of strings: "lang": "spa" and "lang": ["spa"] are equivalent.
The recommended flow: suggest_* (free) → search_* → get_*.
suggest_concepts · read-only · free
Resolve a name ("Telefónica", "Pedro Sánchez") to a concept URI. Pass the uri as
concept_uris to a search — far more precise than a keyword.
{ "prefix": "Telefónica", "types": ["org"], "count": 3 }Searching for a company, person, place or organisation? Resolve it with
suggest_conceptsfirst and pass the returneduriasconcept_uris.keywordis for free terms and topics and is noisy with common words: for examplekeyword: "Telefónica"in Spanish also matches the ordinary adjective "telefónica".
suggest_categories, suggest_sources, suggest_locations · read-only · free
Same idea for categories (news/Business), publications (bbc.co.uk) and places.
search_articles · read-only · 1 token
At least one of keyword, concept_uris, category_uris, source_uris,
location_uris is required. Defaults: 10 results, newest first, duplicates skipped,
last 31 days, 300-character bodies. Paginate with page; the response carries total
and pages.
{
"concept_uris": ["http://en.wikipedia.org/wiki/Telefónica"],
"lang": ["spa"],
"date_start": "2026-10-01",
"count": 5
}Dates must be real YYYY-MM-DD dates, date_end must not precede date_start, and the
archive rules above apply (allow_archive needs date_start, max 1 year).
Other options: keyword_loc, keyword_search_mode, ignore_keyword,
ignore_source_uris, data_types (news/pr/blog), sort_by
(date/rel/sourceImportance/cosSim), min_sentiment/max_sentiment,
body_len, include_duplicates, allow_archive.
get_article · read-only · 1 token
One article by article_uri, with a longer body (body_len, default 3000).
search_events · read-only · 5 tokens
Events: clusters of articles about the same happening, with title, short summary, date,
location, key concepts and article count. The right granularity for "what is happening
with X". sort_by: "size" surfaces the biggest stories; min_articles_in_event filters
noise.
get_event · read-only · 5 tokens (1 with include_articles)
One event by event_uri, or — with include_articles: true — the articles covering it.
get_trending_concepts · read-only · 10 tokens
People, organisations and places trending right now (last 2 days vs last 2 weeks) in
news, social, pr or blog (blog trends may be unavailable on some plans, and the failed call is still billed). The priciest tool: call it sparingly.
get_usage · read-only · free
availableTokens, usedTokens, remainingTokens. Check it before a batch of searches.
Rate limiting
A local guard stops runaway agent loops before they drain the token budget:
Tool(s) | Limit |
| 30 req/min |
| 20 req/min |
| 120 req/min |
Everything else (default) | 60 req/min |
The API itself allows at most 5 simultaneous requests. 429/502/503/504 responses
and connection-refused/DNS errors are retried with backoff; ambiguous failures (timeouts,
connection resets) are not, because a metered request may already have been billed.
Each attempt times out after 30 seconds.
Error messages
A 401/403 response includes an explanation, not just "Unauthorized": the key may be
wrong/revoked, or the account may be out of tokens (get_usage tells you which).
The API key is sent in the request body, never in a URL, and is redacted from every error
message (HTTP, network and JSON-parse errors alike).
Development
npm install
npm run build
npm test # runs entirely against mocks — no network, no API key
npm run test:coverage
npm run lintSee CONTRIBUTING.md for the full workflow and
docs/api-notes.md for API behaviour verified against a live account.
License
Related
@nubiia/mcp-holded— MCP server for the Holded invoicing/accounting API.@nubiia/mcp-signaturit— MCP server for the Signaturit e-signature API.
Available Tools
10 toolsget_articleARead-only
Get one article by its URI (the uri returned by search_articles), with a longer body (body_len, default 3000 chars). Cost: 1 token per call. Use after search_articles when you need to read the article rather than just its headline.
Inputs: article_uri (required), body_len.
get_eventARead-only
Get one event by URI (the uri from search_events, e.g. "eng-1234567"). Returns its summary info by default; set include_articles=true to instead list the articles covering it (paginated, default 5 per page, body truncated to body_len). Cost: 5 tokens (info view) or 1 (articles view), measured live.
Inputs: event_uri (required), body_len, articles_page, articles_count, +1 more.
get_trending_conceptsARead-only
Get the concepts (people, organisations, places) that are trending right now in the news — computed by comparing mentions in the last 2 days against the last 2 weeks. Use source to switch between news, social, pr and blog (blog trends are not computed on every plan: the API then answers "not computed" and the call is still billed). Defaults to the top 10 people/organisations/places in news. Cost: 10 tokens per call regardless of count (measured live) - the priciest tool, use sparingly.
Inputs: count, source, concept_types.
get_usageARead-only
Get the token budget of this NewsAPI.ai account: tokens available, used and remaining for the current period. Call it before a batch of searches (measured costs: search_articles and get_article 1 token, search_events and get_event info 5, get_trending_concepts 10). Free: does not consume tokens itself. Suggest tools are free too. Also reports this server’s session budget (NEWSAPI_AI_MAX_TOKENS_PER_SESSION, default 200): calls that would exceed it fail locally without reaching the API.
Inputs: no named parameters.
search_articlesARead-only
Search news articles (NewsAPI.ai / Event Registry). Cost: 1 token per call (measured live) when limited to the last 31 days (the default); querying the historical archive (allow_archive=true) costs extra tokens per year touched. At least one of keyword / concept_uris / category_uris / source_uris / location_uris is required. Prefer concept_uris (from suggest_concepts, which is free) over free-text keyword for any company, person, place or organisation: keyword is for free terms/topics and is noisy with common words (e.g. "Telefónica" also matches the Spanish adjective "telefónica"), so resolve entities with suggest_concepts first and pass concept_uris. Results are compact: title, truncated body (body_len, default 300 chars), url, source, date, sentiment. Defaults to 10 results, newest first, duplicates skipped. Paginate with page; check total and pages in the response.
Inputs: lang, page, count, keyword, +18 more.
search_eventsARead-only
Search news EVENTS: clusters of articles about the same real-world happening, with a title, summary, date, location, key concepts and article count. Best for "what is happening with X" — one event replaces dozens of near-duplicate articles. Cost: 5 tokens (measured live) per call within the last 31 days (default); allow_archive=true costs extra per year touched. At least one of keyword / concept_uris / category_uris / source_uris / location_uris is required. Defaults to 10 events, newest first; use sort_by="size" for the biggest stories. Use get_event for details on one. For companies, people, places or organisations, resolve them with suggest_concepts first and pass concept_uris; keyword is for free terms/topics and is noisy with common words (e.g. "Telefónica" also matches the Spanish adjective "telefónica").
Inputs: lang, page, count, keyword, +11 more.
suggest_categoriesARead-only
Resolve a topic name to category URIs (e.g. "news/Business", "dmoz/Sports/Soccer"). Pass the uri as category_uris to search_articles / search_events. Does not consume search tokens.
Inputs: prefix (required), page, count.
suggest_conceptsARead-only
Resolve a name to concept URIs (people, organisations, places, Wikipedia topics). Pass the returned uri as concept_uris to search_articles / search_events — much more precise than a keyword. Does not consume search tokens. Sorted by prominence in the news; check type and label to pick the right homonym.
Inputs: prefix (required), lang, page, count, +1 more.
suggest_locationsARead-only
Resolve a city or country name to a location URI. Pass the uri as location_uris to search_articles / search_events to find news that happened there. Does not consume search tokens.
Inputs: prefix (required), lang, page, count.
suggest_sourcesARead-only
Resolve a publication name or domain to news source URIs (e.g. "bbc.co.uk"). Pass the uri as source_uris to search_articles / search_events. Does not consume search tokens.
Inputs: prefix (required), page, count, data_types.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a distinct role: search vs. get for articles/events, resolver tools for different filter types, usage, and trending. search_articles and search_events overlap conceptually but are clearly differentiated by article-level vs. event-cluster results. The descriptions make selection boundaries explicit.
All names use snake_case and predictable verb_noun phrasing: get_*, search_*, suggest_*, and get_usage/get_trending_concepts. The resolver family is especially consistent. No mixed conventions or vague names.
Ten tools is well-scoped for a news search API. The set covers article/event retrieval, entity/filter resolution, trending concepts, and account usage without obvious redundancy. Each tool earns its place.
The surface covers core news workflows: searching articles/events, retrieving full details, resolving all major query filters, checking trending concepts, and monitoring token usage. Minor gaps exist, such as no direct historical trend/timeline tool or source/category detail lookup beyond suggestions, but agents can work around these.
Maintenance
Related MCP Connectors
Give your AI assistant access to the world’s news. Search articles in any language, track coverage over time, and research companies and events.
Live news search: what was published in the last hours and days on any topic, in 45 languages, with duplicate coverage grouped and every story checked for relevance. One read-only tool, search_news; sign in with OAuth (a free account with 50 search credits is created when you connect).
Real-time corroborated news events + 5-year archive, for agents. Free tier, no key.
AP, BBC, NPR, Hacker News and Google News search as agent tools.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables LLM agents to discover news sources, list articles, parse and extract article text, search news, and perform NLP analysis such as keyword extraction and summarization.MIT- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query news articles from TheNewsAPI.com through natural-language prompts, exposing search, top stories, headlines, similar articles, article lookup, and source listing as MCP tools.MIT

APITube News MCP-Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to search real-time and archived news from 300,000+ sources across 177 countries and 59 languages, with filters for sentiment, entities, categories, and more, plus taxonomy suggestion for precise queries.MIT- AlicenseAqualityCmaintenanceEnables MCP clients such as Claude, Codex, Cursor, and OpenCode to search and retrieve news articles and clustered real-world events from roughly 150,000 sources worldwide, with tools for keyword/concept/location/date filtering, full-text lookup by URI or URL, entity name-to-URI resolution, token usage checks, and raw access to any newsapi.ai API endpoint. Results are returned as compact JSON to conserve context, and both local stdio and remote HTTP deployment are supported.7MIT