Newsintel

io.github.stabemPublished by GitHub account stabemv0.1.0Updated Oct 24, 2026

Personalized news intelligence for AI agents — 100+ sources, ranked briefings.

Overview

AI-generated overview

NewsIntel's MCP server, giving an assistant ranked, deduplicated news briefings and search results from many sources.

What you can do
Sync a user profile so later briefings follow stated interests. Read back the current profile settings. Fetch personalized news briefings and agent-optimized digests. Search and aggregate news across multiple sources through the backend API.
When to use it
Use it when an assistant should get ranked, deduplicated, bias-aware news briefings without crawling sources itself. Suited to daily digests, topic tracking, and agent workflows that need structured news input.
Requirements
Runs as a local Node.js process (npm package, stdio transport). Needs network access to the NewsIntel API, default newsintelapi.com, overridable with the NEWSINTEL_API_BASE environment variable for a self-hosted instance. The hosted API requires an API key obtained by signing in with an X account on the portal.
Before you install
Requires a NewsIntel API key, which should be kept private. Syncing a profile sends personalization data to the NewsIntel service. News content comes from third-party sources (RSS, GDELT, Guardian, X), so accuracy and bias need independent judgment. Self-hosting requires replacing the CHANGE_ME_* placeholders in .env and generating strong secrets first.

Installation

In SourceWeft

  1. Open Newsintel in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README


[NewsIntel API]

    _   __                 ____      __       __     ___    ____  ____   / | / /__ _      _____|  _/___  / /____  / /    /   |  / __ \/  _/  /  |/ / _ \ | /| / / __|/ // _ \/ __/ _ \/ /    / /| | / /_/ // / / /|  /  __/ |/ |/ /\__ \ // ___/ /_/  __/ /    / ___ |/ ____// //_/ |_/\___/|__/|__//___/___/\___/\__/\___/_/    /_/  |_/_/   /___/

Personalized news intelligence for AI agents, MCP integrations, and developer workflows.
20+ sources. Real-time ranking. Agent-ready digests. Self-serve onboarding.

[CI] [License: ISC] [TypeScript] [Node] [Docker]
[MCP] [Biome] [PRs Welcome] [Good First Issues]

Try the Portal  •  API Reference  •  MCP Server  •  Architecture  •  Contributing


Why NewsIntel?

Most news APIs give you raw feeds. NewsIntel gives you intelligence — ranked, deduplicated, bias-aware briefings ready for AI consumption.

  • For AI agents: get structured briefings via MCP or REST in one call
  • For developers: self-serve API keys, OpenAPI schema, Prometheus metrics out of the box
  • For teams: multi-workspace isolation, feedback-driven ranking, Grafana dashboards
bash
# Get a personalized briefing in 10 secondscurl -sS "https://newsintelapi.com/v1/briefing?format=digest&limit=6" \  -H "Authorization: Bearer <YOUR_API_KEY>"

Features

 INGEST           PROCESS              DELIVER             OBSERVE ------           -------              -------             ------- RSS (20+)  -->  Dedup & Normalize    REST API            Prometheus GDELT       -->  Bias-aware ranking   Agent digests       Grafana Guardian    -->  Topic inference      MCP server          Sentry X signals   -->  Feedback loop        Self-serve portal   OpenTelemetry
FeatureDetails
NewsMulti-source aggregationRSS (20+ sources), GDELT, Guardian API, X following signals
AIAgent-ready output/briefing/agent endpoint + standalone MCP server
RankingSmart filteringBias diversity gates, source reliability scoring, recency weighting
AuthMulti-workspacePer-workspace API keys, dynamic key provisioning, X OAuth self-serve
FeedbackLearning loopLike/skip/save/irrelevant signals influence future ranking
OpsProduction-readyPrometheus metrics, Grafana dashboards, Sentry, OpenTelemetry

Quickstart

Option A: Use the hosted API (recommended)

  1. Open newsintelapi.com/portal
  2. Connect with X (OAuth) and get your API key
  3. Start making requests

For AI agents, use the MCP server for native tool integration.

Option B: Self-host with Docker (safe baseline)

bash
git clone https://github.com/stabem/newsintel-api.git && cd newsintel-apicp .env.example .env# REQUIRED before first run: replace all CHANGE_ME_* placeholders in .env# example internal DB URL: postgresql://newsintel:<strong-password>@postgres:5432/newsintel# generate strong secrets, e.g.:#   API_KEYS=$(openssl rand -hex 24)#   OPS_ADMIN_KEY=$(openssl rand -hex 32)#   TOKEN_ENCRYPTION_SECRET=$(openssl rand -hex 32)
docker compose up --build -d
# Verifycurl -sS http://localhost:8090/healthz

