Step 0. MCP エンドポイントへのアクセスと 401 レスポンス#
MCP クライアントはまず MCP エンドポイントに対して未認証のまま接続を試みます。POST https://mcp.jicoo.com/
アクセストークンを持たないリクエストには、WWW-Authenticate ヘッダ付きの 401 Unauthorized が返ります。このヘッダが保護リソースメタデータ URL を示します。HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="jicoo-mcp",
resource_metadata="https://mcp.jicoo.com/.well-known/oauth-protected-resource",
scope="offline_access read:bookings write:bookings read:event_types write:event_types read:webhook_endpoints write:webhook_endpoints"
{
"error": "invalid_token",
"error_description": "Missing Authorization header",
"resource_metadata": "https://mcp.jicoo.com/.well-known/oauth-protected-resource"
}
クライアントは保護リソースメタデータを取得し、認可サーバの URL と利用可能スコープを確認します。GET https://mcp.jicoo.com/.well-known/oauth-protected-resource
{
"resource": "https://mcp.jicoo.com/",
"authorization_servers": ["https://www.jicoo.com/"],
"scopes_supported": [
"offline_access",
"read:bookings",
"write:bookings",
"read:event_types",
"write:event_types",
"read:webhook_endpoints",
"write:webhook_endpoints"
],
"resource_name": "Jicoo MCP"
}
ここで取得した authorization_servers[0] が、Step 2 で問い合わせる認可サーバの issuer URL です。scopes_supported は MCP クライアントが認可リクエスト時に要求できるスコープ一覧で、offline_access の付与忘れに注意してください(付与されないとアクセストークン有効期限経過後に毎回再認証が必要になります)。authorization_servers に記載された issuer URL から、認可サーバのメタデータを取得します。GET https://www.jicoo.com/.well-known/oauth-authorization-server
ここで得られる registration_endpoint, authorization_endpoint, token_endpoint を用いて以降のフローを実行します。Step 3. Dynamic Client Registration#
事前登録なしで、クライアントは registration_endpoint に対して自己登録を行います。POST /oauth/register
Content-Type: application/json
{
"client_name": "My MCP Client",
"redirect_uris": ["https://myapp.example.com/mcp/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none"
}
レスポンスには自動発行された client_id と付与スコープが含まれます。Public client のため client_secret は発行されません。DCR エンドポイントは検証とレートリミットが厳しく設定されています。redirect_uris は本番では HTTPS の完全一致のみを受け付けます(ワイルドカード、userinfo、複数スキームは不可)。
Step 4. 認可コードフローとトークン取得#
クライアントは authorization_endpoint へユーザをリダイレクトし、PKCE 付き認可コードフローを実行します。scope には offline_access を含めてください。これにより refresh_token が発行され、access token (TTL 1 時間) を再認証なしで更新できます。トークン取得後、クライアントは取得した access_token を Authorization: Bearer <token> で MCP エンドポイントに送信することでツールを呼び出せるようになります。
4. サポートされるツール#
Jicoo MCP Server は以下のツール群を公開しています。Bookings (予約)#
| ツール名 | 説明 |
|---|
getBookings | Team 内の予約一覧を取得(status フィルタ対応 / 自動ページネーション) |
getBooking | 指定した予約の詳細を取得 |
createBooking | 予約を作成(canonical booking payload) |
updateBooking | 予約を更新 |
rescheduleBooking | 予約をリスケジュ ール |
cancelBooking | ホストとして予約をキャンセル |
getBookingContacts | 予約に紐づくコンタクト(招待者)情報を取得 |
getBookingRecordings | 予約の会議録画フィールドを取得 |
getBookingTranscripts | 予約の文字起こしフィールドを取得 |
getBookingRecaps | 予約のミーティングリキャップを取得 |
Event Types (イベントタイプ)#
| ツール名 | 説明 |
|---|
getEventTypes | Team が利用可能なイベントタイプ一覧を取得(自動ページネーション) |
getEventTypeById | 指定したイベントタイプの詳細を取得 |
getAvailableSchedules | 指定期間のイベントタイプの空き枠を取得 |
createEventType | Standard イベントタイプ(予約ページ)を作成。hostAssignRules[] のインライン指定で同一トランザクション内にホスト割当ルールも作成可能 |
updateEventType | 既存イベントタイプを部分更新。更新後の最新イベントタイプを返却 |
deleteEventType | イベントタイプを削除 |
listEventTypeHosts | イベントタイプに割り当てられたホスト一覧を取得 |
updateEventTypeHost | イベントタイプのホスト設定を更新 |
Host Assign Rules (ホスト割当ルール)#
| ツール名 | 説明 |
|---|
listHostAssignRules | イベントタイプに紐づくホスト割当ルール一覧を取得(hostAssignType=3 のときのみ有効) |
createHostAssignRule | 既存イベントタイプへのホスト割当ルール追加 |
updateHostAssignRule | ホスト割当ルールを部分更新。conditions を送る場合は完全置換であることに注意 |
deleteHostAssignRule | ホスト割当ルールを削除 |
Schedules (スケジュール)#
| ツール名 | 説明 |
|---|
listSchedules | Team の Schedule(稼働時間設定)一覧を取得(自動ページネーション) |
createSchedule | Schedule を作成 |
updateSchedule | Schedule を更新 |
deleteSchedule | Schedule を削除 |
Organization / Users#
| ツール名 | 説明 |
|---|
listOrganizationUsers | 組織メンバー一覧を取得。userId / email によるフィルタ対応(自動ページネーション、外部ユーザは除外) |
getOrganizationUser | 指定したメンバーの詳細を取得 |
listUserAvailabilityCalendars | メンバーのカレンダー連携設定一覧を取得(自動ページネーション) |
Webhook Endpoints#
| ツール名 | 説明 |
|---|
getWebhookEndpoints | Team の Webhook エンドポイント一覧を取得 |
getWebhookEndpointById | 指定 Webhook エンドポイントの詳細を取得 |
createWebhookEndpoint | Webhook エンドポイントを作成(Team または EventType スコープ) |
updateWebhookEndpoint | Webhook エンドポイントを部分更新 |
deleteWebhookEndpoint | Webhook エンドポイントを削除 |
guest_booked / guest_rescheduled / guest_cancelled
host_rescheduled / host_cancelled
guest_booking_request_created
host_booking_request_accepted / host_booking_request_declined
recording_ready(Notetaker 録画ファイルがダウンロード可能になった際に発火)
Webhook 配信は Team プラン以上が対象です。
5. プロンプト例#
MCP クライアント上で自然言語から Jicoo を操 作するユースケースの例です。「山田さんとの来週の 1on1 の録画と文字起こしを取り出して」
「今日の予約を全部一覧にして、未対応のものをピックアップして」
「〇〇というイベントタイプで今週の空き枠を教えて」
「明日 15:00-16:00 に田中さんとの 30 分ミーティングを予約して」
「来週金曜午後の Team Sync の候補枠を 3 つ提案して」
「『30 分商談』というイベントタイプを新しく作って、所要時間は 30 分、slug は 30min-meeting で」
「Team Sync のホストに鈴木さんを追加して、Round Robin で割り当てるようにして」
「このイベントタイプのロケーションを Google Meet に切り替えて」
「Admin ロールを持つホストをイベントタイプから一覧表示して」
「来月から火・木だけ 13:00〜17:00 を使える Schedule を作って」
「予約が入ったら Slack に通知したい。guest_booked イベントを対象に Webhook を作って」
「録画の準備ができたタイミングで動く Webhook を追加して、URL は https://example.com/hooks/recording で」
「今設定されている Webhook のうち、disabled になっているものを見せて」
6. 注意事項#
API キー認証は未対応: Jicoo MCP Server は OAuth 2.1 + DCR のみをサポートしており、静的な API キー(Bearer token として固定値を渡す方式)での接続は受け付けません。必ず認可コードフローで取得したアクセストークンを使用してください。
クライアント互換性: MCP クライアントが client_id と client_secret の手動入力を求めてくる場合、そのクライアントは DCR 未対応です。Jicoo MCP Server では動作しません。
レートリミット: DCR エンドポイントは厳格に検証・レート制御されます。大量の自動登録はブロック対象となります。
事前登録は不可: 従来の OAuth のような client_id の手動発行・管理は提供していません。必ず DCR を経由してください。
Modified at 2026-04-24 00:40:29