mcpField
C
ConferenceCaptioning

ConferenceCaptioning

リモート
conferencecaptioning.comその他0今日更新
リポジトリ公式サイト

ConferenceCaptioning について

ConferenceCaptioningは、イベントのライブ字幕や翻訳、保存済み文字起こし、参加者の質問、閲覧状況をAIアシスタントに提供する読み取り専用MCPサーバーです。

主な機能

  1. 01ライブ字幕と翻訳の取得
  2. 02配信状況とコンテキストの確認
  3. 03保存済み文字起こしの一覧と取得
  4. 04参加者からの質問の取得
  5. 05参加者ページの閲覧状況の確認

活用シーン

  1. 01イベント中の字幕の確認
  2. 02終了後の文字起こしの確認
  3. 03参加者の質問を整理してフォローアップ

MCP 対応

stdioまたはホスト型Streamable HTTPエンドポイントで、MCPクライアントにツール、リソース、プロンプトを提供します。読み取り専用の開発者APIキーでアクセスします。

設定

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

エンドポイントhttps://mcp.deafassistant.com/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.deafassistant.com/mcp認証が必要

ツール

詳細

ConfCapMcp

ConferenceCaptioning 用の読み取り専用 MCP サーバーです。ポータルで作成する開発者 API キーを使用して、AI アシスタントがストリームのリアルタイム字幕と翻訳、保存済みの文字起こし、視聴者からの質問を読み取れるようにします。

プライバシー: ツールが返す情報はすべて、接続先の AI モデルに送信されます。字幕のプライバシーを参加者に約束している場合は、まずモデルプロバイダーの利用規約をご確認ください。

セットアップ

  1. ポータル(https://app.deafassistant.com)で Advanced Settings を開き、Create Developer API Key を選択します。キーをコピーします(表示されるのは一度だけです)。このキーは読み取り専用で、いつでも削除できます。
  2. ビルドします:npm install && npm run build。
  3. サーバーをクライアントに追加します。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 を使用します。

コメント

MCP は初めてですか?

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

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