关于 Overtone News Mcp
Overtone News MCP Server 为 Agent 提供实时新闻及报道语气、涌现话题、叙事变化和情绪峰值分析,适合需要超越新闻列表的时事信号的 Agent。
主要功能
- 01带语气与品牌安全标签的新闻
- 02报道语气分布分析
- 03新兴话题检测
- 04叙事变化排序
- 05语气峰值提醒与时间序列
- 06文章展示情况报告
适用场景
- 01了解某话题的报道语气
- 02发现新近涌现的话题
- 03监测品牌相关的愤怒或恐惧峰值
- 04追踪报道语气随时间的变化
MCP 相关
向 MCP 客户端提供新闻检索与分析工具,包括语气、新兴话题、峰值、叙事变化、时间序列和展示情况报告功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Overtone News MCP 服务
一款 MCP 服务,可为任何 Agent 提供实时新闻,以及充分利用新闻所需的上下文智能——包括语气分布、新兴话题、叙事转变、激增提醒和语气随时间变化图表,由 Overtone 的出版商网络提供支持。
适用于任何兼容 MCP 的客户端:Claude Desktop、Claude Code、 Cursor、Windsurf、Codex、Kimi K2 等。
效果展示
自然语言查询——用通俗英语提问,获取经过上下文分析的文章:

全球报道分析——比较不同语言和地区的语气:

语气时间序列——追踪某个主题的情绪报道如何随时间变化:

