Skip to main content
Glama

Rouse Context

あなたのスマートフォンには、AIが持っていないコンテキスト(ヘルスデータ、通知、アプリの使用状況など)があります。Rouse Contextは、そのコンテキストをAIアシスタントがオンデマンドで利用できるようにします。データがクラウドに同期されることは一切ありません。

これは、スマートフォンをMCPサーバーに変えるAndroidアプリです。ClaudeのようなAIクライアントがURLに接続すると、スマートフォンが起動し、直接暗号化されたセッションが確立されます。AIが必要な情報を要求し、スマートフォンが応答した後、再びスリープ状態に戻ります。ライブセッション以外でデータがデバイスから外部に出ることはありません。

ステータス: v1.0リリース済み。GitHub Releasesから入手可能です。Google Playのベータ版へのアクセスについては、beta@rousecontext.comまでメールでお問い合わせください。Claude、Cursor、およびMCP互換クライアントで動作します。

はじめに

  1. インストール — GitHub ReleasesからAPKをダウンロードしてサイドロードします(Androidの設定で「不明なアプリのインストール」を有効にする必要がある場合があります)。または、Google Playのベータ版へのアクセスについてはbeta@rousecontext.comまでメールしてください。

  2. オンボーディング — アプリを開き、「Get Started」をタップして通知の権限を許可します。アプリがリレーに登録され、デバイスのTLS証明書がプロビジョニングされます(約10秒)。

  3. 統合の有効化 — ホーム画面で「Add Integration」をタップします。いずれか(例:Health Connect)を選択し、要求された権限を許可すると、https://brave-health.abc123.rousecontext.com/mcpのようなURLが発行されます。

  4. AIクライアントの接続 — そのURLをClaude(設定 → コネクタ → カスタムコネクタを追加)、Cursor、または任意のMCPクライアントに貼り付けます。最初の接続時にスマートフォンでOAuthの承認が求められるので、「承認」をタップします。

  5. 使用する — AIにヘルスデータについて尋ねたり、自分宛てに通知を送ったり、スクリーンタイムを確認したりできます。すべてのツール呼び出しは、アプリの「Audit」タブに記録されます。

Related MCP server: fitbit-mcp

仕組み

AI Client ──TLS──> Relay (SNI passthrough) ──mux WebSocket (mTLS)──> Your Phone
  1. 統合(例:Health Connect)を有効にすると、https://brave-health.abc123.rousecontext.com/mcpのようなURLが取得されます(統合はホスト名のプレフィックスで識別され、パスは常に/mcpです)

  2. そのURLをClaude、Cursor、または任意のMCPクライアントに追加します

  3. クライアントが接続すると、リレーがFCMプッシュ経由でスマートフォンを起動します

  4. スマートフォンがmTLS WebSocket経由で接続し直し、リレーが2つのTLSストリームを結合します

  5. AIクライアントはエンドツーエンドで暗号化されたTLS経由でスマートフォンと直接通信します。リレーがプレーンテキストを見ることはありません

セッションは一時的なものです。クライアントが切断されると、スマートフォンはスリープ状態に戻ります。

統合

各統合は個別に有効化され、OAuth認証(PKCE)を備えた独自のMCPエンドポイントを取得します。4つの統合で22のツールが利用可能です:

Health Connect (3ツール)

7つのカテゴリ(アクティビティ、身体、睡眠、バイタル、栄養、生殖、マインドフルネス)にわたる36種類のレコードタイプで、Android Health Connectデータを照会します。

ツール

説明

list_record_types

権限ステータスを含むHealth Connectレコードタイプの一覧

query_health_data

タイプと期間を指定してレコードを照会

get_health_summary

指定期間の許可されたタイプ全体のヘルスサマリー

通知 (5ツール)

デバイスの通知を読み取り、検索し、操作します。

ツール

説明

list_active_notifications

表示中の通知の一覧

search_notification_history

テキスト、パッケージ、または期間で通知履歴を検索

get_notification_stats

指定期間の通知数、トップアプリ、最も忙しい時間帯

perform_notification_action

アクティブな通知のアクションボタンを呼び出し

dismiss_notification

キーを指定してアクティブな通知を消去

アウトリーチ (10ツール)

AIがデバイス上でアクションを実行できるようにします(アプリの起動、リンクを開く、通知の送信、おやすみモードの管理など)。

