Sensact について
Sensactは、ユーザー所有デバイスの機能に認証付きでアクセスするSupabaseホスト型のリモートMCPサーバーです。現状はデバイスの検出、機能の確認、単発の呼び出し、構造化結果やアーティファクト参照の返却に対応しますが、実デバイスのランタイムは未接続です。
主な機能
- 01認証済みユーザーのデバイス一覧
- 02デバイス機能の確認
- 03ジョブによる単発機能の呼び出し
- 04結果またはアーティファクト参照の返却
- 05Supabase AuthによるOAuth 2.1認可
活用シーン
- 01MCPユーザーが利用できる登録済みデバイスの検出
- 02機能を呼び出す前のデバイス確認
- 03カメラや画面のキャプチャ依頼
- 04登録済み機能による連絡先検索
MCP 対応
SensactはSupabase AuthによるOAuth 2.1認可付きのリモートMCPエンドポイントを提供します。ツールでデバイスと機能の一覧、機能呼び出し、アーティファクト取得ができますが、呼び出しにはジョブを処理して結果を記録するデバイスランタイムが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcpclaude mcp add --transport http sensact-agents-sensact https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp{"mcpServers":{"sensact-agents-sensact":{"type":"http","url":"https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp"}}}Cursor で開く{"servers":{"sensact-agents-sensact":{"type":"http","url":"https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp"}}}VS Code で開く{"mcpServers":{"sensact-agents-sensact":{"type":"http","url":"https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp"}}}{"mcpServers":{"sensact-agents-sensact":{"serverUrl":"https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Sensact
Sensact は、Supabase 上でホストされる remote MCP デバイスプラットフォームです。
Codex や Claude などの LLM クライアントが、標準的な MCP サーバーを通じてユーザー所有デバイスの機能を検出し、呼び出せるようにすることを目指しています。Supabase Auth が OAuth 2.1 の認可フローを提供し、Postgres + Realtime + Storage がコントロールプレーンを提供します。
MCP Registry Preview
Sensact は、公式 MCP Registry に向けた remote-only public preview サーバーとして準備されています。
- Registry 名:
io.github.sensact-agents/sensact - Registry メタデータファイル:server.json
- 正規リポジトリ:
https://github.com/sensact-agents/Sensact - 公開プレビュー MCP URL:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp - 公開プレビューの保護対象リソースメタデータ:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource - 公開プレビューの認可サーバーメタデータ:
https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server
Current Scope
v1 は、デバイス機能の単発呼び出しに焦点を当てています。
- 認証済みユーザーが参照できるデバイスを一覧表示する
- デバイスの機能を確認する
- ジョブを通じてシンプルなデバイス機能を呼び出す
- 構造化された結果またはアーティファクト参照を返す
v1 の参考機能:
vision.camera_capturecontacts.find_contactvision.screen_capture
今後のフェーズで予定している内容:
v2:リアルタイムの音声/動画向けWebRTCメディアセッションv3:高度なアクションとリアルタイム推論のオーケストレーション
Repository Layout
- docs
- 製品、アーキテクチャ、データモデル、MCP API、Supabase スキーマ、同意、ランタイム設計
- schemas/mcp
- JSON Schema コントラクトと MCP ツール登録メタデータ
- services/mcp-service
- MCP ツール定義とサーバー側の構造をまとめた TypeScript パッケージ
- services/oauth-consent-app
/と/oauth/consentにある Supabase OAuth サーバー向けのブラウザー認証および同意 UI
- supabase
- Edge Function MCP ゲートウェイ、マイグレーション、設定、シードデータ
このリポジトリのスナップショットには含まれないもの:
- mediapipe
- ネストされた上流リポジトリとして無視されています
Key Documents
- sensact-app-product-design.md
- sensact-system-architecture.md
- sensact-mcp-api.md
- sensact-supabase-schema.md
- sensact-oauth-consent.md
Current Implementation Status
このリポジトリで実装済み:
- supabase/functions/mcp にある
Supabase Edge FunctionMCP ゲートウェイ - リモート MCP OAuth 用の保護対象リソースメタデータと
WWW-Authenticateチャレンジ list_devices、list_device_capabilities、invoke_device_capability、get_artifact- コアレジストリ、機能、実行、アーティファクト、RLS のセットアップ向け Supabase SQL マイグレーション
- Google サインイン、マジックリンクのフォールバック、
Supabase Auth向け OAuth 同意 UI を備えたブラウザー認証アプリ
既知の制限事項:
- 実際のデバイスランタイムはまだ接続されていないため、デバイスの検出には外部からのデバイス登録が必要です
invoke_device_capabilityでジョブを処理して結果を書き込むには、実際のデバイスランタイムが必要です- 本番環境では、同意アプリを
https://www.sensactagent.com/oauth/consentから配信する必要があります
Prerequisites
Node.js 20+npmSupabase CLI- 次の条件を満たす
Supabaseプロジェクト:- OAuth サーバーが有効になっている
- 動的 OAuth アプリ登録が有効になっている
- このリポジトリがそのプロジェクトにリンクされているか、接続先として設定されている
Local Development
1. MCP 共有パッケージ
cd /Users/luolingfeng/Sensact/services/mcp-service
npm install
npm run typecheck
2. Web 認証アプリ
cd /Users/luolingfeng/Sensact/services/oauth-consent-app
cp .env.example .env
次を設定します。
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
次に、以下を実行します。
npm install
npm run dev
ローカル開発では、Web 認証アプリは次の URL で実行されます。
http://127.0.0.1:3000/
http://127.0.0.1:3000/oauth/consent
Web 認証アプリの本番用 URL:
https://www.sensactagent.com/
https://www.sensactagent.com/oauth/consent
3. Supabase スキーマと関数のデプロイ
マイグレーションをプッシュします。
cd /Users/luolingfeng/Sensact
supabase db push --linked --yes
MCP 関数をデプロイします。
cd /Users/luolingfeng/Sensact
supabase functions deploy mcp --project-ref <project-ref> --use-api --no-verify-jwt
--no-verify-jwt は意図的に指定しています。ゲートウェイは、リモート MCP の検出に対して独自の 401 + WWW-Authenticate チャレンジを返す必要があります。
MCP エンドポイント
公開プレビューサーバーの URL:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
公開プレビューの保護されたリソースメタデータ:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
公開プレビューの認可サーバーメタデータ:
https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server
デプロイテンプレート:
https://<project-ref>.supabase.co/functions/v1/mcp
https://<project-ref>.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
https://<project-ref>.supabase.co/auth/v1/.well-known/oauth-authorization-server
MCP クライアントでの使用
レジストリの検索:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"
Codex 用の代替インストール方法:
codex mcp add sensact --url https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
Supabase OAuth でログインします。
codex mcp login sensact
ステータスを確認します。
codex mcp list
codex mcp get sensact
Claude Code 用の代替インストール方法:
claude mcp add --transport http sensact https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
MCP レジストリへの公開
このリポジトリは、Git タグを使用し、GitHub Actions OIDC 経由で公式 MCP Registry に公開します。
リリースタグを作成してプッシュします。
git tag vX.Y.Z
git push origin vX.Y.Z
.github/workflows/publish-mcp.yml のワークフローでは、次の処理を行います。
- リポジトリレベルの公開テストを実行します
services/mcp-serviceの型チェックを行いますservices/oauth-consent-appのテストとビルドを行います- 公開プレビュー MCP エンドポイントのスモークテストを行います
server.jsonを$schemaに照らして検証します- プッシュされたタグのバージョンを
server.jsonに設定します mcp-publisher login github-oidcで認証しますio.github.sensact-agents/sensactを Registry に公開します
公開後、公開エントリーを確認します。
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"
検証コマンド
同意アプリ:
cd /Users/luolingfeng/Sensact/services/oauth-consent-app
npm test
npm run build
MCP 共有パッケージ:
cd /Users/luolingfeng/Sensact/services/mcp-service
npm run typecheck
レジストリ公開アセット:
cd /Users/luolingfeng/Sensact
node --test scripts/registry-publication.test.mjs
node scripts/validate-server-json.mjs
node scripts/smoke-test-remote-mcp.mjs
リモート MCP の検出:
curl -i https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
curl -i https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
curl -i https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server
Git
現在のリポジトリの初期設定:
- コミット:
d394e5b - タグ:
v0.1.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。