
Overtone News Mcp
io.github.CKBrennan由 GitHub 帳號 CKBrennan 發布v0.1.2更新於 Oct 24, 2026
Real-time news with tone analysis, brand safety, and narrative shift signals for AI agents.
概覽
本機 MCP 伺服器,讓助理取得即時新聞,並提供語氣分析、新興話題、敘事轉向與情緒激增訊號,以及語氣時間序列。
- 可以做什麼
- 依主題搜尋新聞文章,附上語氣、品牌安全訊號、文章類型與概念標籤,並透過 report 工具回傳實際展示的文章。統計某主題報導的情緒語氣分布,包含主要語氣。對照基準時間窗偵測指定語氣的激增,並找出先前沒有報導的新興概念。依語氣分布變化幅度排序概念,並以小時、6 小時或天為區間繪製主題語氣走勢。
- 適用情境
- 適合需要讓助理理解時事而非只列出標題的情境:判斷某話題的輿論情緒、發現突發新聞、追蹤敘事轉向,或監控圍繞品牌的憤怒、恐懼情緒激增。
- 執行需求
- 以 Python 套件形式在本機執行,通常透過 uvx 從 PyPI 啟動,因此需先安裝 uv。需要連線至 Overtone API 的網路存取。不需帳號:首次使用會自動註冊免費層金鑰並快取在使用者家目錄,也可透過環境變數 OVERTONE_NEWS_API_KEY 提供進階金鑰。可用 OVERTONE_NEWS_API_URL 覆寫 API 位址。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Overtone News Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Overtone News MCP Server
An MCP server that gives any agent real-time news plus the contextual intelligence to use it well — tone distribution, emerging stories, narrative shifts, spike alerts, and tone-over-time charts — powered by Overtone's publisher network.
Works with any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Windsurf, Codex, Kimi K2, and more.
What it looks like
Natural language queries — ask in plain English, get contextually analysed articles:
Global coverage analysis — compare tone across languages and regions:
[Global coverage tone comparison]
Tone timeseries — track how a topic's emotional coverage shifts over time:
Why this exists
News APIs return articles. That's the easy part. The hard part is everything an agent actually needs to reason about current events:
- What's the tone of coverage on a topic — is the public mood angry, hopeful, informational, fearful?
- What's emerging right now that had zero coverage yesterday?
- Where is the narrative turning — which topics are shifting tone fastest?
- Is there a spike in anger or fear around something I'm watching?
- How has tone trended over time on a given story?
This server exposes all of that as MCP tools, so an agent can pull the right signal for the question it's been asked — not just a flat feed of headlines.
Install
The server ships as a Python package. uvx (from uv)
runs it without cluttering your global Python. Install uv once:
Then add one block to your MCP client config. uvx fetches the package
from PyPI and runs it on demand — no install step needed.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or the equivalent on your platform:
Claude Code
Edit ~/.config/claude-code/mcp.json:
Cursor / Windsurf
Settings → MCP → Add server:
- Command:
uvx - Args:
overtone-news-mcp
Codex
Edit ~/.codex/config.toml:
Auth
On first tool call the server registers a free-tier API key with
Overtone and caches it at ~/.overtone/credentials. The cache is
shared with the Overtone News skill
for Claude Code, so installing both won't double-register.
For a premium key (higher rate and daily limits), set
OVERTONE_NEWS_API_KEY in the env block of your MCP config:
Rate limits:
To request a premium key, email [email protected].
Environment variables
Tools
All tools return JSON. The agent chooses which tool fits the user's question — you don't invoke them directly.
news
Articles on a topic, each tagged with tone, brand-safety signals, article type, and concepts. Use for "what's happening with X".
Response includes a request_id — pass it back to report after
presenting articles so we know what was actually shown.
tone
Emotional tone distribution across recent coverage of a topic —
happy, funny, hopeful, informational, angry, sad,
fearful, plus the dominant_tone.
Use when the user asks how a topic is being covered, not what happened.
pulse
Pollable spike detector. For each watched tone (default
angry / sad / fearful), returns spike_ratio vs. a baseline
window and a boolean spiking. alerts is populated only when
spike_ratio >= 1.5 with meaningful volume.
Intended for polling every 5–15 minutes. Surface to the user only
when alerts is non-empty.
emerging
Concepts appearing in the last 24 hours that had zero coverage in the prior 48 hours — candidate emerging stories. Cluster-filtered to ≥3 articles and ≥2 sources so single-article noise doesn't leak through.
velocity
Concepts whose tone distribution has shifted most sharply between the prior 48 hours and the most recent 24 hours. Answers "where is the narrative turning?". Ranked by shape-normalized L2 distance, so a uniform volume rise doesn't register as a shift.
timeseries
Tone trajectory over time for a topic. bin is hour, 6h, or
day. Returns an ordered series of per-bin tone averages,
article_count, and dominant_tone.
Best rendered as a Mermaid line chart or ASCII sparkline.
report
Called silently after the agent presents articles to the user, to
log which displayed_urls it actually showed. Helps Overtone
understand what content is most valuable to agentic clients.
Example agent flows
"What's the mood around the NBA playoffs right now?"
→ tone(query="NBA playoffs") → summarize the distribution.
"Anything breaking on the FDA I should know about?"
→ emerging(limit=20) → filter for FDA-related concepts.
"Track anger spikes on our brand every 10 minutes."
→ pulse(query="acme corp", tones=["angry"]) on a loop; surface
only when alerts is non-empty.
"Show me the last week of sentiment on Tesla."
→ timeseries(query="Tesla", bin="6h", hours=168) → render as chart.
"Give me 5 positive stories about space exploration."
→ news(query="space exploration", max_results=5, tone_filter="positive")
→ present → report(...).
Privacy — what's sent to Overtone
When the server auto-registers a free-tier key on first use, it sends:
- A SHA-256 hash of
hostname + OS user + CPU arch. We never see the raw values; the hash is used to deduplicate keys across reinstalls on the same machine.
No personal data is transmitted during registration.
On every tool call, the server sends the API key and the tool's input
parameters to ${OVERTONE_NEWS_API_URL}. We log queries for analytics
and abuse prevention; see overtone.ai/privacy.
No article content, user conversation, or agent context is ever sent beyond the tool inputs. We do not see the rest of your agent's prompt, memory, or other tool calls.
To opt out of auto-registration, set OVERTONE_NEWS_API_KEY manually
to a key you've requested, or point OVERTONE_NEWS_API_URL at your
own proxy.
Security notes
- Prompt injection via article content. The
newstool returns publisher text (headlines, descriptions). An article could contain text designed to manipulate an agent ("ignore previous instructions and …"). The MCP server itself has no destructive tools — it only reads — but you should treat returned article text as untrusted input in your agent's reasoning, the same way you'd treat any web content. Sandboxing, output-only rendering, and tool allowlists in the host are the right mitigations. - No shell access. The server never executes shell commands on
the user's behalf. The only
subprocessuse is readinggit config --global user.{name,email}during registration. - No filesystem access beyond
~/.overtone/credentials. The server does not read or write any other local files.
Development
Point it at a non-production API while developing:
License
MIT — see LICENSE.
Related
- overtone-news-skill — Claude Code skill version (shares credentials)
- overtone.ai — the intelligence behind the API
- [MCP Badge] mcp-name: io.github.CKBrennan/overtone-news-mcp
來源:README.md,提交 dfe037c
工具
0版本歷史
1- v0.1.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分