ツール

説明

launch_app

パッケージ名でインストール済みアプリを起動

open_link

デフォルトアプリでhttp/https URLを開く

copy_to_clipboard

クリップボードにテキストをコピー

send_notification

オプションのアクションボタンとタップして開くURL付きの通知を投稿

list_installed_apps

インストール済みアプリの一覧

create_notification_channel

通知チャンネルを作成

list_notification_channels

AIが作成した通知チャンネルの一覧

delete_notification_channel

AIが作成した通知チャンネルを削除

get_dnd_state

おやすみモードの状態を取得

set_dnd_state

おやすみモードの状態を設定

使用状況統計 (4ツール)

アプリの使用パターンとスクリーンタイムの分析。

ツール

説明

get_usage_summary

指定期間のスクリーンタイム合計とトップアプリ

get_app_usage

アプリごとの日次使用状況

get_usage_events

指定範囲内のアプリのフォアグラウンド/バックグラウンドイベントの生データ

compare_usage

2つの期間のスクリーンタイムを比較。差分が大きい順に表示

アーキテクチャ

Androidアプリ

モジュール

目的

:app

Compose UI、Koin DI、ナビゲーション、テーマ設定

:core:tunnel

Muxプロトコル、WebSocketクライアント、TLS受け入れ、CertificateStore

:core:mcp

MCPセッションルーティング、HTTPサーバー、OAuth(デバイスコード + 認証コード + PKCE)、トークン管理

:core:bridge

トンネルMuxストリームをTLS経由でMCPセッションにブリッジ

:api

McpIntegrationインターフェース、IntegrationStateStore

:integrations

MCPプロバイダー:Health Connect、アウトリーチ(通話/SMS/DND)、使用状況統計、通知キャプチャ

:notifications

横断的な通知インフラ、監査の永続化(Room)

:work

フォアグラウンドサービス、FCMレシーバー、WorkManager

:core:testfixtures

実際のリレーバイナリを起動する統合テスト層向けの共有フィクスチャ

リレーサーバー (relay/)

小型VPS上のRustバイナリ。以下を処理します:

  • TLSパススルー — SNI経由でAIクライアントの接続をデバイスにルーティングし、内部TLSを終了させない

  • Mux WebSocket — 1つのデバイス接続で複数のクライアントセッションを多重化

  • FCMウェイクアップ — スリープ中のデバイスを起動するためのプッシュ通知を送信

  • ACME証明書 — Google Trust Services DNS-01(Cloudflare API)経由でデバイスごとのTLS証明書を発行。Let's Encryptもサポート

  • ボット保護 — デバイス起動前にシークレットURLプレフィックスを検証。さらにFCMスロットルとIPレート制限を実施

セキュリティ

  • エンドツーエンド暗号化 — TLSはスマートフォン上で終了します。リレーはSNIパススルーのみを行います。

  • クラウド同期なし — データはデバイス上のソースから読み取られ、ライブで提供されます。リモートに保存されることはありません。

  • デバイスごとのACME証明書 — Google Trust Services (DNS-01) 経由のデバイスごとの証明書。秘密鍵はAndroid Keystore(ハードウェアバックアップ)に保存されます。

  • mTLSデバイス認証 — リレーは接続を許可する前にクライアント証明書でデバイスを認証します。

  • シークレットURLプレフィックス — 各デバイスのURLには、統合ごとに回転可能なシークレットが含まれています(brave-health.abc123.rousecontext.com。brave-healthは{形容詞}-{統合ID})。デバイスのサブドメインを発見したボットでも、シークレットなしでは起動できません。

  • クライアントごとのOAuth — 各AIクライアントは、ツールにアクセスする前にデバイス上での承認が必要です。

  • 監査証跡 — すべてのツール呼び出しは、引数、応答、期間とともにローカルに記録されます。

ビルド

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テストは、adbを実行しているホスト(通常はLAN内)経由で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リリース済み。4つの統合で22のツール、約3秒でのコールドスタート起動、エンドツーエンド暗号化。詳細な設計ドキュメントについてはdocs/design/を参照し、プライバシーポリシーもご確認ください。

ライセンス

Apache License, Version 2.0の下でライセンスされています。詳細はLICENSEを参照してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    1
    22 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A 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.
    26
    604 npm
    64
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP 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.
    38
    278 npm
    109
    MIT