AI News MCP
An MCP server that collects AI news from 23 sources into a local store and exposes tools for checking new items, searching, reading full text, refreshing sources, and monitoring source health.
Check what’s new since your last look, optionally per Category, with per-Category checkpoints and a 7-day window.
Search stored items by text, publish time, Category, and Source, newest first, without moving checkpoints.
Read an item’s full original-page text, with truncation and full-length details.
Trigger an immediate collection from every Source and report added counts and failures.
List all Sources with URLs, default Categories, last attempt/success, last error, and consecutive failures.
Collects posts from the Cloudflare Blog as an Engineering source about building AI systems.
Collects news from Google DeepMind Blog and Google AI (The Keyword) as News sources.
Collects Hugging Face Blog posts as Engineering content and trending models from Hugging Face as a Models source.
Collects posts from the LangChain Blog as an Engineering source.
Collects posts from the NVIDIA Blog as an Engineering source.
Collects news from OpenAI News as a News source.
Collects AI-related Product Hunt launches as an Applications source.
Collects AI news from TechCrunch AI as a News source.
Collects posts from the Vercel Blog as an Engineering source.
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., "@AI News MCP What's new in AI news this week?"
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.
AI News MCP
An MCP server that collects AI news from 23 Sources (company blogs, tech news sites, engineering blogs, release pages, Hacker News, Product Hunt, Hugging Face and OpenRouter) into a local store, and lets Claude ask what's new, search it, and read the full text of an Item.
It runs on your machine. It needs no API key, no scheduler and no cloud service, and it never calls an LLM: Claude does the summarising when you ask. It works in any MCP client (Claude Code, Claude Desktop, Cursor, VS Code and others) with the model that client uses; these docs say Claude because Claude is what it is tested with.
Is it for you? Use it if you want Claude to brief you on AI news without you visiting a dozen sites, and you are fine with Claude reading the titles and summaries of Items from public Sources. It is not a news reader with its own interface, it does not summarise Items or merge Items about the same event itself, and it only knows what its Sources publish.
What it does
What's New: everything collected since you last asked, per Category, that was published in the last 7 days.
Search: by text, publish time, Category and Source, over everything collected so far (history is kept, so "last week" works).
Full text: fetches an Item's original page and extracts the main text when the summary is not enough.
Collection on demand: when the data is over 24 hours old, the server collects by itself when it starts or when you ask what's new. The first collection reaches back 30 days.
Source health: lists every Source with its last error, and warns when a Source fails 3 collections in a row.
Related MCP server: AI News MCP
Example
Ask Claude things like:
"What's new in AI?"
"Anything new in Models? Group the Items about the same model."
"Find last week's Engineering Items about MCP."
"Read the full text of the second one and summarise it."
"Which news Sources are failing?"
Claude calls whats_new for the first two, search for the third, read_item for the fourth and list_sources for the last, then writes the answer from the Items it gets back.
Install
You need uv and an MCP client. With Claude Code:
claude mcp add --scope user ai-news -- uvx ai-news-mcpThat is all: uvx downloads and runs the package, and --scope user makes it available in every project. Start a new Claude Code session and ask "What's new in AI?". The first answer can take about a minute while the server collects.
To run it from a clone instead:
git clone https://github.com/duncan-wen/ai-news-mcp.git
claude mcp add --scope user ai-news -- uv run --directory /path/to/ai-news-mcp ai-news-mcpClaude Desktop
Add it to claude_desktop_config.json (Settings > Developer > Edit Config; ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows), then restart Claude Desktop:
{
"mcpServers": {
"ai-news": {
"command": "uvx",
"args": ["ai-news-mcp"]
}
}
}Cursor
Add it to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json in one project:
{
"mcpServers": {
"ai-news": {
"type": "stdio",
"command": "uvx",
"args": ["ai-news-mcp"]
}
}
}VS Code
Run MCP: Open User Configuration from the Command Palette and add it under servers (or put it in .vscode/mcp.json for one workspace). Its tools are then available in Chat in agent mode:
{
"servers": {
"ai-news": {
"type": "stdio",
"command": "uvx",
"args": ["ai-news-mcp"]
}
}
}Other MCP clients
Every client starts it the same way: the command is uvx ai-news-mcp, over stdio, with no arguments, environment variables or API key; from a clone, it is uv run --directory /path/to/ai-news-mcp ai-news-mcp. If a client cannot find uvx, give its full path as the command (the output of which uvx, or where uvx on Windows).
Tools
Tool | What it does |
| Items collected since the last Checkpoint of each Category asked about (all if none) and published in the last 7 days, about 100 at most. Moves those Checkpoints to now. |
| Items by text, |
| The main text of an Item's original page, cut to |
| Every Source with its URL, default Categories and collection state. |
| Collects from every Source now and reports what each added or why it failed. |
Categories
Every Item has one or more Categories. A Source gives its default Categories, and keyword rules on the title and summary add others (for example, an Item from a News Source that names a new model is also in Models).
Category | Definition |
News | Events in the AI industry, such as launches, funding, policy, and people changes. |
Applications | New AI products or tools that you can use right away. |
Engineering | Content about how to build AI systems, such as technical posts, frameworks, lessons from practice, and releases. |
Models | Newly released or newly listed AI models, and changes to what they can do and what they cost. Academic papers and theory are not included. |
Each Category has its own Checkpoint, so asking only about Models does not mark the day's News as seen.
What's New shows each Item once: ask again and it is empty until the next collection brings new Items. To see recent Items again, ask by time instead ("What was published this week?"): Claude then calls search, which never moves a Checkpoint. Claude calls whats_new only when you ask what is new since you last looked; a question with a time span ("today", "recently") or a subject goes to search, so it never marks Items as seen by accident. Every client of the server (Claude Code, Claude Desktop, the MCP Inspector) shares one store and one set of Checkpoints, so calling whats_new from the Inspector while testing also marks those Items as seen for Claude.
The terms used here are defined in GLOSSARY.md.
Sources
Source id | Name | Default Categories |
| OpenAI News | News |
| Google DeepMind Blog | News |
| Google AI (The Keyword) | News |
| Anthropic News | News |
| Mistral News | News |
| Microsoft Source: AI | News |
| TechCrunch AI | News |
| The Verge AI | News |
| MIT Technology Review AI | News |
| Simon Willison | Engineering |
| Latent Space | Engineering |
| LangChain Blog | Engineering |
| Vercel Blog | Engineering |
| Cloudflare Blog | Engineering |
| Hugging Face Blog | Engineering |
| NVIDIA Blog | Engineering |
| AWS Machine Learning Blog | Engineering |
| vLLM releases | Engineering |
| Transformers releases | Engineering |
| Hacker News: AI (stories with 100+ points whose title is about AI) | Applications |
| Product Hunt: AI | Applications |
| Hugging Face: trending models | Models |
| OpenRouter: new models | Models |
Source config file
To add your own Sources, disable built-in ones or change their fields, create sources.toml in your config directory. The server runs fine without it.
Platform | Location |
Linux, WSL |
|
macOS |
|
Windows |
|
disabled = ["techcrunch-ai"] # built-in Source ids not to collect
[sources.my-blog] # a new Source: name, url and default_categories
name = "My Blog"
url = "https://example.com/feed.xml" # RSS or Atom
default_categories = ["Engineering"] # any of News, Applications, Engineering, Models
[sources.openai-news] # a built-in Source id: only the fields given change
url = "https://openai.com/news/rss.xml"A new Source needs
name,urlanddefault_categories. Itskinddefaults torss(RSS or Atom); the other kinds are those of the built-in Sources (anthropic-sitemap,hn-algolia,hf-models,openrouter-models).A table named after a built-in Source changes only the fields it gives (
name,url,default_categories,kind).If the file is malformed (an unknown key or Category, a
disabledid that is no built-in Source), the server does not start, and its error says what to fix. Restart the server (start a new Claude Code session) after editing it.
Collected Items are stored in a SQLite file in your data directory (~/.local/share/ai-news-mcp/store.sqlite3 on Linux). Deleting it starts over with a fresh 30-day collection.
Design decisions
Each decision has an Architecture Decision Record in docs/adr/:
Collection is triggered by queries, not by a scheduler: nothing to install or keep running, and it works on laptops and WSL that are often off.
The server never calls an LLM; Claude does the reasoning: Categories come from keyword rules, there is no API key, and running it costs nothing.
One Checkpoint per Category, compared against collection time: asking about one Category never hides another's Items, and a late-dated Item is not skipped.
Terms of use
This project does not run any service: the server on your machine fetches each Source directly, identifying itself with a User-Agent that links to this repository, and spaces out its requests to each host. You are responsible for following each Source's terms of use. The store stays on your machine; Claude sees only the Items its tools return.
Development
uv sync
scripts/check # lint, format, types, workflows, tests and the package build, as CI runs them
scripts/fix # apply the formatter and lint autofixes
uv build # build the sdist and wheel into dist/How to report issues and propose changes is in CONTRIBUTING.md; changes per release are in CHANGELOG.md. Source URLs, rate limits and quirks are in docs/research/ai-news-sources.md. Coding standards are in CODING_STANDARDS.md.
License
Available Tools
5 toolscollect_nowA
Collect new Items from every Source now.
Use only when the user asks to refresh or collect now: `whats_new` already
collects by itself when the data is over 24 hours old. Takes about a minute.
Reports how many Items each Source added (0 for a failed one), and which Sources
failed and why.
Inputs: no named parameters. Returns: failed, sources
list_sourcesA
Every Source with its URL, default Categories and collection state.
The state is when it was last tried, when it last succeeded, its last error and
how many collections in a row it has failed. The last error is kept after a success,
so with 0 failures in a row it is from before `last_success_at`. Use it to check
which Sources work.
Inputs: no named parameters. Returns: sources
read_itemA
The full text of an Item: fetches its original page and extracts the main text.
Use when an Item's summary is not enough. `id` is an Item's `id` from `whats_new`
or `search`. `text` is the first `max_length` characters (default 10,000), with no
marker added; `truncated` says whether that left some out and `full_length` gives
the whole text's length, so call again with a larger `max_length` for the rest.
If the page cannot be fetched or has no main text, the error gives the Item's
summary and link instead.
Inputs: id (required), max_length. Returns: id, url, text, title, +2 more
searchA
Search stored Items by text, publish time, Category and Source, in any mix.
Use for a question about a subject or time span, such as last week's Engineering
Items about MCP or what was published today, and whenever `whats_new` is not
clearly asked for. Every filter is optional; an omitted one matches every Item.
`query`: the title or the whole summary contains it (case-insensitive).
`since` / `until`:
published at or after `since` and before `until`, ISO 8601; a time without an
offset, or a date alone (midnight), is UTC. `categories`: in any of them (News,
Applications, Engineering, Models; see `whats_new`). `sources`: from any of these
Source ids (see `list_sources`). An empty `categories` or `sources` list matches
nothing. Results are newest first, at most `limit` (default 20). A summary shown is
plain text cut to `summary_length`, about 500 characters by default; a shorter
length skims many Items by title, 0 shows none, and `read_item` gives the full text.
Searching never moves a Checkpoint.
Inputs: limit, query, since, until, +3 more. Returns: items
whats_newA
What's New: Items collected since the last Checkpoint and published in the last 7 days.
Use only when the user asks for what is new since they last looked: what's new in
AI or in some Categories, anything new, today's briefing. Calling it marks Items as
seen and cannot be undone, so for anything else use `search`, which never does: a
time span ("today", "recently", "this week"), a subject ("what's new with MCP"), or
when unsure. Each Category has its own Checkpoint;
only the Checkpoints of the Categories asked about (omitted: all) move to now, so
Items shown once are not shown again. Every client of this server shares the
Checkpoints. `previous_checkpoints` gives each asked Category's Checkpoint before this
call (null: never viewed). If `items` is empty, tell the user when they last looked
and offer `search` for recently published Items.
Results are newest first, up to `limit` (default 100); Items published at the same
time are never split, so a few more or fewer can be shown. `more` counts the Items
left out; they count as seen too, so tell the user and offer `search` with the same
`categories`, `since` 7 days ago and `until` the oldest shown Item's `published_at`.
Summaries are plain text cut to about 500 characters; `read_item` gives the full text.
Categories (an Item can be in several):
News: Events in the AI industry, such as launches, funding, policy, and people
changes.
Applications: New AI products or tools that you can use right away.
Engineering: Content about how to build AI systems, such as technical posts,
frameworks, lessons from practice, and releases.
Models: Newly released or newly listed AI models, and changes to what they can do and
what they cost. Academic papers and theory are not included.
If the data is over 24 hours old this collects first, which can take about a minute;
`note` says when the collection was still running. `warning` names Sources that
failed 3 or more collections in a row: tell the user.
Inputs: limit, categories. Returns: more, note, items, warning, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a distinct operation: collect_now (force refresh), list_sources (source health), search (stored items query), read_item (full text), whats_new (checkpoint-based new items). The descriptions explicitly carve boundaries, notably between collect_now and whats_new (which auto-collects) and between whats_new and search (which never moves a Checkpoint).
Three of five names follow a verb_noun pattern (collect_now, list_sources, read_item), but `search` is a bare verb and `whats_new` follows no verb_noun convention. Still readable and predictable enough to infer behavior.
Five tools is well within a healthy range and each covers a distinct stage of the workflow: source listing, collection, discovery of new items, search, and full-text retrieval. No redundant or filler tools.
Core lifecycle (collect, inspect sources, find items, read items, checkpoint tracking) is fully covered with no dead ends. Minor gaps: no source management (add/remove/toggle) and no way to undo or reset a Checkpoint, so agents must work around these.
Maintenance
Related MCP Connectors
RSS & Atom feed manager with full-text search, AI curation, and remote MCP endpoint.
Managed cloud RSS and Atom feed reader with a remote Model Context Protocol (MCP) endpoint. Zero server setup required — enables AI agents like Claude to instantly subscribe to feeds, search full-text articles, extract readable content, and access curated AI editions ("Your Newspaper") over secure streamable HTTP.
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.
Free read-only Chinese AI news MCP: verified events, reports, products. No API key.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA persistent news intelligence MCP server that enables AI agents to fetch, store, deduplicate, embed, and semantically query news from Google News across 141 countries and 41 languages.12 PyPI8MIT
- 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.-
- AlicenseNot gradedqualityDmaintenanceMCP server that aggregates AI news, academic papers from ArXiv, and trending GitHub repositories from multiple sources, enabling users to fetch, search, and filter recent AI content via natural language.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to ingest AI-related content from RSS/Atom feeds, Hacker News, and GDELT, then cluster items into curated stories and retrieve a ranked feed through MCP tools.MIT