mcp-news-briefing
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-news-briefing 今天有什么值得看的"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🌅 mcp-news-briefing
一个个性化的AI信息过滤系统,以MCP Server的形式集成到Claude Desktop中。
核心理念
不是被动接收一封邮件,而是主动打开Claude说"今天有什么值得看的"。
这个系统通过你的兴趣偏好对海量信息进行过滤,只把跟你相关的内容呈现出来。偏好由你自己定义,信源由你自己选择,过滤由AI完成。不限于AI领域——天文、金融、安全、烹饪,你关注什么就设置什么。
所有数据存在你自己的电脑上,没有云端,没有账号,没有追踪。
👉 我是用户 — 有人给了我一个 .mcpb 文件,我想开始使用 → 安装与使用
👉 我是开发者 — 我想自己 clone 代码跑起来,或者参与开发 → 开发者指南
Related MCP server: Abhi-Nexus MCP Server
安装与使用
前置条件
Claude Desktop(macOS 或 Windows)
就这一个。不需要装其他任何东西。
安装
拿到
mcp-news-briefing.mcpb文件打开 Claude Desktop → Settings → Extensions → Advanced Settings → Install Extension
选择这个文件
安装完成
注册
跟Claude说:
"帮我注册一下新闻简报,名字叫(你的名字)"
你会拿到一个token,请保存好。不过后续你用名字也能识别身份,不用每次贴token。
第一个注册的用户会自动成为默认身份——之后跟Claude说"今天有什么新闻"时不需要指定是谁,直接用就行。
如果你注册了多个账号(比如一个看AI、一个看天文),可以切换默认身份:
"把默认身份切到(名字)"
设置兴趣偏好
有两种方式:
方式A:问答引导(推荐)
"帮我设置一下我关注的内容"
Claude会通过几个问题了解你的职业、关注领域、不想看的内容,然后自动整理好。
方式B:直接告知
"我关注AI Agent、嵌入式开发、天文摄影,不想看融资新闻,帮我设置好"
选择信源
偏好设好后:
"帮我推荐一下适合我的新闻来源"
Claude会根据你的偏好推荐相关的RSS、Reddit板块等,你确认后就订阅了。也可以自己加:
"帮我加一个RSS源:https://example.com/feed.xml,名字叫my-blog"
开始使用
"今天有什么值得看的"
日常用法
你说的话 | 会发生什么 |
"今天有什么值得看的" | 抓取最近24小时 + 过滤 + 呈现(默认8条) |
"这周有什么值得看的" | 抓取最近7天的内容 |
"最近的新闻多给点,20条" | 抓取30天内容,返回20条 |
"这条展开说说" | 详细分析某条内容 |
"把这条收藏" | 标记感兴趣的内容 |
"我最近都关注了什么?" | 查看兴趣趋势摘要 |
"帮我加个关注领域:量子计算" | 动态调整偏好 |
"我现在订阅了哪些来源?" | 查看当前订阅的信源 |
📊 股票监控
除了新闻简报,还可以关注个股动态(美股 / 澳股),包括侧重面定制、预警系统、历史趋势分析等。
详见 股票监控指南。
💡 提示
偏好和信源随时可以调整,不需要重新注册
一个人可以注册多个token,比如一个看AI、一个看天文,各自独立;用
briefing_set_default切换当前默认身份信息来源包括RSS、Reddit和Hacker News,覆盖面很广
数据存储
所有数据在你本地:
系统 | 位置 |
macOS |
|
Windows |
|
⚠️ 免责声明
本工具从第三方 RSS 和公开 API 聚合信息。部分可选信源(SEC EDGAR、Seeking Alpha)有各自的使用条款——启用即表示你同意遵守相应条款。
这不是投资建议。利好/利空情绪分析由 AI 模型生成,不应作为投资决策的唯一依据。请自行研究。
开发者指南
Clone & 运行
git clone https://github.com/AmyYingTang/mcp-news-briefing.git
cd mcp-news-briefing
npm install
npm run build在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"briefing": {
"command": "node",
"args": ["/absolute/path/to/mcp-news-briefing/dist/server.js"]
}
}
}完全退出 Claude Desktop 再重新打开(macOS 用 Cmd+Q,不是关窗口)。
打包 .mcpb
bash build-mcpb.sh产物 mcp-news-briefing.mcpb 可以分发给任何 Claude Desktop 用户安装。
项目结构
mcp-news-briefing/
├── manifest.json # MCPB Desktop Extension 清单
├── build-mcpb.sh # 打包脚本
├── package.json
├── tsconfig.json
├── README.md
├── stock-monitoring-guide.md # 股票监控:设计理念与使用指南
└── src/
├── server.ts # MCP 工具定义 & 启动入口
├── storage.ts # 跨平台数据目录 & JSON 读写
├── auth.ts # Token 注册 / 验证 / 解析
├── profile.ts # 兴趣偏好 CRUD、引导问卷、信源推荐库
├── sources.ts # RSS / Reddit / HN 抓取 + 缓存
├── user-sources.ts # 用户信源配置管理
├── interaction-log.ts # 阅读行为追踪
├── watchlist.ts # 股票关注列表 CRUD、侧重面推荐、信源目录
├── stock-sources.ts # 股票新闻抓取(per-ticker RSS / 过滤型信源 / fallback)+ 按日期缓存
└── stock-history.ts # 情绪快照 CRUD、收盘价抓取、背离检测架构
Claude Desktop
│ stdio
▼
┌──────────────┐
│ MCP Server │ ← Node.js (Claude Desktop 内置)
│ (TS/SDK) │
└──────┬───────┘
│
┌────┼────┐
▼ ▼ ▼
缓存 偏好 信源 ← 按 token 隔离,JSON 文件存储
日志缓存策略: 同一30分钟窗口内,信源配置相同的请求共享缓存(缓存key含信源配置hash)
数据隔离: 每个token对应
users/<token前8位>/目录,包含独立的 profile.json、sources.json、interaction_log.json
MCP 工具一览
新闻简报:
工具名 | 功能 |
| 注册新用户,获取token(第一个自动设为默认身份) |
| 切换默认身份(多账号时使用) |
| 兴趣偏好引导问卷 |
| 设置/更新兴趣偏好 |
| 获取兴趣偏好 |
| 根据偏好推荐信源 |
| 按分类ID批量订阅 |
| 追加自定义信源 |
| 查看信源配置 |
| 抓取文章(24h/168h/720h) |
| 获取已保存文章列表 |
| 记录阅读/讨论/收藏 |
| 兴趣趋势摘要 |
| 查看阅读记录 |
股票监控:
工具名 | 功能 |
| 添加/更新关注股票,自动推荐侧重面 |
| 查看关注列表及侧重面配置 |
| 移除关注股票 |
| 调整某只股票的关注侧重面 |
| 管理某只股票的自定义 RSS 信源 |
| 开启/关闭每次启动时自动抓取股票新闻 |
| 抓取关注股票的最新新闻 |
| 获取股票新闻列表,供 AI 做利好/利空分析(支持历史日期回溯) |
| 记录每日情绪快照(分析后自动调用) |
| 查看历史情绪趋势 + 股价走势 + 背离检测(含逐日数据状态) |
| 批量创建预警(从分析师报告提取或手动) |
| 查看预警列表 + 触发统计 |
| 修改预警松紧度、时间窗口、关键词 |
| 关闭预警 |
| 记录预警触发 + 事件级去重(digest 分析时自动调用) |
新用户完整流程(工具调用顺序)
briefing_register→ 获取tokenbriefing_create_profile_interactive→ AI引导对话 →briefing_set_profile提交briefing_suggest_sources→ 用户确认 →briefing_set_sources订阅briefing_fetch_articles→briefing_get_articles+briefing_get_profile→ AI过滤分析
Roadmap
多用户 token 隔离
兴趣偏好引导问卷
信源推荐引擎
阅读行为追踪 & 兴趣趋势分析
TypeScript 重写(Node.js 原生,.mcpb 就绪)
.mcpb Desktop Extension 打包
股票关注列表(Watchlist)— 美股 / 澳股,侧重面推荐,利好利空分析
默认身份(注册后无需每次指定用户名,多账号可切换)
Watchlist 自定义信源(per-ticker RSS,支持占位符)
市场信源自动匹配(SEC EDGAR CIK 查找 + ASX 公告 RSS 降级)
Anthropic Extension Directory 提交
OAuth 2.1(远程部署场景)
Twitter/X 数据源
股票历史情绪趋势 + 股价对比 + 背离检测
股票预警(Alert)— 分析师报告提取、时效性监控、通用预警、风险提示优先
预警事件级去重 — 同一事件多天多源报道只触发一次,实质性进展自动识别
启动时自动抓取 — 用户开启后每次打开 Claude Desktop 自动更新股票新闻(幂等,每日一次)
按日期保留抓取缓存(14天)— 支持回溯分析历史某天的新闻
预警推送通知(pending notification 写入 + 下次交互时呈现)
偏好自动演进(根据阅读行为调整关注权重)
License
Apache License 2.0 — see LICENSE for details.
Available Tools
29 toolsbriefing_add_sourcesA
添加自定义新闻来源(追加,不会覆盖已有的)。 用户说「帮我加一个RSS」「我还想看XX的Reddit」等时调用。
Inputs: rss, token, reddit, hn_keywords.
briefing_create_profile_interactiveA
通过问答了解用户的兴趣偏好。用户说「帮我设置偏好」「重新设置我关注的内容」等时调用。 返回引导问题,收集完毕后整理成JSON调用 briefing_set_profile 提交。
Inputs: token.
briefing_fetch_articlesA
从订阅的新闻来源抓取最新内容。用户说「看看今天的新闻」「最近有什么值得看的」「这周的简报」等时,先调用此工具获取数据。
时间范围:24=今天,168=本周,720=本月。
Inputs: token, hours_back.
briefing_get_articlesA
获取已抓取的文章列表。返回标题、来源、摘要等,供Claude根据用户的兴趣偏好筛选和分析。
Inputs: date, limit, token.
briefing_get_profileA
获取用户的兴趣偏好,包含关注领域、当前项目、不想看的内容等。 在分析新闻前应先读取,作为筛选依据。
Inputs: token.
briefing_get_sourcesA
查看当前订阅了哪些新闻来源。用户说「我现在订阅了什么」「看看我的信源」等时调用。
Inputs: token.
briefing_interaction_summaryA
分析用户最近的阅读兴趣趋势。用户说「我最近关注了什么」「这周看了些啥」等时调用。
Inputs: days, token.
briefing_log_interactionA
记录用户的阅读行为。当用户展开某条新闻、深入讨论、或收藏时,自动调用。 用于后续分析用户的兴趣趋势。
Inputs: action (required), notes, token, topics, +2 more.
briefing_registerA
注册新闻简报服务。用户说「帮我注册」「我想开始用简报」等时调用。 返回一个token,后续可以用token或用户名识别身份。
Inputs: name.
briefing_set_defaultA
切换默认身份。用户说「把默认身份切到xxx」「以后默认用xxx的身份」时调用。
Inputs: token (required).
briefing_set_profileA
设置或更新用户的兴趣偏好。用户说「我想关注XX」「帮我加个兴趣」「不想再看XX」等时调用。 只传需要更新的字段,其他保持不变。兴趣偏好是新闻过滤的核心依据。
Inputs: profile (required), token.
briefing_set_sourcesA
按分类订阅新闻来源。用户确认推荐的信源后调用。 已有的自定义信源会保留。
Inputs: category_ids (required), token.
briefing_stock_alert_dismissA
关闭一条或多条预警。用户说「第 3 条关了吧」「关掉那个预警」等时调用。
Inputs: alert_ids (required), token.
briefing_stock_alert_listA
查看预警列表。用户说「我设了哪些预警」「AAPL 的预警」等时调用。 返回每条预警的状态、触发次数、剩余时间。
Inputs: token, status, ticker.
briefing_stock_alert_setA
批量创建预警。用户贴入分析师报告后由 Claude 提取关注点并调用此工具。 也可手动创建:「帮我设一个 AAPL 的预警,关注造车项目是否取消」。 每只股票最多 10 条活跃预警。不传 ticker 则创建通用预警(跨股票/宏观事件)。
如果用户提供了分析师报告,请先提取关注点,呈现给用户确认后再调用此工具。
呈现提取结果时使用中性描述:
不说"报告认为风险很大"、"分析师非常担忧",说"报告提到了以下关注点"
rationale 字段只描述为什么从报告中提取了这条("报告指出 Q3 前会有明确决定"),不加入自己的判断(不说"这个风险确实值得重视")
Inputs: alerts (required), scope, token, ticker.
briefing_stock_alert_triggerA
记录预警触发 + 事件级去重。在 briefing_stock_digest 分析过程中发现新闻命中 alert 时调用。
流程:
从新闻中提取事件日期(event_date,事件本身发生的日期,非新闻发布日期)和事件摘要(summary)
调用此工具,server 会检查 trigger_history 中是否有日期相近(±3天)的已触发记录
如果返回 near_date_found + near_entries:
比对新闻内容与已有 event_signature
语义相同(同一事件重复报道)→ 再次调用此工具,action='append_duplicate'
有实质性进展(传闻→官方确认等)→ 再次调用此工具,action='confirm',is_update=true
不同事件 → 再次调用此工具,action='confirm',is_update=false
如果返回 new_trigger → 已自动记录,无需额外操作
触发通知的语气:
说"你设定的预警条件匹配到了以下新闻",不说"你担心的事情出现了新进展"
说"以下是相关来源的信息",不说"经查证,该消息基本属实"
事件更新用 ⚠️🔄 标注,附上"此前已有相关预警,本次为事件进展"
Inputs: alert_ids (required), token, action, is_update, +2 more.
briefing_stock_alert_updateA
修改预警的松紧度、时间窗口、描述、关键词。 用户说「那条预警改成 strict」「延长 3 个月」「加个关键词」等时调用。
Inputs: alert_id (required), token, status, description, +4 more.
briefing_stock_auto_fetchA
开启或关闭每日自动抓取股票新闻。用户说「帮我开启自动抓取」「关闭自动更新」「每天自动帮我更新股票消息」等时调用。
当用户首次通过 briefing_stock_watchlist_set 添加股票时,应主动问用户是否要开启每日自动抓取,解释其作用(保证趋势数据连续性),并尊重用户的选择。
Inputs: enabled (required), token.
briefing_stock_digestA
获取已抓取的股票新闻列表,供分析利好/利空。核心定位是帮用户提前看到风险。拿到数据后请:
根据该股票的侧重面(focus)逐条分析
每条新闻标注:🟢🟢 强利好 | 🟢 弱利好 | ⚪ 中性 | 🔴 弱利空 | 🔴🔴 强利空
跟侧重面无关但重大的消息也要标注
对🟢🟢和🔴🔴级别的消息,用 web search 查证官方来源
检查该股票的 active alerts(返回的 stock_alerts + global_alerts):
对每条新闻,检查是否命中任一 alert 的 keywords
命中时根据 alert 的 sensitivity 判断相关性: loose = 可能相关即触发 / normal = 直接相关才触发 / strict = 确定性进展才触发
判断为相关后,触发前先做事件去重: · 提取新闻中的事件日期(事件本身发生的日期,非新闻发布日期)和事件摘要 · 调用 briefing_stock_alert_trigger 检查是否重复 · 如果返回 near_date_found + near_entries,比对新闻内容与已有 event_signature:
语义相同 → 调用 action='append_duplicate' 追加来源,不重复触发预警
有实质性进展 → 调用 action='confirm', is_update=true,触发并标注为事件更新
不同事件 → 调用 action='confirm', is_update=false,正常触发
触发的新闻用 ⚠️ 标注并附上 alert 描述
事件更新用 ⚠️🔄 标注,附上"此前已有相关预警,本次为事件进展"
触发后立即 web search 深度查证,侧重"这个风险有多大、是否需要关注"
通用预警触发用 🌐⚠️ 标注
呈现顺序:预警触发和利空消息优先排列,利好消息正常列出但不渲染成"机会"
整体情绪总结
如有 alert 被触发,在总结末尾单独列出预警触发情况,并调用 briefing_stock_alert_trigger 记录
分析完成后,调用 briefing_stock_history_record 记录情绪快照(含 alert_triggers)
如果历史快照 >= 5 天(通过返回的 divergence 字段判断),检查情绪与股价背离:
情绪偏正面 + 股价跌 + alert 触发利空 → 预警捕捉到了尚未被充分定价的风险,重点提示
情绪偏正面 + 股价跌 + 无 alert 触发 → 可能遗漏了某个风险信号,建议用户检查是否需要补设预警
将背离分析作为单独板块呈现
不要主动给出买入/卖出/加仓/减仓建议,只提供风险信息
使用中性语气呈现所有信息:
不说"建议关注"、"持续关注"、"值得注意"、"需要警惕",说"以下是匹配到的消息"或直接呈现内容
不说"风险较大"、"情况不乐观"、"前景堪忧",说"新闻情绪偏负面"并附上具体新闻
不说"利好消息令人鼓舞"、"表现强劲",说"新闻情绪偏正面"并附上具体新闻
不说"可以考虑..."、"或许应该...",只呈现信息,不引导任何行动
预警触发时,只说"以下新闻匹配了你设定的预警条件",不说"你担心的事情发生了"
查证结果只呈现事实("该消息来源为路透社,引述两位匿名官员;公司官方尚未确认"),不做可靠性判断(不说"可靠性中等"、"基本可信")
用中文回复。
Inputs: date, limit, token, ticker.
briefing_stock_fetchA
抓取关注股票的最新新闻。用户说「看看我的股票有什么消息」「股票有什么新动态」等时调用。 不传 tickers 则抓取整个 watchlist。抓取后调用 briefing_stock_digest 获取文章列表做分析。
Inputs: token, tickers, hours_back.
briefing_stock_history_getA
查看某只股票的历史情绪趋势。用户说「AAPL 最近一周情况怎么样」「看看苹果的趋势」等时调用。 返回每日情绪评分 + 收盘价 + 涨跌幅,以及背离检测结果。
返回的 data_status 标记每天的数据状态:
complete: 有完整快照,直接使用
raw_only: 有原始抓取数据但没有快照。先调用 briefing_stock_digest(date=该日期) 做分析,再调用 briefing_stock_history_record 写入快照,然后继续
missing: 什么都没有,标记为数据缺失,在趋势分析中注明 补全完成后,再做整体的趋势分析和背离检测。
趋势呈现的语气约束:
背离分析只描述现象,不做预测。说"新闻情绪与股价走势方向不一致",不说"回调风险在累积"、"可能即将反转"
列出可能的解释时用"可能的原因包括:",不用"这说明..."、"这意味着..."
不使用"健康"、"危险"、"安全"等暗示投资判断的词
不说"走势良好"、"势头强劲"、"令人担忧",只呈现数据("过去 5 天新闻情绪均值 +0.8,股价累计 -2.3%")
Inputs: ticker (required), days, token.
briefing_stock_history_recordA
记录某只股票的每日情绪快照。在 briefing_stock_digest 分析完成后自动调用。 评分规则:🟢🟢=+2, 🟢=+1, ⚪=0, 🔴=-1, 🔴🔴=-2,sentiment_score = 加权平均值。
Inputs: ticker (required), breakdown (required), key_events (required), article_count (required), +5 more.
briefing_stock_watchlist_custom_sourcesA
管理某只股票的自定义信源(RSS)。用户说「给 AAPL 加一个 RSS 源」「AAPL 删掉那个自定义源」「看看 AAPL 的自定义信源」等时调用。 add_urls 添加 RSS 源,remove_urls 按 URL 移除。两者都不传则仅查看当前自定义信源列表。 URL 支持 {ticker}、{company} 占位符,抓取时自动替换。
Inputs: ticker (required), token, add_urls, remove_urls.
briefing_stock_watchlist_getA
查看关注的股票列表及每只股票的侧重面配置。用户说「我关注了哪些股票」「看看我的 watchlist」等时调用。
Inputs: token.
briefing_stock_watchlist_removeA
从关注列表中移除股票。用户说「不看 AAPL 了」「把 CBA 从 watchlist 删掉」等时调用。
Inputs: ticker (required), token.
briefing_stock_watchlist_setA
添加或更新关注的股票。用户说「帮我关注苹果」「加一只股票」「我想跟踪 CBA」等时调用。 不填 focus 则按 market + sector 自动推荐侧重面,返回推荐结果让用户确认。 可选信源(optin_sources)需用户明确说「加上」才填入,添加前告知用户相应限制说明(optin_notices)。
sector 常用值:Technology / Financials / Healthcare / Energy / Consumer / Other
Inputs: name (required), market (required), ticker (required), focus, +3 more.
briefing_stock_watchlist_update_focusA
调整某只股票的关注侧重面。用户说「AAPL 不看供应链了」「CBA 加上分析师评级」等时调用。 add_focus 和 remove_focus 可以同时传,都是侧重面ID列表。 可用ID:executive_trades / earnings / product_launch / competitor_share / regulatory / supply_chain / analyst_rating / litigation / ma_partnership / buyback_dividend / interest_rate_policy / macro_outlook
Inputs: ticker (required), token, add_focus, remove_focus.
briefing_suggest_sourcesA
根据用户的兴趣偏好推荐新闻来源(RSS、Reddit、Hacker News)。 用户说「帮我推荐信源」「有什么好的订阅推荐」等时调用。
Inputs: token.
briefing_view_logC
查看最近的阅读记录明细。
Inputs: limit, token.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 29 tools
The tools are mostly distinct, covering profile, sources, articles, interactions, and stock-specific features. A few pairs like set_sources/add_sources and watchlist_set/update_focus have slight overlap, but the descriptions provide enough clarity to differentiate them.
General tools follow a verb_noun pattern (e.g., set_profile, get_sources), but stock-related tools reverse the order to noun_verb (e.g., stock_watchlist_set, stock_alert_set). Additionally, names like interaction_summary and stock_watchlist_custom_sources deviate from a clear verb-based pattern, creating inconsistency across the set.
With 29 tools, the server has a very large tool surface. While each tool has a specific purpose, the count exceeds the typical well-scoped range and includes many narrowly-focused stock alert and history tools that could be consolidated, making it feel heavy.
The toolset covers the core news briefing lifecycle—registration, profile management, sources, article fetching, interaction tracking—and includes a comprehensive stock watchlist/alert/history subsystem. However, there is no way to remove general sources (only add/set), which is a notable gap in source management.
Maintenance
Related MCP Connectors
RSS & Atom feed manager with full-text search, AI curation, and remote MCP endpoint.
Dive into the latest and greatest from the tech world with our Hacker News MCP server.
Managed cloud RSS and Atom feed reader with a remote Model Context Protocol (MCP) endpoint. Zero server setup required — enables AI agents like Claude to instantly subscribe to feeds, search full-text articles, extract readable content, and access curated AI editions ("Your Newspaper") over secure streamable HTTP.
Publish, search, and promote time-sensitive news and messages through a public remote MCP server.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server pulling academic publications (arXiv, PubMed, HF Daily Papers), trending code (GitHub, HF Hub), and medical-device regulatory data (FDA 510(k), recalls) into newspaper-style briefings. Per-category round-robin, weighted configuration, sandbox-safe Python launcher.166MIT
- FlicenseNot gradedqualityDmaintenanceAutonomous news intelligence system that fetches articles from 20+ tech sources, ranks them with AI, generates summaries in English and Hindi, and delivers a curated email digest daily, exposed as an MCP server for interaction via any MCP-compatible client.-
- AlicenseNot gradedqualityDmaintenanceMCP server that fetches and filters AI-related news from 20+ RSS feeds with scheduled notifications and email digests.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that aggregates AI news, academic papers from ArXiv, and trending GitHub repositories from multiple sources, enabling users to fetch, search, and filter recent AI content via natural language.1MIT