hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Integrates with Google Calendar to list, manage, and retrieve calendar events. Enables scheduling recordings for meetings and connecting calendar data to meeting bots.
Allows bots to join and record Zoom meetings, automatically transcribing the content and making it searchable.
ミーティングBaaS MCPサーバー
会議の記録、録画、カレンダー イベント、検索機能などの会議データを管理するためのツールを提供するモデル コンテキスト プロトコル (MCP) サーバー。
概要
このプロジェクトは、ClaudeやCursorなどのAIアシスタントが会議データにアクセスして操作できるようにするModel Context Protocol(MCP)サーバーを実装します。このサーバーは、以下の用途に使用できるツールとリソースのセットを公開します。
- 会議ボットの招待: 会議を自動的に記録して文字起こしするボットを作成してビデオ会議に招待しますCopy
- 会議データのクエリ: 会議の記録を検索し、録画全体を見なくても特定の情報を見つけます。Copy
- カレンダーイベントの管理: カレンダーのエントリと今後の会議を表示および整理します
- 録画情報へのアクセス: 会議の録画とそのステータスに関するメタデータを取得します
前提条件
- Node.js (v16以降)
- npm
- MeetingBaaSアカウント: 会社のメールアドレスを使用してMeetingBaaSアカウントにアクセスする必要があります
- すべてのログ、ボット、共有リンクは、同じ企業ドメイン(gmail.com などの個人用メールではない)を持つ同僚が利用できます。
- これにより、すべてのチームメンバーが組織内の誰かが作成した会議の録画や記録にアクセスでき、シームレスなコラボレーションが可能になります。
インストール
- リポジトリをクローンします。Copy
- 依存関係をインストールします:Copy
- プロジェクトをビルドします。Copy
使用法
サーバーを起動します。
デフォルトでは、サーバーはポート 7017 で実行され、MCP エンドポイントhttp://localhost:7017/mcp
で公開します。
利用可能なツール
サーバーは、MCP プロトコルを通じていくつかのツールを公開します。
カレンダーツール
oauthGuidance
: Google または Microsoft カレンダーの OAuth を設定するための詳細な手順を取得します- パラメータは必要ありません
- OAuth 認証情報を取得し、カレンダー統合を設定するための包括的な手順を返します
listRawCalendars
: 統合前に Google または Microsoft から利用可能なカレンダーを一覧表示します- パラメータ:
platform
("Google" または "Microsoft")、clientId
、clientSecret
、refreshToken
- 利用可能なカレンダーのリストをIDとプライマリステータスとともに返します
- パラメータ:
setupCalendarOAuth
: OAuth認証情報を使用してカレンダーを統合します- パラメータ:
platform
("Google" または "Microsoft")、clientId
、clientSecret
、refreshToken
、rawCalendarId
(オプション) - カレンダーの詳細との統合が成功したことの確認を返します
- パラメータ:
listCalendars
: 統合されたすべてのカレンダーを一覧表示します- パラメータは必要ありません
- すべてのカレンダーの名前、メールアドレス、UUIDのリストを返します。
getCalendar
: 特定のカレンダー統合に関する詳細情報を取得します- パラメータ:
calendarId
(カレンダーのUUID) - 包括的なカレンダーの詳細を返します
- パラメータ:
deleteCalendar
: カレンダー統合を完全に削除します- パラメータ:
calendarId
(カレンダーのUUID) - 削除成功の確認を返します
- パラメータ:
resyncAllCalendars
: 接続されているすべてのカレンダーを強制的に更新します- パラメータは必要ありません
- 同期操作のステータスを返します
listUpcomingMeetings
: カレンダーから今後の会議を一覧表示します- パラメータ:
calendarId
、status
(オプション:「今後」、「過去」、「すべて」)、limit
(オプション) - 会議の名前、時間、録画ステータスを含む会議のリストを返します。
- パラメータ:
listEvents
: 包括的なフィルタリングオプションを使用してカレンダーイベントをリストします- パラメータ:
calendarId
、およびstartDateGte
、startDateLte
、attendeeEmail
などのオプションのフィルタ。 - 豊富な情報を含む詳細なイベントリストを返します
- パラメータ:
listEventsWithCredentials
: クエリで直接提供された資格情報を持つカレンダーイベントを一覧表示します- パラメータ:
calendarId
、apiKey
、およびlistEvents
と同じオプションのフィルタ listEvents
と同じ詳細情報を返しますが、直接認証を使用します
- パラメータ:
getEvent
: 特定のカレンダーイベントの詳細情報を取得します- パラメータ:
eventId
(イベントのUUID) - 出席者や録画ステータスを含む包括的なイベントの詳細を返します
- パラメータ:
scheduleRecording
: 今後の会議を録画するボットをスケジュールします- パラメーター:
eventId
、botName
、およびbotImage
、recordingMode
などのオプション設定。 - スケジュール成功の確認を返します
- パラメーター:
scheduleRecordingWithCredentials
: クエリで直接提供される資格情報を使用して録画をスケジュールします- パラメータ:
eventId
、apiKey
、botName
、およびscheduleRecording
と同じオプション設定 - スケジュール成功の確認を返します
- パラメータ:
cancelRecording
: 以前にスケジュールされた録画をキャンセルします- パラメータ:
eventId
、allOccurrences
(オプション、定期的なイベントの場合) - キャンセル成功の確認を返します
- パラメータ:
cancelRecordingWithCredentials
: クエリで直接提供された資格情報を使用して記録をキャンセルします- パラメータ:
eventId
、apiKey
、allOccurrences
(オプション) - キャンセル成功の確認を返します
- パラメータ:
checkCalendarIntegration
: カレンダー統合ステータスをチェックして診断します- パラメータは必要ありません
- 包括的なステータスレポートとトラブルシューティングのヒントを返します
会議ツール
createBot
: ビデオ会議に参加して会議を録画および記録できる会議ボットを作成します。- パラメータ:
meeting_url
(参加する会議のURL)name
(オプションのボット名)botImage
(ボットのアバター画像へのオプションの URL)entryMessage
(参加時にボットが送信するオプションのメッセージ)deduplicationKey
(同じ会議への参加に関する 5 分間の制限を無効にするオプション キー)nooneJoinedTimeout
(誰も参加しない場合にボットが退出するまでのオプションのタイムアウト(秒))waitingRoomTimeout
(待機室に留まっている場合にボットが退出するまでのオプションのタイムアウト(秒))speechToTextProvider
(文字起こし用のオプションのプロバイダー:「Gladia」、「Runpod」、または「Default」)speechToTextApiKey
(音声テキスト変換プロバイダーのオプションのAPIキー)streamingInputUrl
(オーディオ入力をストリーミングするためのオプションの WebSocket URL)streamingOutputUrl
(オーディオ出力をストリーミングするためのオプションの WebSocket URL)streamingAudioFrequency
(ストリーミングのオプション周波数:「16khz」または「24khz」)extra
(会議の種類、カスタム概要プロンプト、検索キーワードなど、会議に関する追加のメタデータを持つオプションのオブジェクト)
- 戻り値: IDと参加ステータスを含むボットの詳細
- パラメータ:
getBots
: すべてのボットとそれに関連付けられた会議を一覧表示しますgetBotsByMeeting
: 特定の会議 URL のボットを取得しますgetRecording
: 特定のボット/会議の録画情報を取得しますgetRecordingStatus
: 進行中の録画のステータスを確認しますgetMeetingData
: 特定の会議の記録データを取得します- パラメータ:
meetingId
(データを取得する会議のID) - 返されるもの: 会議の記録に関する情報(所要時間とトランスクリプトのセグメント数を含む)
- パラメータ:
getMeetingDataWithCredentials
: 直接API認証情報を使用してトランスクリプトと記録データを取得します- パラメータ:
meetingId
(会議のID)、apiKey
(認証用のAPIキー) - 戻り値:
getMeetingData
と同じ情報ですが、直接認証を使用します
- パラメータ:
トランスクリプトツール
getMeetingTranscript
: スピーカー名とスピーカーごとにグループ化された内容を含む会議の記録を取得します。- パラメータ:
botId
(会議を記録したボット) - 返されるもの: 話者情報を含む完全なトランスクリプト。話者ごとに段落分けされた形式で表示されます。
- 出力例:Copy
- パラメータ:
findKeyMoments
: 会議の重要な瞬間を自動的に識別してリンクを共有します- パラメータ:
botId
、オプションのmeetingTitle
、オプションの検索topics
のリスト、オプションのmaxMoments
- 返されるもの: トランスクリプトに基づいて自動的に検出された、リンク付きの重要な瞬間のマークダウン形式のリスト
- AIを活用した分析により、手動でタイムスタンプを選択することなく重要な瞬間を見つけます
- パラメータ:
QRコードツール
generateQRCode
: ボットアバターとして使用できるAI生成のQRコード画像を作成します- パラメータ:
type
: QR コードの種類 (URL、メール、電話、SMS、テキスト)to
: QRコードの送信先(URL、メール、電話番号、テキスト)prompt
: QRコードをカスタマイズするためのAIプロンプト(最大1000文字)。「APIキー: qrc_your_key」などのフレーズを入力することで、プロンプトテキストにAPIキーを直接含めることができます。style
: QRコードのスタイル(style_default、style_dots、style_rounded、style_crystal)useAsBotImage
: 生成されたQRコードをボットのアバターとして使用するかどうか(デフォルト: true)template
: QRコードのテンプレートID(オプション)apiKey
: QR コード AI API キー (オプション、指定されていない場合はデフォルトが使用されます)
- 戻り値: joinMeeting ツールで直接使用できる生成された QR コード画像への URL
- 使用例:Copy
- プロンプトに API キーが含まれる例:Copy
- 仮パラメータを使用した例:Copy
- パラメータ:
リンク共有ツール
shareableMeetingLink
: 会議録画への、きれいにフォーマットされた共有可能なリンクを生成します。- パラメータ:
botId
、オプションでtimestamp
、title
、speakerName
、description
- 戻り値: チャットで直接共有できるメタデータを含むマークダウン形式のリンク
- 例:Copy
- パラメータ:
shareMeetingSegments
: 会議中の複数の重要な瞬間へのリンクのリストを作成します- パラメータ:
botId
と、タイムスタンプ、スピーカー、説明を含むsegments
の配列 - 戻り値: 各瞬間への直接リンクを含むセグメントのマークダウン形式のリスト
- 長い会議の目次を作成するのに便利です
- パラメータ:
ワークフローの例
会議の録音
- 今後の会議用のボットを作成します。Copy
- ボットは自動的に会議に参加し、録画を開始します。
- 録画ステータスを確認します:Copy
カレンダー統合と自動記録
- OAuth 認証情報の取得に関するガイダンスを入手します。Copy
- 統合前に利用可能なカレンダーをリストします。Copy
- 特定のカレンダーとのカレンダー統合を設定します。Copy
- 今後の会議を表示します:Copy
- 今後の会議の録画をスケジュールします。Copy
- カレンダーに予定されているすべての録画を確認します。Copy
- 以前にスケジュールされた録画をキャンセルします。Copy
- 会議が欠落している場合はカレンダーデータを更新します。Copy
簡素化されたカレンダー統合
カレンダー統合をより簡単に行うには、Claude Desktop 構成ファイルでカレンダーの OAuth 資格情報を直接構成します。
- 設定ファイルを編集します。Copy
- botConfig に
calendarOAuth
セクションを追加します。Copy - ファイルを保存して Claude Desktop を再起動すると、カレンダーが自動的に統合されます。
このアプローチにより、OAuth セットアップ ツールを手動で呼び出す必要がなくなり、カレンダーの統合が 1 回限りの構成タスクになります。
**注:**カレンダー連携は完全にオプションです。
calendarOAuth
セクションを構成から省略するだけで、カレンダーを接続せずにMeeting BaaSをご利用いただけます。カレンダー連携により、今後の会議へのアクセスやカレンダーイベントの自動記録が可能になり、エクスペリエンスが向上します。
会議内容の分析
- 会議の全記録を入手:Copy
- 会議の重要な瞬間を見つける:Copy
- 会議の特定の瞬間を共有します。Copy
直接認証ツールの使用
クエリ内で API 認証情報を直接提供できます。
- 直接の資格情報を持つイベントを一覧表示します。Copy
- 直接認証情報を使用して録画をスケジュールします。Copy
- 直接認証情報を使用して録画をキャンセルします。Copy
- 直接の資格情報を使用して会議データを取得します。Copy
AI生成QRコードをボットアバターとして活用
- 連絡先情報とカスタム デザインを含む QR コードを生成します。Copy
- 生成された QR コードを会議中のボット アバターとして使用します。Copy
- 簡単に共有できるように、会議リンクを含む QR コードを生成します。Copy
会議の録画にアクセスする
会議の録画には、ボット ID を使用して Meeting BaaS ビューアから直接アクセスできます。
例えば:
このビューアは以下を提供します:
- 会議のビデオ録画
- 話者識別と同期したトランスクリプト
- 講演者またはトピックによるナビゲーション
- チームメイトとの直接リンク共有
createBot
、 getBots
、または検索ツールを使用すると、録画に簡単にアクセスできるようにこれらのビューアー URL を作成するために使用できるボット ID が提供されます。
重要:すべての会議の録画とリンクは、同じ企業メールドメイン(例:@yourcompany.com)を持つ同僚と自動的に共有されます。これにより、チーム全員が個別の権限を必要とせずに録画にアクセスでき、組織内の全員が会議の情報を利用できるコラボレーション環境が実現します。
構成
サーバーは、環境変数またはsrc/config.ts
ファイルを編集することによって構成できます。
主な構成オプション:
PORT
: サーバーがリッスンするポート (デフォルト: 7017)API_BASE_URL
: ミーティングBaaS APIのベースURLDEFAULT_API_KEY
: テスト用のデフォルトのAPIキー
Claude Desktopとの統合
Claude Desktop と統合するには:
- Claude Desktop 構成ファイルを編集します。Copy
- Meeting BaaS MCP サーバー構成を追加します。注:Copy
/path/to/meeting-mcp
ローカル リポジトリへのパスに置き換え、YOUR_API_KEY
を実際の API キーに置き換えます。**重要:**会社のメールアカウントに関連付けられたAPIキーを使用していることを確認してください。すべての録音、ボットログ、共有リンクは、同じメールドメインを持つ同僚に自動的にアクセス可能になり、シームレスなチームコラボレーションを実現します。
QRコードAPIに関する注意: QRコードAPIはMeeting BaaS APIと同じヘッダー名(
x-api-key
)を使用しますが、別途設定する必要があります。QRコード生成機能を使用するには、環境変数を設定する、プロンプトに直接キーを含めるなど、以下の「QRコードAPIキーの設定」セクションに記載されているいずれかの方法を使用してください。 - Claude Desktop を再起動します。
構成の説明:
command
使用するシェルを指定しますargs
にはコマンドライン引数が含まれます。- プロジェクトディレクトリに
cd
- エラー出力をstderrにリダイレクトしてプロジェクトをビルドします
- Claude Desktop から実行されていることを示すために
MCP_FROM_CLAUDE=true
環境変数でサーバーを実行します。
- プロジェクトディレクトリに
headers
には認証用の API キーが含まれています。x-api-key
: 会議サービスにアクセスするための Meeting BaaS API キー
botConfig
使用すると、ボットの外観と動作をカスタマイズできます。name
: 会議でボットに表示される名前 (デフォルト: "Claude Assistant")image
: ボットのアバターとして使用する公開画像への URL (オプション)entryMessage
: 会議に参加するときにボットが送信するメッセージ(オプション)deduplicationKey
: 同じ会議への参加に関する 5 分間の制限を無効にする一意のキー (オプション)nooneJoinedTimeout
: 参加者が誰も参加しない場合にボットが退出するまでのタイムアウト(秒)(オプション)waitingRoomTimeout
: ボットが待機室に留まった場合に退出するまでのタイムアウト(秒)(オプション)speechToTextProvider
: 文字起こしに使用するプロバイダー ("Gladia", "Runpod", "Default") (オプション)speechToTextApiKey
: 必要に応じて音声テキスト変換プロバイダーの API キー (オプション)calendarOAuth
: OAuth 認証情報を使用したカレンダーの直接統合 (オプション)platform
:「Google」または「Microsoft」clientId
: OAuthクライアントIDclientSecret
: OAuthクライアントシークレットrefreshToken
: OAuthリフレッシュトークンrawCalendarId
: 統合する特定のカレンダーのオプションID
extra
: AI機能を強化するための会議に関する追加のメタデータ(オプション)- 例: GXP38
extra
フィールドは非常に柔軟性が高く、組織やユースケースに適した構造化メタデータを追加できます。
カーソルとの統合
カーソルと統合するには:
- オープンカーソル
- 設定に移動
- 「モデルコンテキストプロトコル」に移動する
- 次の方法で新しいサーバーを追加します:
- 名前: 「BaaS MCPとのミーティング」
- タイプ: "sse"
- サーバーURL: " http://localhost:7017/mcp "
- 認証が必要な場合はオプションでヘッダーを追加します
発達
建てる
MCP Inspectorでテストする
開発モード(自動リロード付き)
ログ管理
サーバーには、次の最適化されたログ機能が含まれています。
このコマンド:
- 不要なログファイルとキャッシュデータをクリーンアップします
- ログから繰り返しのpingメッセージを除外します
- 重要なログ情報を保持しながらディスク使用量を削減
- 長時間実行されるサーバーのログフットプリントを小さく維持します
プロジェクト構造
src/index.ts
: メインエントリポイントsrc/tools/
: ツールの実装src/resources/
: リソース定義src/api/
: Meeting BaaS バックエンドの API クライアントsrc/types/
: TypeScriptの型定義src/config.ts
: サーバー構成src/utils/
: ユーティリティ関数logging.ts
: ログのフィルタリングと管理tinyDb.ts
: 永続的なボット追跡データベース
認証
サーバーは認証のためにx-api-key
ヘッダーにAPIキーを要求します。デフォルトのAPIキーは設定で設定できます。
直接認証は多くのツール (「WithCredentials」という名前が付けられている) でもサポートされており、ヘッダーではなくパラメーターとして API キーを直接提供できます。
ライセンス
QRコードAPIキーの設定
QRコード生成ツールを使用するには、QR Code AI APIのAPIキーが必要です。APIキーを取得するにはいくつかの方法があります。
- プロンプトに直接:
generateQRCode
ツールを使用するときに、プロンプト テキストに API キーを直接含めます。例: 「API キー: qrc_your_key を使用して、Web サイトhttps://example.comの QR コードを生成します」 - パラメータとして:
generateQRCode
ツールを使用するときに、apiKey
パラメータとしてAPIキーを指定します。 - 環境変数:
QRCODE_API_KEY
環境変数を設定する - Claude デスクトップ構成: 次の場所にある Claude デスクトップ構成ファイルに API キーを追加します。
- Mac/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
構成例:
Copy - Mac/Linux:
ツールは上記の順序でAPIキーを確認します。APIキーが指定されていない場合は、デフォルトのAPIキー(存在する場合)が使用されます。
QRコードAI APIにサインアップするとAPIキーを取得できます。
This server cannot be installed
会議ボットの作成、トランスクリプトの検索、カレンダー イベントの整理など、AI アシスタントによる会議データの管理を可能にするモデル コンテキスト プロトコル サーバー。