Rouse Context
Rouse Context
Ваш телефон обладает контекстом, которого нет у ИИ — данными о вашем здоровье, уведомлениями, статистикой использования приложений. Rouse Context делает этот контекст доступным для ИИ-ассистентов по запросу, не синхронизируя ваши данные с облаком.
Это Android-приложение, которое превращает ваш телефон в MCP-сервер. ИИ-клиенты, такие как Claude, подключаются к URL, ваш телефон «просыпается», и устанавливается прямое зашифрованное соединение. ИИ запрашивает то, что ему нужно, ваш телефон отвечает, а затем снова переходит в спящий режим. Ваши данные никогда не покидают устройство, кроме как через этот активный сеанс.
Статус: выпущена версия v1.0. Доступно в GitHub Releases. Для получения доступа к бета-версии в Google Play напишите на
beta@rousecontext.com. Работает с Claude, Cursor и любым MCP-совместимым клиентом.
Начало работы
Установка — скачайте APK из GitHub Releases и установите его (возможно, потребуется включить «Установка из неизвестных источников» в настройках Android). Или напишите на
beta@rousecontext.comдля получения доступа к бета-версии в Google Play.Настройка — откройте приложение, нажмите «Get Started» и предоставьте разрешения на доступ к уведомлениям. Приложение зарегистрируется на ретрансляторе и подготовит TLS-сертификаты вашего устройства (~10 секунд).
Включение интеграции — нажмите «Add Integration» на главном экране. Выберите одну (например, Health Connect), предоставьте запрошенные разрешения, и вы получите URL вида
https://brave-health.abc123.rousecontext.com/mcp.Подключение ИИ-клиента — вставьте этот URL в Claude (Settings → Connectors → Add custom connector), Cursor или любой другой MCP-клиент. Первое подключение вызовет запрос на подтверждение OAuth на вашем телефоне — нажмите «Approve».
Использование — спрашивайте ИИ о данных вашего здоровья, отправляйте себе уведомления, проверяйте экранное время. Каждый вызов инструмента записывается на вкладке «Audit» в приложении.
Related MCP server: fitbit-mcp
Как это работает
AI Client ──TLS──> Relay (SNI passthrough) ──mux WebSocket (mTLS)──> Your PhoneВы включаете интеграцию (например, Health Connect) и получаете URL вида
https://brave-health.abc123.rousecontext.com/mcp(интеграция идентифицируется префиксом имени хоста; путь всегда/mcp)Добавьте этот URL в Claude, Cursor или любой другой MCP-клиент
Когда клиент подключается, ретранслятор «будит» ваш телефон через push-уведомление FCM
Ваш телефон подключается обратно через mTLS WebSocket, и ретранслятор объединяет два TLS-потока
ИИ-клиент общается напрямую с вашим телефоном через сквозное зашифрованное TLS-соединение — ретранслятор никогда не видит открытый текст
Сеансы эфемерны. Телефон возвращается в спящий режим, когда клиент отключается.
Интеграции
Каждая интеграция включается независимо и получает собственную MCP-конечную точку с авторизацией OAuth (PKCE). 22 инструмента в 4 интеграциях:
Health Connect (3 инструмента)
Запрос данных Android Health Connect по 36 типам записей в 7 категориях (активность, тело, сон, жизненные показатели, питание, репродуктивное здоровье, осознанность).
Инструмент | Описание |
| Список типов записей Health Connect со статусом разрешений |
| Запрос записей по типу и временному диапазону |
| Сводка данных о здоровье по разрешенным типам за период |
Уведомления (5 инструментов)
Чтение, поиск и взаимодействие с уведомлениями устройства.
Инструмент | Описание |
| Список активных уведомлений |
| Поиск в истории уведомлений по тексту, пакету или временному диапазону |
| Статистика уведомлений, топ приложений и самый загруженный час за период |
| Вызов кнопки действия на активном уведомлении |
| Удаление активного уведомления по ключу |
Outreach (10 инструментов)
Позвольте ИИ выполнять действия на устройстве — запускать приложения, открывать ссылки, отправлять уведомления, управлять режимом «Не беспокоить».
Инструмент | Описание |
| Запуск установленного приложения по имени пакета |
| Открытие http/https URL в приложении по умолчанию |
| Копирование текста в буфер обмена |
| Отправка уведомления с дополнительными кнопками действий и URL при нажатии |
| Список установленных приложений |
| Создание канала уведомлений |
| Список каналов уведомлений, созданных ИИ |
| Удаление канала уведомлений, созданного ИИ |
| Получение состояния режима «Не беспокоить» |
| Установка состояния режима «Не беспокоить» |
Статистика использования (4 инструмента)
Паттерны использования приложений и аналитика экранного времени.
Инструмент | Описание |
| Итоговое экранное время и топ приложений за период |
| Использование одного приложения по дням |
| Необработанные события перехода приложений в фоновый/активный режим за диапазон |
| Сравнение экранного времени между двумя периодами; сначала самые большие дельты |
Архитектура
Android-приложение
Модуль | Назначение |
| Compose UI, Koin DI, навигация, темы |
| Протокол Mux, WebSocket-клиент, TLS-прием, CertificateStore |
| Маршрутизация сеансов MCP, HTTP-сервер, OAuth (код устройства + код авторизации + PKCE), управление токенами |
| Соединяет потоки туннеля Mux с сеансами MCP через TLS |
| Интерфейс |
| MCP-провайдеры: Health Connect, outreach (звонки/SMS/DND), статистика использования, захват уведомлений |
| Инфраструктура уведомлений, сохранение аудита (Room) |
| Фоновая служба, приемник FCM, WorkManager |
| Общие фикстуры для интеграционных тестов, запускающих реальный бинарный файл ретранслятора |
Сервер ретрансляции (relay/)
Rust-бинарный файл на небольшом VPS. Обрабатывает:
TLS passthrough — направляет соединения ИИ-клиентов к устройствам через SNI, никогда не завершает внутренний TLS
Mux WebSocket — мультиплексирует несколько клиентских сеансов через одно соединение с устройством
FCM wakeup — отправляет push-уведомления для пробуждения спящих устройств
ACME certs — выпускает TLS-сертификаты для каждого устройства через Google Trust Services DNS-01 (Cloudflare API); также поддерживается Let's Encrypt
Защита от ботов — секретный префикс URL проверяется перед пробуждением устройства, плюс ограничение частоты FCM и ограничение скорости по IP
Безопасность
Сквозное шифрование — TLS завершается на вашем телефоне. Ретранслятор выполняет только SNI passthrough.
Без синхронизации с облаком — данные считываются из локальных источников и передаются в реальном времени. Ничего не хранится удаленно.
ACME-сертификаты для каждого устройства — сертификаты через Google Trust Services (DNS-01), закрытый ключ в Android Keystore (на аппаратном уровне).
mTLS-аутентификация устройства — ретранслятор аутентифицирует устройство по сертификату клиента перед разрешением соединений.
Секретный префикс URL — каждый URL устройства включает сменяемый секрет для каждой интеграции (
brave-health.abc123.rousecontext.com, гдеbrave-health— это{adjective}-{integrationId}). Боты, обнаружившие поддомен устройства, не смогут разбудить его без секрета.OAuth для каждого клиента — каждый ИИ-клиент должен быть авторизован через подтверждение на устройстве перед доступом к инструментам.
Аудиторский след — каждый вызов инструмента записывается локально с аргументами, ответом и длительностью.
Сборка
Android
./gradlew assembleDebugТребуется Android SDK (compileSdk 36, targetSdk 35, minSdk 24). Для сборки требуется JDK 21 (JAVA_HOME=/usr/lib/jvm/java-21-openjdk).
Отчет о покрытии
./gradlew koverHtmlReportАгрегирует покрытие строк и веток во всех модульных юнит-тестах и уровне :core:tunnel:integrationTest (реальный подпроцесс ретранслятора). HTML-отчет находится в build/reports/kover/html/index.html. CI публикует тот же отчет как артефакт test-coverage плюс сводку по модулям в каждом PR.
Ретранслятор
cd relay
cargo build --releaseСквозные тесты (E2E)
E2E-тесты управляют реальным устройством через adb с хоста (обычно в локальной сети), на котором запущен adb. Системное свойство adb.host обязательно и по умолчанию пустое — задача :e2e:e2eTest завершается с ошибкой, если оно не задано. Серийный номер устройства необязателен и нужен только если к этому хосту подключено несколько устройств.
./gradlew :e2e:e2eTest \
-Dadb.host=<your-dev-host> \
-Dadb.serial=<your-device-serial>Модуль :device-tests имеет отдельный раннер, который собирает APK, указывающий на локально запущенный ретранслятор. Также требуется LAN IP, доступный с устройства:
./gradlew :device-tests:test -Dlan.ip=<your-lan-ip>Без lan.ip тесты устройства корректно пропускаются через предположения JUnit.
Статус
Версия v1.0 выпущена. 22 инструмента в 4 интеграциях, пробуждение из холодного старта за ~3 секунды, сквозное шифрование. Подробную документацию по дизайну и политику конфиденциальности см. в docs/design/.
Лицензия
Лицензировано по лицензии Apache License, версии 2.0. Подробности см. в файле LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Give your AI agent a memory and body on your iPhone: set alarms, ring your phone, over MCP.
Melaya is a remote MCP server. It gives an assistant hands on your own Android phone and browser: it reads the screen through the accessibility tree, then taps, types and navigates inside the apps and sites you allow-list, with no per-app API. It also builds, schedules and runs agent pipelines across 6k+ connected tools. OAuth 2.1, nothing to install.
Governed personal world model and memory for your AI agent. Pair once, connect over MCP.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to send SMS messages via Twilio through the Model Context Protocol or a standalone REST API. It supports standard messaging, automated greetings, and creative content generation using natural language.122 npmMIT
- AlicenseAqualityAmaintenanceMCP server for the Fitbit Web API with OAuth PKCE, local cache, and trend analysis.1837 PyPI2GPL 3.0
- AlicenseBqualityAmaintenanceA local-first MCP server that enables AI agents to read user-authorized Google Health API v4 data from Fitbit, Pixel Watch, and partners via OAuth, with tokens never leaving the machine.26604 npm64MIT
- AlicenseAqualityAmaintenanceMCP server that gives AI agents full vision and control over Android devices via ADB and scrcpy. Supports screenshots, input, apps, UI automation, shell, files, and clipboard.38278 npm109MIT