NewsMCP โ World news for AI agents
newsmcp.ioย ย โขย ย integrationsย ย โขย ย REST API
Real-time news events, clustered by AI from hundreds of sources, classified by topic and geography, ranked by importance.
Free. No API key. One command to install.
Coverage
12 topics โ politics economy technology science health environment sports culture crime military education society
30 regions โ 6 continents and 24 countries. Filter by europe, asia, united-states, germany, japan, ukraine, and more.
Hundreds of sources โ Articles clustered into events in real-time, ranked by source count and impact score.
Integrations
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"newsmcp": {
"command": "npx",
"args": ["-y", "@newsmcp/server"]
}
}
}
Claude Code Plugin
/plugin marketplace add pranciskus/newsmcp
/plugin install newsmcp
Claude Code MCP
claude mcp add newsmcp -- npx -y @newsmcp/server
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"newsmcp": {
"command": "npx",
"args": ["-y", "@newsmcp/server"]
}
}
}
Windsurf
Add to MCP config:
{
"mcpServers": {
"newsmcp": {
"command": "npx",
"args": ["-y", "@newsmcp/server"]
}
}
}
OpenAI Codex
codex mcp add newsmcp -- npx -y @newsmcp/server
Or add to ~/.codex/config.toml:
[mcp_servers.newsmcp]
command = "npx"
args = ["-y", "@newsmcp/server"]
Gemini CLI
Add to ~/.gemini/settings.json (or project-local .gemini/settings.json):
{
"mcpServers": {
"newsmcp": {
"command": "npx",
"args": ["-y", "@newsmcp/server"]
}
}
}
OpenCode
Or add to ~/.config/opencode/opencode.json (or project-local .opencode/opencode.json):
{
"mcp": {
"newsmcp": {
"type": "local",
"enabled": true,
"command": ["npx", "-y", "@newsmcp/server"]
}
}
}
Smithery
npx -y @smithery/cli install @newsmcp/server --client claude
OpenClaw Plugin
openclaw plugins install @newsmcp/openclaw
No configuration needed โ works out of the box. See @newsmcp/openclaw for options.
OpenClaw Skill
clawhub install newsmcp-skill
Lightweight alternative โ a single SKILL.md that teaches the agent to call the REST API via curl. No dependencies. See newsmcp-skill on ClawHub.
Four tools. That's the interface.
get_news
Top events happening right now. Filter by topic, region, time window.
| Parameter | Type | Default | Description |
|---|
topics | string | โ | Comma-separated topic slugs: politics,technology |
geo | string | โ | Comma-separated region slugs: europe,lithuania |
hours | number | 24 | Time window in hours (1โ168) |
page | number | 1 | Page number |
per_page | number | 20 | Results per page (max 50) |
order_by | string | -sources_count | Sort field (see below) |
Sort options: -sources_count, -impact_score, -last_seen_at, -entries_count (prefix - for descending)
get_news_detail
Full details on a single event โ all source articles, AI-generated context, impact analysis, entity tags.
| Parameter | Type | Description |
|---|
event_id | string | Event UUID from get_news results |
get_topics
Lists every topic category available for filtering. No parameters.
crime culture economy education environment health military politics science society sports technology
get_regions
Lists every geographic region โ 6 continents and 24 countries โ available for filtering. No parameters.
How agents use it
| Prompt | What happens |
|---|
| "What's happening in the world?" | get_news with defaults โ top 20 events by source coverage |
| "Any tech news from Europe today?" | get_news with topics=technology, geo=europe, hours=24 |
| "Tell me more about that earthquake" | get_news_detail with the event UUID |
| "What topics can I filter by?" | get_topics โ returns the full list |
| "Show me news from Asia this week" | get_news with geo=asia, hours=168 |
REST API
Don't need MCP? Hit the endpoints directly. Same data, same filters.
Base URL: https://newsmcp.io/v1
| Method | Endpoint | Description |
|---|
GET | /news/ | List news events with optional filtering |
GET | /news/{id}/ | Single event with full article list |
GET | /news/topics/ | All topic categories |
GET | /news/regions/ | All geographic regions |
Query parameters
All parameters are optional. Combine freely.
curl -s https://newsmcp.io/v1/news/ | jq
curl -s "https://newsmcp.io/v1/news/?topics=technology" | jq
curl -s "https://newsmcp.io/v1/news/?geo=europe" | jq
curl -s "https://newsmcp.io/v1/news/?hours=12&order_by=-impact_score" | jq
curl -s "https://newsmcp.io/v1/news/?topics=politics&geo=united+states&hours=48&per_page=5" | jq
{
"events": [
{
"id": "cc3428ab-2ada-41bb-86ab-833fd39ffd8d",
"summary": "Event description with AI-generated context...",
"topics": ["technology", "politics"],
"geo": ["united states"],
"entries_count": 86,
"sources_count": 45,
"first_seen_at": "2026-02-15T04:06:41.728Z",
"last_seen_at": "2026-03-03T05:00:30Z",
"impact_score": 8,
"entries": [
{
"title": "Article headline",
"url": "https://source.com/article",
"domain": "source.com",
"published_at": "2026-03-03T05:00:30Z"
}
]
}
],
"total": 142,
"page": 1,
"per_page": 20
}
How it works
- Collect โ Hundreds of news sources are scraped continuously
- Cluster โ Articles about the same event are grouped using vector embeddings
- Classify โ Each event is tagged with topics and geographic entities
- Rank โ Events are scored by source count, impact, and recency
- Serve โ Clean JSON via REST API and MCP server
Events update in real-time as new articles appear. The clustering AI merges duplicate coverage automatically.
Configuration
Point to a different API backend:
{
"mcpServers": {
"newsmcp": {
"command": "npx",
"args": ["-y", "@newsmcp/server"],
"env": {
"NEWS_API_BASE_URL": "https://your-api.example.com/v1"
}
}
}
}
Releases (GitHub Actions + OIDC)
Publishing is tag-driven via .github/workflows/release.yml:
- Trigger: push tag
v*.*.*
- Publishes
@newsmcp/server and @newsmcp/openclaw to npm via Trusted Publishing (OIDC)
- Publishes MCP metadata with
mcp-publisher login github-oidc
- Creates a GitHub release with generated notes
One-time setup
- npm package settings:
For
@newsmcp/server and @newsmcp/openclaw, add a Trusted Publisher pointing to:
- Owner:
pranciskus
- Repository:
newsmcp
- Workflow file:
.github/workflows/release.yml
- Environment: leave empty (unless you intentionally use one)
- MCP Registry:
Ensure the repo/package is authorized for GitHub OIDC publishing in MCP Registry.
Release flow
- Bump versions in:
packages/mcp-server/package.json
packages/openclaw-plugin/package.json
packages/mcp-server/server.json
package-lock.json
- Commit and push to
main
- Create and push tag:
git tag -a vX.Y.Z -m "vX.Y.Z"
git push origin vX.Y.Z
The workflow does the publish and GitHub release automatically.
Repository structure
newsmcp/
โโโ .github/workflows/ # CI/CD workflows (release automation)
โโโ .claude-plugin/ # Marketplace manifest
โโโ packages/
โ โโโ mcp-server/ # @newsmcp/server โ MCP server (npm)
โ โโโ claude-code-plugin/ # newsmcp โ Claude Code plugin
โ โโโ openclaw-plugin/ # @newsmcp/openclaw โ OpenClaw plugin (npm)
โ โโโ skill/ # newsmcp-skill โ OpenClaw skill (ClawHub)
โโโ publish.sh # Build, test, publish workflow
โโโ README.md
โโโ LICENSE
License
MIT