Newsintel

io.github.stabem由 GitHub 帳號 stabem 發布v0.1.0更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

NewsIntel 的 MCP 伺服器,讓助理取得跨多來源、經排序與去重的新聞簡報與搜尋結果。

可以做什麼
同步使用者偏好設定,讓後續簡報依個人興趣排序。讀取目前的偏好設定內容。取得個人化的新聞簡報與代理專用摘要。透過後端 API 搜尋並彙整多來源新聞。
適用情境
當你希望助理不必自行爬梳多個新聞來源,就能取得已排序、去重且兼顧立場多樣性的新聞簡報時使用。適合每日摘要、主題追蹤,以及需要結構化新聞輸入的代理工作流程。
執行需求
以本機 Node.js 程序執行(npm 套件,stdio 傳輸)。需連線至 NewsIntel API,預設為 newsintelapi.com,可用 NEWSINTEL_API_BASE 環境變數指向自架執行個體。託管 API 需在入口網站以 X 帳號登入取得 API 金鑰。
安裝前請注意
需提供 NewsIntel API 金鑰,請妥善保管。同步偏好設定會把個人化資料送至 NewsIntel 服務。新聞內容來自第三方來源(RSS、GDELT、Guardian、X),正確性與立場需自行判斷。自架時須先替換 .env 中的 CHANGE_ME_* 佔位符並產生強密鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Newsintel,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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.

來源:README.md,提交 0f8ca9e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分