Integrations
Enables sending notifications to any device with ntfy integration, supporting rich message formatting with titles, tags, priorities, action buttons, and attachments for real-time notifications to phones, desktops, and other devices.
Ntfy MCP-сервер
Сервер MCP (Model Context Protocol), разработанный для взаимодействия с сервисом push-уведомлений ntfy . Он позволяет LLM и агентам AI отправлять уведомления на ваши устройства с обширными возможностями настройки.
Оглавление
- Обзор
- Функции
- Быстрый старт
- Установка
- Конфигурация
- Структура проекта
- Инструменты
- Ресурсы
- Варианты использования
- Доступные сценарии
- Внося вклад
- Лицензия
Обзор
Этот сервер реализует протокол Model Context Protocol (MCP), обеспечивая стандартизированную связь между LLM и внешними системами. В частности, он предоставляет интерфейс для службы push-уведомлений ntfy.
Ntfy — это простая служба уведомлений pub-sub на основе HTTP, которая позволяет отправлять уведомления на ваш телефон или рабочий стол с помощью простых HTTP-запросов. С этим MCP-сервером агенты LLM, такие как Клод, могут отправлять вам уведомления через ntfy без необходимости прямого HTTP-доступа.
Функции
- Реализация сервера MCP: создана с использованием
@modelcontextprotocol/sdk
для бесшовной интеграции с агентами LLM. - Интеграция с Ntfy: предоставляет инструмент (
send_ntfy
) для отправки уведомлений с поддержкой:- Приоритезация сообщений (1-5 уровней)
- Теги эмодзи
- Действия и кнопки, активируемые нажатием
- Прикрепленные файлы
- Задержка доставки
- Форматирование Markdown
- Раскрытие ресурса: раскрывает настроенную по умолчанию тему ntfy как ресурс MCP.
- TypeScript: современная, типобезопасная кодовая база с подробными определениями типов.
- Структурированное ведение журналов: использует
winston
иwinston-daily-rotate-file
для подробных и ротируемых журналов. - Управление конфигурацией: использует
dotenv
для простой настройки на основе среды. - Скрипты утилит: включают скрипты для очистки артефактов сборки и создания документации по структуре каталогов.
- Обработка ошибок и безопасность: реализует надежную обработку ошибок, очистку входных данных (
sanitize-html
) и фильтры безопасности (xss-filters
).
Быстрый старт
- Предварительные условия:
- Node.js (v16+)
- нпм или пряжа
- Клиент, совместимый с MCP (Claude Desktop, Cline и т. д.)
- Установить и запустить:Copy
- Добавить в настройки клиента MCP: добавьте сервер в файл настроек клиента MCP (см. Конфигурация ).
- Использование инструмента: После подключения вы можете использовать инструмент
send_ntfy
для отправки уведомлений.
Установка
Вариант 1: Пакет NPM (рекомендуется)
- Установите пакет глобально:Это установит сервер глобально и сделает его доступным как инструмент командной строки.Copy
- Или установите локально в своем проекте:При локальной установке вы можете запустить его через npx или из node.Copy
Вариант 2: Из источника
- Клонируйте репозиторий:Copy
- Установите зависимости:Copy
- Создайте проект:Copy
Конфигурация
Переменные среды
Создайте файл .env
в корне проекта на основе .env.example
:
Настройки клиента MCP
Для расширения Cline VSCode
Добавьте следующую конфигурацию в файл настроек Cline MCP (обычно он находится по адресу ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
в macOS):
При глобальной установке:
Если установлено из источника:
Для приложения Claude Desktop
Добавьте следующую конфигурацию в файл конфигурации Claude Desktop (обычно он находится в ~/Library/Application Support/Claude/claude_desktop_config.json
на macOS):
При глобальной установке:
Если установлено из источника:
Для установки исходного кода замените /path/to/ntfy-mcp-server/dist/index.js
на фактический абсолютный путь к файлу построенного сервера. Отрегулируйте переменные env
по мере необходимости для вашей настройки.
Настройка NTFy
- Установите приложение ntfy на свои устройства с ntfy.sh или из магазинов приложений.
- Подпишитесь на свою тему в приложении
- Используйте ту же тему в конфигурации вашего сервера MCP
Структура проекта
Инструменты
send_ntfy
Отправляет уведомление через службу ntfy.
Основные аргументы:
Параметр | Тип | Необходимый | Описание |
---|---|---|---|
topic | нить | Да | Тема ntfy для публикации. |
message | нить | Да | Основное содержание уведомления (макс. 4096 байт). |
title | нить | Нет | Заголовок уведомления (макс. 250 байт). |
tags | нить[] | Нет | Эмодзи или ключевые слова для категоризации (например, ["warning", "robot"] ). Макс. 5. |
priority | целое число | Нет | Приоритет сообщения: 1=мин., 2=низкий, 3=по умолчанию, 4=высокий, 5=макс. |
click | нить | Нет | URL-адрес, который будет открываться при нажатии на уведомление. |
actions | множество | Нет | Кнопки действий (просмотр, http, трансляция). Макс. 3. |
attachment | объект | Нет | URL и имя вложения. |
email | нить | Нет | Адрес электронной почты для пересылки уведомления. |
delay | нить | Нет | Задержка доставки (например, 30m , 1h , tomorrow ). |
cache | нить | Нет | Длительность кэширования (например, 10m , 1h , 1d ). |
firebase | нить | Нет | Тема Firebase Cloud Messaging (FCM) для пересылки. |
id | нить | Нет | Уникальный идентификатор сообщения. |
expires | нить | Нет | Срок действия сообщения (например, 10m , 1h , 1d ). |
markdown | булев | Нет | Установите значение true , чтобы включить форматирование markdown в сообщении. |
baseUrl | нить | Нет | Переопределить URL-адрес сервера ntfy по умолчанию для этого запроса. |
Пример использования:
Пример ответа:
Ресурсы
Прямые Ресурсы
ntfy://default
- Описание: Возвращает тему ntfy по умолчанию, настроенную в переменных среды сервера (
NTFY_DEFAULT_TOPIC
). - Использование: полезно для клиентов, желающих узнать основную тему без необходимости предварительной настройки.
- Пример: агент LLM может получить доступ к этому ресурсу, чтобы автоматически использовать тему по умолчанию при отправке уведомлений.
- Пример ответа:Copy
Шаблоны ресурсов
ntfy://{topic}
- Описание: Возвращает информацию о конкретной теме ntfy.
- Параметры:
topic
- Название темы ntfy. - Использование: Для запроса информации по темам, отличным от тем по умолчанию.
- Пример ответа:Copy
Варианты использования
- Уведомления о длительных задачах — получайте уведомления о завершении таких задач, как резервное копирование базы данных, генерация кода или обработка данных.
- Запланированные напоминания — установите отложенные уведомления для будущих событий или напоминаний.
- Системы оповещений — настройте критические оповещения для систем мониторинга или важных событий.
- Мобильные уведомления от LLM — разрешите LLM отправлять уведомления прямо на ваш телефон.
- Обновления многоэтапного процесса — получайте обновления по мере завершения различных этапов сложного процесса.
Примеры использования
Базовое уведомление
Расширенное уведомление с действиями
Доступные сценарии
npm run build
: компилирует исходный код TypeScript в JavaScript в каталогеdist/
.npm run clean
: удаляет каталогdist/
и очищает содержимое каталогаlogs/
.npm run rebuild
: выполняетclean
, а затемbuild
.npm run tree
: создает представление дерева каталогов вdocs/tree.md
.npm start
: запускает скомпилированный сервер из каталогаdist/
с помощью Node.js.npm run watch
: отслеживает объединенный файл журнала (logs/combined.log
) для мониторинга в реальном времени.
Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запросы на включение изменений или открытые вопросы для улучшения проекта.
- Создайте форк репозитория.
- Создайте ветку функций (
git checkout -b feature/your-feature
). - Зафиксируйте изменения (
git commit -m 'Add some feature'
). - Отправьте изменения в ветку (
git push origin feature/your-feature
). - Создайте новый запрос на извлечение.
Для сообщений об ошибках и запросов на новые функции, пожалуйста, создайте запрос в репозитории.
Лучшие практики разработки
- Следуйте лучшим практикам TypeScript и поддерживайте строгую типизацию
- Написание тестов для новых функций
- Поддерживайте зависимости в актуальном состоянии
- Следуйте существующему стилю и шаблонам кода.
Лицензия
Этот проект лицензирован по лицензии Apache-2.0. Подробности смотрите в файле LICENSE .
Благодарности
- ntfy.sh для предоставления услуги уведомления
- Протокол контекста модели для обеспечения соединений LLM с инструментом
- Все участники и пользователи этого проекта
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Сервер Model Context Protocol, позволяющий системам ИИ отправлять уведомления в режиме реального времени на телефоны, настольные компьютеры и другие устройства через службу публикации/подписки ntfy.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol implementation that enables AI agents to send notifications through Pushover.net, supporting message customization with various parameters like priority, sound, and URL.Last updated -317TypeScriptMIT License
- -securityFlicense-qualityA versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.Last updated -2Python
- -securityAlicense-qualityA Model Context Protocol service that sends desktop notifications and alert sounds when AI agent tasks are completed, integrating with various LLM clients like Claude Desktop and Cursor.Last updated -13PythonMIT License
- -securityFlicense-qualityA demonstration implementation of the Model Context Protocol server that facilitates communication between AI models and external tools while maintaining context awareness.Last updated -Python