mcpField
S
Sensact

Sensact

リモート
sensactagent.comその他033 週間前に更新
リポジトリ公式サイト

Sensact について

Sensactは、ユーザー所有デバイスの機能に認証付きでアクセスするSupabaseホスト型のリモートMCPサーバーです。現状はデバイスの検出、機能の確認、単発の呼び出し、構造化結果やアーティファクト参照の返却に対応しますが、実デバイスのランタイムは未接続です。

主な機能

  1. 01認証済みユーザーのデバイス一覧
  2. 02デバイス機能の確認
  3. 03ジョブによる単発機能の呼び出し
  4. 04結果またはアーティファクト参照の返却
  5. 05Supabase AuthによるOAuth 2.1認可

活用シーン

  1. 01MCPユーザーが利用できる登録済みデバイスの検出
  2. 02機能を呼び出す前のデバイス確認
  3. 03カメラや画面のキャプチャ依頼
  4. 04登録済み機能による連絡先検索

MCP 対応

SensactはSupabase AuthによるOAuth 2.1認可付きのリモートMCPエンドポイントを提供します。ツールでデバイスと機能の一覧、機能呼び出し、アーティファクト取得ができますが、呼び出しにはジョブを処理して結果を記録するデバイスランタイムが必要です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、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_capture
  • contacts.find_contact
  • vision.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

Current Implementation Status

このリポジトリで実装済み:

  • supabase/functions/mcp にある Supabase Edge Function MCP ゲートウェイ
  • リモート 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+
  • npm
  • Supabase 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_URL
  • VITE_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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。