ConferenceCaptioning について
ConferenceCaptioningは、イベントのライブ字幕や翻訳、保存済み文字起こし、参加者の質問、閲覧状況をAIアシスタントに提供する読み取り専用MCPサーバーです。
主な機能
- 01ライブ字幕と翻訳の取得
- 02配信状況とコンテキストの確認
- 03保存済み文字起こしの一覧と取得
- 04参加者からの質問の取得
- 05参加者ページの閲覧状況の確認
活用シーン
- 01イベント中の字幕の確認
- 02終了後の文字起こしの確認
- 03参加者の質問を整理してフォローアップ
MCP 対応
stdioまたはホスト型Streamable HTTPエンドポイントで、MCPクライアントにツール、リソース、プロンプトを提供します。読み取り専用の開発者APIキーでアクセスします。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.deafassistant.com/mcpclaude mcp add --transport http thefirstprototype-confcap https://mcp.deafassistant.com/mcp{"mcpServers":{"thefirstprototype-confcap":{"type":"http","url":"https://mcp.deafassistant.com/mcp"}}}Cursor で開く{"servers":{"thefirstprototype-confcap":{"type":"http","url":"https://mcp.deafassistant.com/mcp"}}}VS Code で開く{"mcpServers":{"thefirstprototype-confcap":{"type":"http","url":"https://mcp.deafassistant.com/mcp"}}}{"mcpServers":{"thefirstprototype-confcap":{"serverUrl":"https://mcp.deafassistant.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.deafassistant.com/mcp認証が必要ツール
詳細
ConfCapMcp
ConferenceCaptioning 用の読み取り専用 MCP サーバーです。ポータルで作成する開発者 API キーを使用して、AI アシスタントがストリームのリアルタイム字幕と翻訳、保存済みの文字起こし、視聴者からの質問を読み取れるようにします。
プライバシー: ツールが返す情報はすべて、接続先の AI モデルに送信されます。字幕のプライバシーを参加者に約束している場合は、まずモデルプロバイダーの利用規約をご確認ください。
セットアップ
- ポータル(https://app.deafassistant.com)で Advanced Settings を開き、Create Developer API Key を選択します。キーをコピーします(表示されるのは一度だけです)。このキーは読み取り専用で、いつでも削除できます。
- ビルドします:
npm install && npm run build。 - サーバーをクライアントに追加します。Claude Desktop(
claude_desktop_config.json)または stdio MCP クライアントの場合:
{
"mcpServers": {
"confcap": {
"command": "node",
"args": ["/path/to/ConfCapMcp/dist/src/index.js"],
"env": { "CONFCAP_KEY": "cck_...", "CONFCAP_STREAM": "yourstream" }
}
}
}
Claude Code:claude mcp add confcap -e CONFCAP_KEY=cck_... -e CONFCAP_STREAM=yourstream -- node /path/to/ConfCapMcp/dist/src/index.js
| 変数 | 意味 |
|---|---|
CONFCAP_KEY | 開発者 API キーです。保存済みの文字起こし、質問、保護されたストリームに必要です。公開ストリームには不要です。 |
CONFCAP_STREAM | デフォルトのストリーム名です。未設定で、キーが所有するストリームがちょうど 1 つの場合、そのストリームが使用されます。 |
CONFCAP_AUTH | 保護されたストリームのセキュリティコードです。所有者でなくても字幕を読み取るために使用します。 |
CONFCAP_API_URL | デフォルトは https://api.deafassistant.com です。https(または localhost)である必要があります。 |
キーをソース管理に含めないでください。開発者向け API ドキュメントをご覧ください。
ホステッドモード
MCP_TRANSPORT=http PORT=8787 node dist/src/index.js を実行すると、stdio の代わりに、ステートレスなストリーム可能 HTTP エンドポイント(POST /mcp、GET /healthz)が起動します。各リクエストには個別のキー(Authorization: Bearer cck_...)を指定し、必要に応じて X-Confcap-Stream と X-Confcap-Auth も指定します。データは保存されず、呼び出し元の間でキャッシュされたテキストが共有されることもありません。呼び出し元ごとに 1 分あたり 60 リクエストまでです。メモリと CPU に上限を設定し、nginx の背後で systemd サービスとしてセルフホストする方法については、deploy/README.mdをご覧ください。
クライアントをホステッドサーバーに接続する(インストール不要)
ホステッドエンドポイントは https://mcp.deafassistant.com/mcp です。ポータルでキーを作成し(上記の手順 1)、次の手順に進みます。
- Claude Code:
claude mcp add --transport http confcap https://mcp.deafassistant.com/mcp --header "Authorization: Bearer cck_..."(デフォルトのストリームを設定するには、--header "X-Confcap-Stream: yourstream"を追加します)。 - Claude Desktop(動作確認済み): Settings > Connectors > Add > Add custom connector を開きます。名前に
ConferenceCaptioning、MCP サーバー URL にhttps://mcp.deafassistant.com/mcpを入力し、Continue をクリックします。「no sign-in」と表示されます(OAuth は使用しません)。Request headers を開き、Authorizationヘッダーに、キーの前にBearerを付けた値を追加して、Add をクリックします。その後、チャットを開始し、「ConferenceCaptioning コネクターでは何ができますか」と尋ねてください。 - リモート MCP とカスタムヘッダーに対応するその他のクライアント: 同じ URL に、
Authorization: Bearer cck_...ヘッダーを指定します。OAuth サインインしか選択できないクライアントでは、まだ静的ヘッダーを送信できません。 - stdio のみを使用するクライアント:
npx mcp-remote https://mcp.deafassistant.com/mcp --header "Authorization: Bearer cck_..."を実行すると、ホステッド URL に接続できます。
キーはリクエストごとに送信されるため、クライアントの設定ファイルはパスワードファイルと同様に扱ってください。HOSTED_URL=https://mcp.deafassistant.com node scripts/live-smoke.mjs を実行して接続を確認します(ポータルへのログインと FIREBASE_API_KEY が必要です。詳細は下記をご覧ください)。
MCP Registry への登録
server.json は、公式 MCP Registry 向けのホスト型サーバー(Authorization ヘッダーを必要とする、リモートのストリーミング可能な HTTP サーバー)を記述します。組織の名前空間(io.github.TheFirstPrototype)は、ノート PC からの mcp-publisher login github では公開できないため、GitHub の OIDC ログインを通じて「Publish to the MCP Registry」ワークフロー(.github/workflows/publish-registry.yml)で公開します。v0.1.0 のようなタグをプッシュする(タグがバージョンになります)か、ワークフローを手動で実行してください。Registry が確認するのは名前空間を管理しているかどうかであり、サーバー URL ではありません。
ツール
| ツール | 機能 | キーが必要 |
|---|---|---|
list_my_streams | キーで読み取り可能な配信 | はい |
get_session_overview | まずはこちらを確認してください。配信に何があるか(配信中か停止した可能性があるか、保持されているライブテキスト、保存済み文字起こし、質問、用語集)と、次にすべきことを確認できます | いいえ(キーがあるとさらに多くの情報を取得できます) |
get_stream_status | 配信中かどうか、言語、読み取り可能かどうか(ok、authRequired、expired、unknown) | いいえ |
get_live_captions | 最新の字幕テキスト、話されている言語または翻訳、以降の新しいテキストのみを取得するための cursor | いいえ(保護された配信では必要です) |
get_stream_context | 色、ロゴ、用語集の用語(聞き間違えた名前の修正に使用) | いいえ |
list_saved_transcripts | タイトル、メモ、時刻、長さを含む保存済み文字起こし | はい |
get_saved_transcript | ページ分割された文字起こし 1 件 | はい |
list_questions | 古い順の視聴者からの質問 | はい |
get_audience_summary | 参加者ページへのアクセス状況:合計数、ピーク、都市、参照元、デバイス | はい |
get_help_links | 使い方ガイドへのリンク(静的) | いいえ |
ほかに、リソース confcap://stream/{name}/status と confcap://stream/{name}/transcript/{id}、プロンプト meeting_minutes、triage_questions、catch_me_up、translate_summary があります。
知っておくとよいこと:
- 翻訳は、最近のテキストを対象とした範囲で、話されるたびに再翻訳されます。保存済み文字起こしは話されている言語のみです。翻訳するには、アシスタントに依頼してください。
- 履歴を保存する配信は一部のみで、100 文字以上のセッションに限られます。
- 音声と質問は
<untrusted-text>で囲まれて返されます。ほかの人が書いた内容なので、モデルは指示ではなくデータとして扱う必要があります。
安全性の特性(すべてテスト済み)
GETリクエストのみです。書き込みや削除を行うコードパスはなく、キーもサーバー上では読み取り専用です。- 認証情報は環境変数からのみ取得され、ツールの引数からは取得されません。エラーでは伏せられ、ログにも記録されません。
- アカウントの
uidと管理者コードは使用も送信もされません。 - 1 つの配信への呼び出しは 1 秒に 1 回、全体では 1 秒に 5 回までに制限されます。
429と5xxはバックオフを伴って再試行されます。 - 2 つのサーバーインスタンスがキャッシュされたテキストを共有することはありません。
ライブスモークテスト(stdio、またはホスト型エンドポイントの場合は HOSTED_URL=https://... node scripts/live-smoke.mjs)
一時的なキー(スクリプトが作成して削除)を使って、ビルド済みサーバーを実際の API に対して実行し、すべてのツールを読み取り専用で呼び出します。また、キーやアカウントの uid がどの出力にも含まれないことを確認します。
npm run build
FIREBASE_API_KEY='portal Firebase web apiKey' T_EMAIL='<portal login of an account that owns a stream>' T_PASS='<password>' npm run live-smoke
任意の設定:SMOKE_STREAM(既定値:アカウントの最初の配信)、API_BASE_URL。終了コード 0 はテストに合格したことを示します。パスワードは絶対にコミットしないでください。関連するチェックは ConfCapApi/scripts/live_developer_keys_check.py(API)と ConfCapPortal/e2e(ポータル UI)です。
開発
npm test はビルドを行い、テストを実行します(実際のローカルモック API、SDK のインメモリトランスポートを介したプロトコル、test/ に記載されたミューテーションスタイルのチェック)。サーバーは、2025-11-25 の MCP 仕様に対応する v1.x SDK を使用します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。