{
  "markdown": "<h1 align=\"center\">NewsMCP — World news for AI agents</h1>\n\n<p align=\"center\">\n  <a href=\"https://newsmcp.io\">newsmcp.io</a>&nbsp;&nbsp;&bull;&nbsp;&nbsp;<a href=\"#integrations\">integrations</a>&nbsp;&nbsp;&bull;&nbsp;&nbsp;<a href=\"#rest-api\">REST API</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@newsmcp/server\"><img src=\"https://img.shields.io/npm/v/@newsmcp/server?style=flat-square&color=cb3837\" alt=\"npm @newsmcp/server\"></a>\n  <a href=\"https://www.npmjs.com/package/@newsmcp/openclaw\"><img src=\"https://img.shields.io/npm/v/@newsmcp/openclaw?style=flat-square&color=cb3837\" alt=\"npm @newsmcp/openclaw\"></a>\n  <a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" alt=\"MIT\"></a>\n</p>\n\n---\n\nReal-time news events, clustered by AI from hundreds of sources, classified by topic and geography, ranked by importance.\n\nFree. No API key. One command to install.\n\n## Coverage\n\n**12 topics** — `politics` `economy` `technology` `science` `health` `environment` `sports` `culture` `crime` `military` `education` `society`\n\n**30 regions** — 6 continents and 24 countries. Filter by `europe`, `asia`, `united-states`, `germany`, `japan`, `ukraine`, and more.\n\n**Hundreds of sources** — Articles clustered into events in real-time, ranked by source count and impact score.\n\n## Integrations\n\n| Platform | Package | Install |\n|----------|---------|---------|\n| [Claude Desktop](#claude-desktop) | `@newsmcp/server` | MCP config |\n| [Claude Code plugin](#claude-code-plugin) | `newsmcp` | `/plugin install` |\n| [Claude Code MCP](#claude-code-mcp) | `@newsmcp/server` | `claude mcp add` |\n| [Cursor](#cursor) | `@newsmcp/server` | MCP config |\n| [Windsurf](#windsurf) | `@newsmcp/server` | MCP config |\n| [OpenAI Codex](#openai-codex) | `@newsmcp/server` | `codex mcp add` |\n| [Gemini CLI](#gemini-cli) | `@newsmcp/server` | `settings.json` |\n| [OpenCode](#opencode) | `@newsmcp/server` | `opencode mcp add` |\n| [Smithery](#smithery) | `@newsmcp/server` | `npx @smithery/cli` |\n| [OpenClaw plugin](#openclaw-plugin) | `@newsmcp/openclaw` | `openclaw plugins install` |\n| [OpenClaw skill](#openclaw-skill) | `newsmcp-skill` | `clawhub install` |\n| [REST API](#rest-api) | — | `curl https://newsmcp.io/v1/news/` |\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"newsmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@newsmcp/server\"]\n    }\n  }\n}\n```\n\n### Claude Code Plugin\n\n```bash\n/plugin marketplace add pranciskus/newsmcp\n/plugin install newsmcp\n```\n\n### Claude Code MCP\n\n```bash\nclaude mcp add newsmcp -- npx -y @newsmcp/server\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"newsmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@newsmcp/server\"]\n    }\n  }\n}\n```\n\n### Windsurf\n\nAdd to MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"newsmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@newsmcp/server\"]\n    }\n  }\n}\n```\n\n### OpenAI Codex\n\n```bash\ncodex mcp add newsmcp -- npx -y @newsmcp/server\n```\n\nOr add to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.newsmcp]\ncommand = \"npx\"\nargs = [\"-y\", \"@newsmcp/server\"]\n```\n\n### Gemini CLI\n\nAdd to `~/.gemini/settings.json` (or project-local `.gemini/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"newsmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@newsmcp/server\"]\n    }\n  }\n}\n```\n\n### OpenCode\n\n```bash\nopencode mcp add\n```\n\nOr add to `~/.config/opencode/opencode.json` (or project-local `.opencode/opencode.json`):\n\n```json\n{\n  \"mcp\": {\n    \"newsmcp\": {\n      \"type\": \"local\",\n      \"enabled\": true,\n      \"command\": [\"npx\", \"-y\", \"@newsmcp/server\"]\n    }\n  }\n}\n```\n\n### Smithery\n\n```bash\nnpx -y @smithery/cli install @newsmcp/server --client claude\n```\n\n### OpenClaw Plugin\n\n```bash\nopenclaw plugins install @newsmcp/openclaw\n```\n\nNo configuration needed — works out of the box. See [`@newsmcp/openclaw`](packages/openclaw-plugin/) for options.\n\n### OpenClaw Skill\n\n```bash\nclawhub install newsmcp-skill\n```\n\nLightweight alternative — a single SKILL.md that teaches the agent to call the REST API via `curl`. No dependencies. See [`newsmcp-skill`](packages/skill/) on [ClawHub](https://clawhub.ai/).\n\n## MCP Tools\n\nFour tools. That's the interface.\n\n### `get_news`\n\nTop events happening right now. Filter by topic, region, time window.\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `topics` | string | — | Comma-separated topic slugs: `politics,technology` |\n| `geo` | string | — | Comma-separated region slugs: `europe,lithuania` |\n| `hours` | number | 24 | Time window in hours (1–168) |\n| `page` | number | 1 | Page number |\n| `per_page` | number | 20 | Results per page (max 50) |\n| `order_by` | string | `-sources_count` | Sort field (see below) |\n\n**Sort options**: `-sources_count`, `-impact_score`, `-last_seen_at`, `-entries_count` (prefix `-` for descending)\n\n### `get_news_detail`\n\nFull details on a single event — all source articles, AI-generated context, impact analysis, entity tags.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `event_id` | string | Event UUID from `get_news` results |\n\n### `get_topics`\n\nLists every topic category available for filtering. No parameters.\n\n`crime` `culture` `economy` `education` `environment` `health` `military` `politics` `science` `society` `sports` `technology`\n\n### `get_regions`\n\nLists every geographic region — 6 continents and 24 countries — available for filtering. No parameters.\n\n## How agents use it\n\n| Prompt | What happens |\n|--------|-------------|\n| \"What's happening in the world?\" | `get_news` with defaults — top 20 events by source coverage |\n| \"Any tech news from Europe today?\" | `get_news` with `topics=technology`, `geo=europe`, `hours=24` |\n| \"Tell me more about that earthquake\" | `get_news_detail` with the event UUID |\n| \"What topics can I filter by?\" | `get_topics` — returns the full list |\n| \"Show me news from Asia this week\" | `get_news` with `geo=asia`, `hours=168` |\n\n## REST API\n\nDon't need MCP? Hit the endpoints directly. Same data, same filters.\n\n**Base URL**: `https://newsmcp.io/v1`\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `GET` | `/news/` | List news events with optional filtering |\n| `GET` | `/news/{id}/` | Single event with full article list |\n| `GET` | `/news/topics/` | All topic categories |\n| `GET` | `/news/regions/` | All geographic regions |\n\n### Query parameters\n\nAll parameters are optional. Combine freely.\n\n```bash\n# Latest events\ncurl -s https://newsmcp.io/v1/news/ | jq\n\n# Filter by topic\ncurl -s \"https://newsmcp.io/v1/news/?topics=technology\" | jq\n\n# Filter by region\ncurl -s \"https://newsmcp.io/v1/news/?geo=europe\" | jq\n\n# Last 12 hours, sorted by impact\ncurl -s \"https://newsmcp.io/v1/news/?hours=12&order_by=-impact_score\" | jq\n\n# Combine everything\ncurl -s \"https://newsmcp.io/v1/news/?topics=politics&geo=united+states&hours=48&per_page=5\" | jq\n```\n\n### Response format\n\n```json\n{\n  \"events\": [\n    {\n      \"id\": \"cc3428ab-2ada-41bb-86ab-833fd39ffd8d\",\n      \"summary\": \"Event description with AI-generated context...\",\n      \"topics\": [\"technology\", \"politics\"],\n      \"geo\": [\"united states\"],\n      \"entries_count\": 86,\n      \"sources_count\": 45,\n      \"first_seen_at\": \"2026-02-15T04:06:41.728Z\",\n      \"last_seen_at\": \"2026-03-03T05:00:30Z\",\n      \"impact_score\": 8,\n      \"entries\": [\n        {\n          \"title\": \"Article headline\",\n          \"url\": \"https://source.com/article\",\n          \"domain\": \"source.com\",\n          \"published_at\": \"2026-03-03T05:00:30Z\"\n        }\n      ]\n    }\n  ],\n  \"total\": 142,\n  \"page\": 1,\n  \"per_page\": 20\n}\n```\n\n## How it works\n\n1. **Collect** — Hundreds of news sources are scraped continuously\n2. **Cluster** — Articles about the same event are grouped using vector embeddings\n3. **Classify** — Each event is tagged with topics and geographic entities\n4. **Rank** — Events are scored by source count, impact, and recency\n5. **Serve** — Clean JSON via REST API and MCP server\n\nEvents update in real-time as new articles appear. The clustering AI merges duplicate coverage automatically.\n\n## Configuration\n\nPoint to a different API backend:\n\n```json\n{\n  \"mcpServers\": {\n    \"newsmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@newsmcp/server\"],\n      \"env\": {\n        \"NEWS_API_BASE_URL\": \"https://your-api.example.com/v1\"\n      }\n    }\n  }\n}\n```\n\n## Releases (GitHub Actions + OIDC)\n\nPublishing is tag-driven via [`.github/workflows/release.yml`](.github/workflows/release.yml):\n\n- Trigger: push tag `v*.*.*`\n- Publishes `@newsmcp/server` and `@newsmcp/openclaw` to npm via Trusted Publishing (OIDC)\n- Publishes MCP metadata with `mcp-publisher login github-oidc`\n- Creates a GitHub release with generated notes\n\n### One-time setup\n\n1. npm package settings:\n   For `@newsmcp/server` and `@newsmcp/openclaw`, add a Trusted Publisher pointing to:\n   - Owner: `pranciskus`\n   - Repository: `newsmcp`\n   - Workflow file: `.github/workflows/release.yml`\n   - Environment: leave empty (unless you intentionally use one)\n2. MCP Registry:\n   Ensure the repo/package is authorized for GitHub OIDC publishing in MCP Registry.\n\n### Release flow\n\n1. Bump versions in:\n   - `packages/mcp-server/package.json`\n   - `packages/openclaw-plugin/package.json`\n   - `packages/mcp-server/server.json`\n   - `package-lock.json`\n2. Commit and push to `main`\n3. Create and push tag:\n\n```bash\ngit tag -a vX.Y.Z -m \"vX.Y.Z\"\ngit push origin vX.Y.Z\n```\n\nThe workflow does the publish and GitHub release automatically.\n\n## Repository structure\n\n```\nnewsmcp/\n├── .github/workflows/       # CI/CD workflows (release automation)\n├── .claude-plugin/          # Marketplace manifest\n├── packages/\n│   ├── mcp-server/          # @newsmcp/server — MCP server (npm)\n│   ├── claude-code-plugin/  # newsmcp — Claude Code plugin\n│   ├── openclaw-plugin/     # @newsmcp/openclaw — OpenClaw plugin (npm)\n│   └── skill/               # newsmcp-skill — OpenClaw skill (ClawHub)\n├── publish.sh                # Build, test, publish workflow\n├── README.md\n└── LICENSE\n```\n\n## License\n\nMIT\n",
  "bytes": 10149,
  "sha": "60f68846738085508242a851b4ae3b98b456112c16fc9c0af905edb9900aeda0",
  "repo_slug": "pranciskus/newsmcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pranciskus_newsmcp_12fddd13/readme"
}