
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


