
Nexus AI News
io.github.99darwinv0.1.0更新於 Oct 7, 2026
Deduplicated, classified AI industry news: search, browse, and filter by vertical and event type.
概覽
以唯讀方式透過 MCP 存取去重並分類的 AI 產業新聞來源,可搜尋、瀏覽最新項目與查看統計。
- 功能
- 透過 Streamable HTTP 提供公開、無狀態、唯讀的新聞來源。search_news 工具支援片語、OR 與 -exclude 的全文搜尋,並可依垂直領域、事件類型、來源與時間篩選;get_latest_news 依最新優先回傳項目,支援相同篩選條件與以 next_cursor 進行的游標分頁;get_feed_stats 回傳總數以及各垂直領域與事件類型的計數。項目會去重並分類為 21 個垂直領域與八種事件類型,摘要直接取自來源文字,而非生成的總結。
- 適用情境
- 適合需要取得最新 AI 產業新聞、募資與發布事件或論文,並依主題、來源或日期篩選與搜尋的情境。適用於研究、監測與簡報類工作流程,希望取得真實新聞項目而非模型生成的摘要。
- 執行需求
- 透過 Streamable HTTP 連線的遠端 MCP 端點;使用託管服務不需要本機執行環境、套件、帳號或 API 金鑰,但需要能連線至該端點的網路。若自行部署專案,則需要 Node.js 與 pnpm、PostgreSQL,以及 TYPESAFE_API_KEY、POSTGRES_PASSWORD 等憑證。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Nexus AI News,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"nexus": {
"type": "http",
"url": "https://nexus.carapace.bot/mcp"
}
}
}README
Nexus
A Jev-powered AI news feed.
[TypeScript] [PostgreSQL] [License] [Docker]
Nexus ingests AI news from multiple sources, dedupes it, classifies each item with a single Jev (TypeSafe System One) call, and serves the result as a reverse-chronological feed with filters and a guarded, extractive chat search. No graph database, no generative LLM in the request path.
Quick Start
The client opens at http://localhost:5173 and the API serves at http://localhost:3001.
Monorepo Layout
Adding a Source Adapter
The primary contribution path is adding new data sources. Every adapter feeds raw items into the dedup + Jev enrichment pipeline, which classifies and inserts them into the feed automatically.
The RawItem Interface
Write Your Adapter
Extend BaseAdapter and implement fetchItems(). You get rate limiting, exponential retry with backoff, and URL-based deduplication for free.
Existing Adapters
Register Your Adapter
- Add your adapter to the adapter list in
packages/agent/src/start.ts:
-
Write a test in
packages/agent/src/sources/__tests__/following existing patterns. -
Run tests:
pnpm --filter @nexus/agent test
Jev Enrichment
Every deduped RawItem gets exactly one call to TypeSafe's System One API (POST https://api.typesafe.ai/v1/systemone, model jev-latest, Bearer TYPESAFE_API_KEY). Jev is a decision model — it answers typed questions (Noul, Choice, Score) against structured JSON, it does not generate text. One call answers all four questions for an item:
is_ai_relevant(Noul) — dropped if confidence < 0.6vertical(Choice) — one of the 21Verticalvalues, ornoneevent_type(Choice) —launch | funding | release | acquisition | paper | update | shutdown | othersignificance(Score) — a 5-point rubric mapped to 0.2–1.0
The excerpt shown in the feed is the first 280 characters of the source content — never an LLM summary, so it can't hallucinate.
Chat Search
POST /api/chat is a guarded, extractive search box, not a chatbot. It classifies the query with one Jev call (on-topic check, vertical/event-type/timeframe extraction), then returns real rows from feed_items via Postgres trigram search. There is no generative model anywhere in the chat path — there's nothing for a prompt injection to talk to.
MCP Server
The feed is exposed to agents as a public, read-only Model Context Protocol server over Streamable HTTP:
Add it to Claude Code with claude mcp add --transport http nexus https://nexus.carapace.bot/mcp. Stateless (no sessions), extractive only — same validation as GET /api/feed, no model calls. Registry manifest: server.json.
Data Model
feed_items
id (uuid) · title · url (unique) · source · published_at · excerpt · vertical · event_type · significance (0.0–1.0) · created_at
Verticals
21 spatial-cluster categories, defined in packages/shared/src/types.ts (e.g. foundation_models, agents, safety_alignment, consumer_products, ...).
Event Types
launch | funding | release | acquisition | paper | update | shutdown | other
Contributing
- Fork the repo and create a branch:
feat/my-feature,fix/some-bug, orchore/cleanup - Write conventional commit messages:
feat: add devto adapter,fix: handle empty RSS feed - Run checks before opening a PR:
- Keep PRs focused — one adapter or feature per PR.
Environment Variables
Tech Stack
- Database — PostgreSQL 16 (
raw_items,feed_items, pg_trgm search) - API — Fastify
- Client — Vite + React
- Search — Fuse.js (client-side, loaded items), pg_trgm (server, chat + feed search)
- Agent — TypeSafe Jev (System One) for enrichment and chat classification
- Deploy — Railway (Postgres + API) + Vercel (client)
Cost
Enrichment is roughly 1 Jev call per new deduped item, at ~50–100 items/day across all sources, plus 1 Jev call per chat query. There is no Neo4j, no Redis, and no generative LLM anywhere in the pipeline — that's the entire compute bill.
License
來源:README.md,提交 0a59cfc
工具
0版本歷史
1- v0.1.0最新Oct 7, 2026


