mcpField
O
Overtone News Mcp

Overtone News Mcp

本地服务
github.com/CKBrennan数据与分析125 周前更新

关于 Overtone News Mcp

Overtone News MCP Server 为 Agent 提供实时新闻及报道语气、涌现话题、叙事变化和情绪峰值分析,适合需要超越新闻列表的时事信号的 Agent。

主要功能

  1. 01带语气与品牌安全标签的新闻
  2. 02报道语气分布分析
  3. 03新兴话题检测
  4. 04叙事变化排序
  5. 05语气峰值提醒与时间序列
  6. 06文章展示情况报告

适用场景

  1. 01了解某话题的报道语气
  2. 02发现新近涌现的话题
  3. 03监测品牌相关的愤怒或恐惧峰值
  4. 04追踪报道语气随时间的变化

MCP 相关

向 MCP 客户端提供新闻检索与分析工具,包括语气、新兴话题、峰值、叙事变化、时间序列和展示情况报告功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"overtone-news": {
"command": "uvx",
"args": [
"overtone-news-mcp"
],
"env": {
"OVERTONE_NEWS_API_KEY": "<OVERTONE_NEWS_API_KEY>"
}
}
}
}
启动命令uvx overtone-news-mcp
需要配置的环境变量
OVERTONE_NEWS_API_KEY密钥Overtone API key (auto-registers a free key if not set)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiovertone-news-mcp0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Overtone News MCP 服务

一款 MCP 服务,可为任何 Agent 提供实时新闻,以及充分利用新闻所需的上下文智能——包括语气分布、新兴话题、叙事转变、激增提醒和语气随时间变化图表,由 Overtone 的出版商网络提供支持。

适用于任何兼容 MCP 的客户端:Claude Desktop、Claude Code、 Cursor、Windsurf、Codex、Kimi K2 等。


效果展示

自然语言查询——用通俗英语提问,获取经过上下文分析的文章:

自然语言新闻演示

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

全球报道语气比较

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

AI 语气时间序列


为什么要构建它

新闻 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(免费,自动配置)1050
manual(高级)60实际上不受限制

如需申请高级密钥,请发送邮件至 [email protected]。


环境变量

变量默认值用途
OVERTONE_NEWS_API_KEY(自动注册)使用指定密钥,而非自动注册
OVERTONE_NEWS_API_URLhttps://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 Badge mcp-name: io.github.CKBrennan/overtone-news-mcp

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。