MediaSFU について
MediaSFU MCP Integration Toolkitは、開発者やMCP対応エージェント向けに、MediaSFU連携の計画、スキャフォールド生成、診断、堅牢化を支援します。複数のフロントエンド・バックエンドSDKに対応し、読み取り専用ツールと確認が必要なアカウント操作を分けています。
主な機能
- 01連携アーキテクチャと実装を計画
- 02複数SDK向けのスキャフォールドを生成
- 03ランタイムと連携の問題を診断
- 04APIリファレンス検索と機能マッピング
- 05SDKのバージョンと機能根拠を確認
- 06アカウントモードでルーム、通話、録画を管理
活用シーン
- 01ReactJSまたはFlutter連携を計画
- 02プロジェクト用の連携スキャフォールドを生成
- 03ルームの実行時や設定の問題を調査
- 04確認を経てアカウントのルームや通話を管理
MCP 対応
stdioと任意のStreamable HTTP MCPサーバーを提供し、連携計画、スキャフォールド生成、診断などのツールを公開します。アカウントモードではMediaSFUのルーム、通話、録画、Webhook、使用量も操作でき、副作用のある操作には明示的な確認が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.mediasfu.com/mcpclaude mcp add --transport http mediasfu-mcp-sdk-tools https://mcp.mediasfu.com/mcp{"mcpServers":{"mediasfu-mcp-sdk-tools":{"type":"http","url":"https://mcp.mediasfu.com/mcp"}}}Cursor で開く{"servers":{"mediasfu-mcp-sdk-tools":{"type":"http","url":"https://mcp.mediasfu.com/mcp"}}}VS Code で開く{"mcpServers":{"mediasfu-mcp-sdk-tools":{"type":"http","url":"https://mcp.mediasfu.com/mcp"}}}{"mcpServers":{"mediasfu-mcp-sdk-tools":{"serverUrl":"https://mcp.mediasfu.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
MediaSFU MCP 統合ツールキット
MediaSFU 公式 MCP ツールキットを使うと、開発者や MCP 対応エージェントは、MediaSFU のフロントエンドおよびバックエンド統合を計画、スキャフォールド、診断し、堅牢化できます。
npm で stdio サーバーを直接実行します:
npx -y @mediasfu/mcp-sdk-tools
MCP クライアントの設定を再現可能にするには、サポート対象のメジャーバージョンを固定します:
{
"mcpServers": {
"mediasfu": {
"command": "npx",
"args": ["-y", "@mediasfu/mcp-sdk-tools@1"]
}
}
}
Windows では、MCP クライアントが npm のシムを解決できない場合に npx.cmd を使用します。グローバルにインストールして、実行可能ファイルを明示的に起動することもできます:
npm install --global @mediasfu/mcp-sdk-tools@1
mediasfu-mcp
mediasfu-mcp-http 実行可能ファイルは、オプションのローカル Streamable HTTP トランスポートを起動します。クライアントの例については、LOCAL_MCP_SETUP.md を参照してください。
自分のアカウントで操作する(アカウントモード)
mediasfu-mcp-account を使うと、アシスタントは MediaSFU API キーを使用して、ルームの作成と終了、AI エージェントや SIP の発信、録画の一覧表示、ルームの Webhook の設定、残高と使用状況の確認を行えます。ローカルで stdio 経由で実行され、キーは MCP クライアントの環境内に保持され、https://mediasfu.com にのみ送信され、すべてのツール結果から削除されます。
{
"mcpServers": {
"mediasfu-account": {
"command": "npx",
"args": ["-y", "-p", "@mediasfu/mcp-sdk-tools@1", "mediasfu-mcp-account"],
"env": {
"MEDIASFU_API_USERNAME": "<api username>",
"MEDIASFU_API_KEY": "<api key>"
}
}
}
}
両方の値は mediasfu.com/api-keys で取得できます。まずはサンドボックスキーを使用してください。s で始まるルームはサンドボックス、p で始まるルームは本番環境です。
| 領域 | ツール |
|---|---|
| ルーム | mediasfu_create_room、mediasfu_join_room、mediasfu_list_rooms、mediasfu_get_room、mediasfu_room_stats、mediasfu_delete_room(ルームを終了) |
| エージェントと電話の通話 | mediasfu_initiate_call、mediasfu_start_call_agent、mediasfu_stop_call_agent、mediasfu_switch_call_source、mediasfu_end_call、mediasfu_list_calls、mediasfu_get_call_state、mediasfu_get_call_summary、mediasfu_list_sip_numbers、および保留、再生、録音、折り返しの制御 |
| 録画 | mediasfu_list_recordings |
| Webhook | mediasfu_get_webhook、mediasfu_set_webhook |
| 使用状況 | mediasfu_get_balance、mediasfu_get_room_usage |
| デフォルト設定 | mediasfu_create_event_settings、mediasfu_update_event_settings |
読み取りツールはすぐに実行されます。作成、変更、発信、終了を行うツールは、プレビュー付きで confirmation_required を返します。その後、アシスタントが confirm: true を指定して再度呼び出すまで実行されないため、料金が発生する操作や破壊的な操作はすべて承認できます。
対応 SDK サーフェス
- 共有ランタイムとバックエンド統合
- ReactJS
- Angular
- React Native
- React Native Expo
- Vue
- Flutter
- Kotlin / Android / KMP
- Swift / Apple プラットフォーム
- Unity
デフォルトの公開サーフェスでは、159 個の統合ツールを利用できます。ドキュメントのビルドおよびパリティ用の33個のツールは内部向けです。全192個のツールを利用するには、信頼できるローカルのメンテナー用ワークスペースでのみ MCP_INCLUDE_INTERNAL_TOOLS=1 を設定してください。
コアツール
各 SDK には、次のツールが用意されています。
sdk.recommendapp.scaffoldintegration.planenv.preflightroom.bootstrapfeature.mapruntime.diagnosefix.suggestapi.reference.searchroom.flow.explainui.mode.recommendui.overrides.guidesecurity.proxy.rooms
共有サーフェスには、MediaSFU のヘッドレス、ウィジェット、テレフォニー、AI 通話制御の統合から得られた本番環境向けパターンが追加されています。
shared::frontend.architecture.planshared::headless.integration.planshared::widget.integration.planshared::telephony.call-control.planshared::solution.capsule.planshared::external-media.integration.planshared::participant-control.integration.planshared::room.lifecycle.planshared::embedded.layout.planshared::room.authority.planshared::product.pattern.planshared::custom-recording.scene.planshared::runtime.readiness.diagnoseshared::lifecycle.cleanup.auditshared::credential.broker.planshared::backend.integration.guide
ウィジェットプランナーは、6 種類のスタンドアロンのカスタム要素、通常の スクリプト配信、モジュール形式の npm インポート、オプションの React/ヘッドレス エントリーを区別します。また、確認済みのパッケージ状態も返すため、パッケージの公開やホスト型 配信が、稼働中のランタイム全体の証拠と誤認されることはありません。
ツール名は sdkId::toolId の形式です。例:reactjs::integration.plan
機能の証拠と SDK の最新状態
sdk-registry.json には、検出されたパッケージ名/バージョン、マニフェストとリファレンスのハッシュ、SDK ごとの証拠トピックが記録されています。feature.map はこれらを sdkRelease と capabilityEvidence として返します。
証拠のステータスは、意図的に慎重な基準で設定されています。
documentedは、バンドルされた SDK リファレンスで機能の証拠が確認できることを意味します。not-evidencedは、バンドルされたリファレンスではその機能が証明されていないことを意味します。SDK がその機能をサポートできないという主張ではありません。
npm run registry:check は、マニフェスト、バンドルされたリファレンス、公開中のパッケージバージョン、正規パッケージパス、または証拠プロファイルにずれがあると失敗します。また、検出可能な MediaSFU SDK ワークスペースが登録されていない場合も失敗します。メンテナーは、確認済みの変更を npm run registry:write で更新します。
feature.map は、言語に依存しない正規の操作 ID、証拠ステータスの語彙、SDK カバレッジの正確な識別情報、セキュリティ境界も返します。MCP レジストリには、ハッシュで紐付けられたカタログリファレンスと、コンパクトなランタイム契約リファレンスがそれぞれ 1 つ保存されます。後者には、ランタイムレジストリのスキーマ、必須の安定した契約 ID、契約 ID の完全な一覧、ソースパス、SHA-256 が記録され、SDK ごとの証拠行は複製されません。カスタム録画シーンについては、正規のカスタム録画ガイドで説明しています。MCP サーフェスは通常の録画ライフサイクルを公開し、移植可能なシーン契約とサーバーが管理する完了ルールについては、このガイドを参照するよう導入者に案内します。正規のプロダクトパターンインデックスとスターターカタログは、実行可能な Familiar Calls、Live Auction、Watch Together、Agents、VOIP、SpacesTek のリファレンスを、それぞれ独立して認定されたプラットフォームの証拠にリンクします。ライフサイクル、レイアウト、権限、プロダクトパターン、カスタム録画の各プランナーは、アプリケーションの構成や共有コアのエクスポートを SDK 横断的な証拠として扱うことなく、これらの契約を公開します。操作、カバレッジ、セキュリティ、ランタイム契約のずれを検出するには、ローカルで npm run catalog:check を実行してください。
安全なスキャフォールディング
apply: true が明示されていない限り、スキャフォールディングはドライランです。適用モードでは次の処理を行います。
projectRootを基準に解決します。デフォルトは MCP プロセスの作業ディレクトリです。- 相対パスの
outputDirの下にのみ書き込みます。デフォルトはmediasfu-generated/sdkIdです。 - パストラバーサルを拒否します。
overwrite: trueが指定されていない限り、既存のファイルへの書き込みを拒否します。- 検出した SDK リリースとランタイムチェックリストを含む
MEDIASFU_INTEGRATION.mdを出力します。 - 長期間有効な認証情報のプレースホルダーは出力しません。
ReactJS では、MediaSFU フロントエンドのヘッドレスランタイムモデルに基づく、本番環境向けのパターンを採用した TypeScript/React スターターを出力します。その他の SDK では、Node のこのリリースプロセスでパッケージ API のコンパイルが検証されていない場合、バージョンを考慮した実装手順を出力します。これにより、推測に基づくソースコードをコンパイル可能なコードとして提示することを避けます。
例:
node ./scripts/mcp-engine.mjs run reactjs app.scaffold --input '{"apply":true,"projectRoot":"/path/to/app","outputDir":"src/mediasfu"}'
認証済みバックエンドから、スコープが限定されたルーム/セッション用情報を取得してください。長期間有効な MediaSFU API キーを、ブラウザーのストレージ、モバイルの設定、ソースコード、ログ、配布するデスクトップ/モバイル/ゲーム用バイナリに含めないでください。
ローカルで実行する
npm install
npm run validate
npm run registry:check
npm run mcp:server:selftest
npm run mcp:http:selftest
npm run release:check
便利な例:
node ./scripts/mcp-engine.mjs list reactjs
node ./scripts/mcp-engine.mjs run reactjs integration.plan --input '{"appType":"meeting"}'
node ./scripts/mcp-engine.mjs run reactjs api.reference.search --input '{"query":"create room"}'
node ./scripts/mcp-engine.mjs run reactjs feature.map --input '{"requestedFeatures":["conference","screen-share"]}'
node ./scripts/mcp-engine.mjs run shared frontend.architecture.plan --input '{"mode":"auto","needsWidget":true}'
MCP トランスポート
Stdio のエントリーポイント:scripts/mcp-stdio-server.mjs。
Streamable HTTP のエントリーポイント:scripts/mcp-http-server-v2.mjs。/mcp で公開読み取り専用ツールを、/mcp/actions でスコープが限定された MediaSFU アカウント操作を提供します。
Stdio と公開 HTTP のツールは、デフォルトで読み取り専用です。ローカルファイルシステムやコマンドの副作用を有効にするには MCP_ALLOW_LOCAL_SIDE_EFFECTS=1 が必要です。共有エンドポイントでは、決して有効にしないでください。
ホスト型の /mcp エンドポイントは意図的に認証なしで、常に読み取り専用です。別個の /mcp/actions エンドポイントでは Authorization: Bearer <username>:<disposableKey> が必要です。このエンドポイントは MediaSFU でキーを検証し、キーのスコープに基づいてツールを絞り込み、副作用を確認します。server/README.md を参照してください。
バックエンドとの境界
/v1/rooms、イベント設定、一時キーの仕様には shared::backend.integration.guide を使用してください。認証情報を公開/stdio ツールに送信しないでください。アクションエンドポイントは、ドキュメントに記載された正確な Authorization ヘッダー内の一時認証情報のみを受け付け、ツールやログに公開することはありません。
リリースゲート
npm run release:check では、次の項目を検証します。
- 11 個すべてのマニフェストと重要なツール。
- SDK レジストリの差分と未登録 SDK の検出。
- Stdio と HTTP の公開ツール構成が一致していること。
- すべての公開アダプターと内部アダプターが網羅されていること。
- 入力、副作用、パス、秘匿化、タイムアウト、HTTP セキュリティの制御。
- 本番アーキテクチャ、準備状況、ライフサイクル、認証情報、エビデンスの動作。
- 衝突時の書き込み拒否とクリーンアップを含む、11 個すべての SDK/ランタイム構成での実際の隔離スキャフォールド書き込み。
公開前に npm run pack:dry-run と npm audit を実行してください。公開は意図的に、メンテナーが別途行う作業としています。
一般公開されている追加のセットアップおよびデプロイに関する注意事項は、LOCAL_MCP_SETUP.md と server/README.md に記載されています。
プロジェクトリンク
- ウェブサイトと開発者向けドキュメント:mediasfu.com
- ソース:github.com/MediaSFU/mcp-sdk-tools
- 課題:github.com/MediaSFU/mcp-sdk-tools/issues
- セキュリティ報告:SECURITY.md
MediaSFU MCP SDK Tools は、MIT License の下で公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。