overtone-news-mcp
MCP-сервер Overtone News
MCP-сервер, который предоставляет любому агенту новости в реальном времени, а также контекстную аналитику для их эффективного использования — распределение тональности, новые темы, сдвиги в повествовании, оповещения о всплесках и графики изменения тональности во времени, работающий на базе издательской сети Overtone.
Работает с любым MCP-совместимым клиентом: Claude Desktop, Claude Code, Cursor, Windsurf, Codex, Kimi K2 и другими.
Как это выглядит
Запросы на естественном языке — спрашивайте на обычном английском, получайте контекстно-анализированные статьи:

Анализ глобального охвата — сравнивайте тональность по языкам и регионам:

Временные ряды тональности — отслеживайте, как эмоциональный окрас темы меняется с течением времени:

Зачем это нужно
Новостные API возвращают статьи. Это простая часть. Сложная часть — это всё то, что на самом деле нужно агенту для анализа текущих событий:
Какова тональность освещения темы — общественное настроение гневное, обнадеживающее, информативное, пугающее?
Что появляется прямо сейчас, чего вчера вообще не было в новостях?
Где происходит поворот в повествовании — какие темы меняют тональность быстрее всего?
Есть ли всплеск гнева или страха вокруг того, за чем я слежу?
Как менялась тональность с течением времени по конкретной истории?
Этот сервер предоставляет всё это в виде инструментов MCP, чтобы агент мог извлечь нужный сигнал для ответа на заданный вопрос, а не просто получить плоскую ленту заголовков.
Установка
Сервер поставляется как пакет 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"]Авторизация
При первом вызове инструмента сервер регистрирует бесплатный API-ключ в Overtone и кэширует его в ~/.overtone/credentials. Кэш является общим с навыком Overtone News для Claude Code, поэтому установка обоих не приведет к двойной регистрации.
Для получения премиум-ключа (более высокие лимиты по количеству запросов и дневные лимиты) установите OVERTONE_NEWS_API_KEY в блоке env вашей конфигурации MCP:
"overtone-news": {
"command": "uvx",
"args": ["--from", "git+https://github.com/CKBrennan/overtone-news-mcp", "overtone-news-mcp"],
"env": { "OVERTONE_NEWS_API_KEY": "ot-prod-..." }
}Лимиты:
Уровень | В минуту | В день |
| 10 | 50 |
| 60 | практически неограничен |
Чтобы запросить премиум-ключ, напишите на business@overtone.ai.
Переменные окружения
Переменная | По умолчанию | Назначение |
| (авто-регистрация) | Использовать конкретный ключ вместо авто-регистрации |
|
| Переопределить API-эндпоинт (для собственного хостинга или тестирования) |
Инструменты
Все инструменты возвращают JSON. Агент сам выбирает, какой инструмент подходит для вопроса пользователя — вы не вызываете их напрямую.
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. alerts заполняется только тогда, когда spike_ratio >= 1.5 при значимом объеме.
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 (6 часов) или day (день). Возвращает упорядоченный ряд средних значений тональности по бинам, article_count и dominant_tone.
timeseries(query="federal reserve", bin="6h", hours=168)Лучше всего отображать в виде линейного графика Mermaid или спарклайна ASCII.
report
Вызывается молча после того, как агент представил статьи пользователю, чтобы залогировать, какие displayed_urls он действительно показал. Помогает Overtone понять, какой контент наиболее ценен для агентских клиентов.
report(request_id="<from news response>",
displayed_urls=[...], displayed_count=3,
sponsorship_displayed=False)Примеры сценариев агента
"Какое настроение вокруг плей-офф НБА прямо сейчас?"
→ 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
Когда сервер автоматически регистрирует ключ бесплатного уровня при первом использовании, он отправляет:
SHA-256 хэш от
имя хоста + пользователь ОС + архитектура процессора. Мы никогда не видим исходные значения; хэш используется для дедупликации ключей при переустановке на одной и той же машине.
При регистрации личные данные не передаются.
При каждом вызове инструмента сервер отправляет API-ключ и входные параметры инструмента на ${OVERTONE_NEWS_API_URL}. Мы логируем запросы для аналитики и предотвращения злоупотреблений; см. overtone.ai/privacy.
Никакое содержимое статей, разговоры пользователей или контекст агента никогда не отправляются за пределы входных данных инструмента. Мы не видим остальную часть промпта вашего агента, его память или другие вызовы инструментов.
Чтобы отказаться от авто-регистрации, установите OVERTONE_NEWS_API_KEY вручную на ключ, который вы запросили, или укажите OVERTONE_NEWS_API_URL на свой собственный прокси.
Заметки по безопасности
Промпт-инъекции через содержимое статей. Инструмент
newsвозвращает текст издателя (заголовки, описания). Статья может содержать текст, предназначенный для манипуляции агентом ("игнорируй предыдущие инструкции и…"). Сам MCP-сервер не имеет деструктивных инструментов — он только читает — но вы должны относиться к возвращенному тексту статьи как к недоверенному вводу в рассуждениях вашего агента, так же, как вы относились бы к любому веб-контенту. Песочницы, рендеринг только вывода и списки разрешенных инструментов в хосте являются правильными мерами защиты.Нет доступа к оболочке (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
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CKBrennan/overtone-news-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server