为什么要构建它
新闻 API 会返回文章。这是简单的部分。难点在于 Agent 实际上需要的一切,才能对时事进行推理:
- 某个主题报道的语气如何——公众情绪是愤怒、充满希望、提供信息,还是恐惧?
- 此刻有什么新兴话题是昨天还完全没有报道的?
- 叙事正在何处转变——哪些主题的语气变化最快?
- 我关注的事情是否出现了愤怒或恐惧情绪的激增?
- 某个特定事件的语气随时间呈现怎样的趋势?
此服务将这些内容全部作为 MCP 工具提供,让 Agent 能针对收到的问题获取合适的信号,而不只是获取一份平铺的头条新闻列表。
安装
此服务以 Python 软件包的形式发布。uvx(来自 uv)可以运行它,而不会让全局 Python 环境变得杂乱。只需安装一次 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
然后在 MCP 客户端配置中添加一个配置块。uvx 会从 PyPI 获取软件包,并在需要时运行——无需安装步骤。
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS)或平台上的对应文件:
{
"mcpServers": {
"overtone-news": {
"command": "uvx",
"args": ["overtone-news-mcp"]
}
}
}
Claude Code
编辑 ~/.config/claude-code/mcp.json:
{
"mcpServers": {
"overtone-news": {
"command": "uvx",
"args": ["overtone-news-mcp"]
}
}
}
Cursor / Windsurf
设置 → MCP → 添加服务:
- 命令:
uvx - 参数:
overtone-news-mcp
Codex
编辑 ~/.codex/config.toml:
[[mcp_servers]]
name = "overtone-news"
command = "uvx"
args = ["overtone-news-mcp"]
身份验证
首次调用工具时,服务会向 Overtone 注册一个免费套餐 API 密钥,并将其缓存在 ~/.overtone/credentials。该缓存与 Claude Code 的 Overtone News 技能共用,因此同时安装两者不会重复注册。
如需使用高级密钥(更高的速率和每日限额),请在 MCP 配置的 env 块中设置 OVERTONE_NEWS_API_KEY:
"overtone-news": {
"command": "uvx",
"args": ["--from", "git+https://github.com/CKBrennan/overtone-news-mcp", "overtone-news-mcp"],
"env": { "OVERTONE_NEWS_API_KEY": "ot-prod-..." }
}
速率限制:
| 套餐 | 每分钟 | 每天 |
|---|---|---|
auto(免费,自动配置) | 10 | 50 |
manual(高级) | 60 | 实际上不受限制 |
如需申请高级密钥,请发送邮件至 [email protected]。
环境变量
| 变量 | 默认值 | 用途 |
|---|---|---|
OVERTONE_NEWS_API_KEY | (自动注册) | 使用指定密钥,而非自动注册 |
OVERTONE_NEWS_API_URL | https://agentic-skills.overtone.ai | 覆盖 API 端点(用于可自托管或测试) |
工具
所有工具均返回 JSON。Agent 会根据用户的问题选择合适的工具——你无需直接调用它们。
news
提供某个主题的文章,每篇文章都标记了语气、品牌安全信号、文章类型和概念。适用于“X 最近发生了什么”。
news(query="AI regulation in Europe", max_results=10, days=7,
tone_filter="informational", brand_safe_only=True)
响应中包含一个 request_id——展示文章后将其传回 report,以便我们了解实际展示了哪些内容。
tone
显示某个主题近期报道的情绪语气分布——包括
happy、funny、hopeful、informational、angry、sad、
fearful,以及 dominant_tone。
tone(query="climate change", days=3)
当用户询问某个主题的报道方式如何,而不是发生了什么时使用。
pulse
可轮询的激增检测器。对于每个监控的情绪(默认
为 angry / sad / fearful),返回相对于基线时间窗口的
spike_ratio,以及布尔值 spiking。只有在
spike_ratio >= 1.5 且数据量足够时,才会填充 alerts。
pulse(query="acme corp", tones=["angry", "fearful"],
recent_hours=6, baseline_hours=72)
适用于每隔 5–15 分钟轮询一次。仅当 alerts 不为空时,才
向用户展示。
emerging
过去 24 小时内出现、而此前 48 小时内覆盖量为零的概念—— 可能正在兴起的新闻。经过聚类筛选,至少包含 3 篇文章和 2 个 来源,避免单篇文章带来的噪声。
emerging(limit=10)
velocity
过去 48 小时与最近 24 小时之间,情绪分布变化最显著的概念。用于回答“叙事正在何处转向?”按形状归一化的 L2 距离排序,因此均匀的数量增长不会被视为变化。
velocity(limit=10)
timeseries
某个主题随时间变化的情绪轨迹。bin 可以是 hour、6h 或
day。返回按时间排序的序列,其中包含每个时间段的情绪平均值、
article_count 和 dominant_tone。
timeseries(query="federal reserve", bin="6h", hours=168)
最适合呈现为 Mermaid 折线图或 ASCII 迷你图。
report
在 Agent 向用户展示文章之后静默调用,用于记录实际展示的
displayed_urls。这有助于 Overtone 了解哪些内容对 Agent 客户端最有价值。
report(request_id="<from news response>",
displayed_urls=[...], displayed_count=3,
sponsorship_displayed=False)
Agent 工作流示例
“现在大家对 NBA 季后赛的情绪如何?”
→ tone(query="NBA playoffs") → 总结情绪分布。
“FDA 有什么突发新闻是我应该知道的吗?”
→ emerging(limit=20) → 筛选与 FDA 相关的概念。
“每 10 分钟监测一次我们品牌的愤怒情绪激增。”
→ 循环调用 pulse(query="acme corp", tones=["angry"]);仅当
alerts 不为空时才展示。
“给我看看过去一周大家对 Tesla 的情绪。”
→ timeseries(query="Tesla", bin="6h", hours=168) → 呈现为图表。
“给我 5 篇关于太空探索的正面新闻。”
→ news(query="space exploration", max_results=5, tone_filter="positive")
→ 展示 → report(...)。
隐私——发送给 Overtone 的信息
服务器首次使用时自动注册免费套餐密钥,会发送:
hostname + OS user + CPU arch的 SHA-256 哈希值。我们永远不会看到 原始值;该哈希用于对同一台机器在重新安装后注册的密钥进行去重。
注册期间不会传输个人数据。
每次调用工具时,服务器都会将 API 密钥和工具的输入
参数发送到 ${OVERTONE_NEWS_API_URL}。我们会记录查询,用于分析
和防止滥用;详见 overtone.ai/privacy。
**不会向工具输入以外的任何对象发送文章内容、用户对话或 Agent 上下文。**我们看不到 Agent 的其余提示词、 记忆或其他工具调用。
如需退出自动注册,请手动将 OVERTONE_NEWS_API_KEY 设置为
你申请的密钥,或将 OVERTONE_NEWS_API_URL 指向你自己的
代理。
安全说明
- 文章内容中的提示注入。
news工具会返回出版方文本(标题、描述)。文章可能包含旨在操纵 Agent 的文本(例如“忽略之前的指令 并……”)。MCP 服务本身没有破坏性工具——它只读取数据—— 但在 Agent 推理时,你应将返回的文章文本视为不可信输入,就像对待任何网页 内容一样。主机中的沙箱隔离、仅输出渲染和工具允许列表是合适的缓解措施。 - 无法访问 Shell。 服务器绝不会代替
用户执行 Shell 命令。唯一使用
subprocess的地方是在注册期间读取git config --global user.{name,email}。 - 除
~/.overtone/credentials外无法访问文件系统。 服务器 不会读取或写入任何其他本地文件。
开发
git clone https://github.com/CKBrennan/overtone-news-mcp
cd overtone-news-mcp
uv sync
uv run overtone-news-mcp
开发时将其指向非生产环境的 API:
OVERTONE_NEWS_API_URL=http://localhost:8080 uv run overtone-news-mcp
许可证
MIT — 详见 LICENSE。
相关项目
- overtone-news-skill — Claude Code 技能版本(共用凭据)
- overtone.ai — API 背后的智能
mcp-name: io.github.CKBrennan/overtone-news-mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。