The primary docker-compose.yml is safe-by-default: no built-in weak DB/Grafana credentials and no published Postgres/Redis ports. You still must replace the CHANGE_ME_* placeholders in .env before using it outside throwaway local testing.

Option C: Local development

bash
npm ci && cp .env.example .env# For local dev, replace the CHANGE_ME_* placeholders with local-only values first.docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d postgres redisnpm run migrate:up && npm run dev

For an all-in-one local stack with convenience defaults and published dev ports:

bash
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build -d

Local dev services: API localhost:8090 | Postgres localhost:5436 | Redis localhost:6386

API Overview

Full reference: docs/api-reference.md | OpenAPI schema: GET /openapi.json

MethodEndpointAuthDescription
GET/healthz-Liveness check
GET/readyz-Readiness (DB/Redis/queue)
GET/metrics-Prometheus metrics
GET/v1/briefingBearerPersonalized briefing
GET/v1/briefing/agentBearerAgent-optimized digest
GET/v1/news/searchBearerSearch & aggregate news
POST/v1/profile/syncBearerSync profile (manual/x-browser/x-api)
POST/v1/keysBearerProvision dynamic API key
GET/v1/ops/statusAdminOperational health dashboard

AI Integration

MCP Server (for Claude Desktop, Cursor, Windsurf, etc.)

Ships a standalone MCP server — plug into any MCP-compatible client:

bash
cd integrations/newsintel-mcp && npm install

Or add to your .mcp.json:

json
{  "mcpServers": {    "newsintel": {      "command": "node",      "args": ["integrations/newsintel-mcp/server.mjs"],      "env": { "NEWSINTEL_API_BASE": "https://newsintelapi.com" }    }  }}

Tools: sync_profile | get_profile | get_news_briefing

See integrations/newsintel-mcp/README.md for full docs.

Anthropic SDK (tool use + agents)

Build AI agents that use NewsIntel as a tool — examples in TypeScript and Python:

bash
# TypeScript — agentic loopcd examples/agent-sdk-typescript && npm installANTHROPIC_API_KEY=sk-... NEWSINTEL_API_KEY=ni_live_... npx tsx agent.ts
# Python — agentic loopcd examples/agent-sdk-python && pip install -r requirements.txtANTHROPIC_API_KEY=sk-... NEWSINTEL_API_KEY=ni_live_... python agent.py

See examples/ for tool-use and agent patterns.

Architecture

                     +------------------+                     |   Self-serve     |                     |   Portal (HTML)  |                     +--------+---------+                              |  AI Agents (MCP) --+        |        +-- Prometheus                    |        v        |                    +-> [ Fastify ] <--+-- Grafana                    |   [ API    ]    |                    +-> [ Server ] <--+-- Sentry                        +---+---+                            |            +-------+-------+-------+-------+            |       |       |       |       |          RSS    GDELT  Guardian  X API   pg-boss         (20+)                           (queue)            |       |       |       |       |            +-------+-------+---+---+-------+                                |                    +-----------+-----------+                    |                       |                PostgreSQL              Redis              (profiles, news,       (briefing cache,               feedback, jobs)        enrichment cache)

Documentation

DocumentDescription
docs/architecture.mdSystem overview and data flow
docs/api-reference.mdEndpoints, params, examples
docs/configuration.mdEnvironment variables
docs/observability.mdMetrics, logging, tracing
docs/operations.mdDocker, hardening, troubleshooting
SECURITY.mdVulnerability reporting, credential rotation
SUPPORT.mdCommunity support channels

Development

bash
npm run lint         # Biome linternpm run typecheck    # TypeScript type checkingnpm test             # Full test suite (127 tests)npm run build        # Compile to dist/

OpenAPI contract snapshot: npm run test:openapi-snapshot:update when schema changes.

Contributing

See CONTRIBUTING.md for the full guide.

  1. Fork and create a feature branch
  2. Make scoped changes with tests
  3. Run: npm run lint && npm run typecheck && npm test && npm run build
  4. Open a PR linking the issue

Roadmap

See docs/OPEN_SOURCE_ROADMAP.md for the full roadmap.

  • Source registry: file-based -> DB-managed
  • News persistence: optimize bulk inserts
  • API pagination and richer query semantics
  • Plugin system for custom news providers

Star History

[Star History]

License

ISC - use it however you want.


Built with Fastify, TypeScript, PostgreSQL, Redis, and pg-boss.
Star the repo if NewsIntel helps your workflow.

Source: README.md at commit 0f8ca9e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts