インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、Zoom をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
概要
AI に Zoom で作業させます。ミーティングの検索と読み取り、スケジュール、変更、キャンセル、登録者の管理、過去のミーティングの参加者の確認、クラウド録画とウェビナーの一覧表示、利用状況レポートの取得ができます。自分で作成した Zoom アプリ経由で、Zoom アカウントでサインインします(OAuth)。
こう聞いてみよう
Zoom のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → Zoom をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
Zoom + Gemini
AI に Zoom で作業させます。ミーティングの検索と読み取り、スケジュール、変更、キャンセル、登録者の管理、過去のミーティングの参加者の確認、クラウド録画とウェビナーの一覧表示、利用状況レポートの取得ができます。自分で作成した Zoom アプリ経由で、Zoom アカウントでサインインします(OAuth)。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
ZOOM_CLIENT_ID, ZOOM_CLIENT_SECRET
ステップ 1 — 認証情報を取得
- marketplace.zoom.us に、アカウントオーナー、管理者、または Zoom for developers ロールを持つユーザーとしてサインインします。左下のナビゲーションで Developer をクリックし、右上の Develop → Build an app → General app → Create の順に進みます。ミーティング用のツールなら、無料の Zoom Basic アカウントで十分です。
- Basic Info でアプリの名前を変更し(たとえば「AnythingMCP」)、管理方法を選びます。AI に自分のミーティングと録画を扱わせる場合(通常はこちら)は User-managed、ほかのユーザー、その人たちのミーティング、利用状況レポートも読ませる場合は Admin-managed です。後者の場合は管理者が承認します。
- App Credentials にある開発用の Client ID と Client Secret を、
ZOOM_CLIENT_IDとZOOM_CLIENT_SECRETにコピーします。自分のアカウントで使うなら開発用の認証情報で十分です。公開しないアプリは、それを作成したアカウントのユーザーしか承認できません。 - OAuth Information で OAuth Redirect URL に
https://cloud.anythingmcp.com/api/mcp-oauth/callbackを設定し、同じ URL を OAuth Allow List にも追加します。AnythingMCP をセルフホストしている場合は、どちらにもhttps://your-anythingmcp-host/api/mcp-oauth/callbackを使います。Continue をクリックし、Features と Surface は飛ばします。 - Scopes で Add Scopes をクリックし、下に挙げたスコープにチェックを入れます。Zoom はスコープごとに短い理由の入力を求めます(たとえば「lets the user's AI assistant read their meetings」)。
- コネクターをインストールし、コネクターのページで Authorize with Provider をクリックして Zoom にサインインし、Allow をクリックします。Local Test の Add App Now は不要です。承認すれば同じことが行われます。
- まず
zoom_get_current_userでサインインしているユーザーを確認し、そのあとzoom_list_meetingsで AI にミーティングを一覧表示させます。
読み取りスコープ: user:read:user, meeting:read:list_meetings, meeting:read:meeting, meeting:read:list_registrants, meeting:read:past_meeting, meeting:read:list_past_instances, meeting:read:list_past_participants, cloud_recording:read:list_user_recordings, cloud_recording:read:list_recording_files, webinar:read:list_webinars、webinar:read:webinar。
書き込みスコープ: meeting:write:meeting(作成)、meeting:update:meeting(変更)、meeting:delete:meeting(削除)、meeting:write:registrant(登録者の追加)、meeting:update:registrant_status(承認、拒否、取り消し)。
管理者スコープ(Admin-managed のアプリで、管理者が承認する場合のみ。必要なときだけ): zoom_list_users 用の user:read:list_users:admin、ほかのユーザーを読み取るための user:read:user:admin、ほかのユーザーのミーティングを扱うための、上記のミーティング、録画、ウェビナーの各スコープの :admin 版(たとえば meeting:read:list_meetings:admin)、そしてレポート用ツールのための report:read:user:admin、report:read:meeting:admin、report:read:list_meeting_participants:admin。スコープの選択画面に :admin スコープが出てこない場合は、Basic Info でアプリを Admin-managed に切り替えてください。
読み取り専用の設定: 読み取りスコープだけにチェックを入れ、zoom_create_meeting、zoom_update_meeting、zoom_add_meeting_registrant、zoom_update_meeting_registrant_status をオフにします。
インストール時はオフ: ミーティングを削除する zoom_delete_meeting。定期ミーティングの場合、特定の回を指定しなければシリーズ全体が削除されます。元に戻すことはできず、リマインダーのフラグを設定しない限りキャンセルのメールは送られません。AI にミーティングをキャンセルさせる場合だけオンにしてください。
サインイン状態の維持: AI は承認した Zoom ユーザーとして動作します。ツールが user_id を受け取る箇所では、me がそのユーザーを表します。ほかのユーザーの ID やメールアドレスは、管理者スコープがある場合にのみ使えます。アクセストークンの有効期間は 1 時間で、自動的に更新されます。リフレッシュトークンの有効期間は 90 日で、更新のたびに新しいものに置き換わります。そのため、90 日に 1 回以上使っていればサインイン状態が続きます。アプリでスコープを変更したら、もう一度 Authorize with Provider をクリックしてください。トークンには、発行時に付与されたスコープしか含まれません。
通知: 先に確認: ミーティングの作成や変更では、代替ホストや招待者にメールが届くことがあります。登録者を追加すると確認メールが送られ、登録の承認、拒否、取り消しでもメールが送られます。AI は事前に誰に通知されるかを伝え、あなたの了承を待ちます。zoom_get_meeting と zoom_create_meeting は、ホストとしてミーティングを開始できてしまう start_url を返しません。ホストは Zoom アプリから、またはサインインした状態で join_url からミーティングを開始します。
ミーティングと過去のミーティング: ミーティング ID は 9 から 11 桁の数字です。zoom_list_meetings が返すのはスケジュール済みのミーティングだけで、インスタントミーティングは含まれません。また upcoming または previous_meetings で絞り込んだ場合、対象は最大 6 か月です。ミーティングは回ごとに固有の UUID を持ちます。zoom_list_past_meeting_instances でその一覧を取得でき、zoom_get_past_meeting、zoom_list_past_meeting_participants、zoom_get_meeting_recordings、zoom_get_meeting_report、zoom_get_meeting_participants_report には、ミーティング ID(直近の回)か UUID を渡します。/ で始まる UUID や // を含む UUID は、一度 URL エンコードしてから渡します(/ajXp112QmuoKj4854875== は %2FajXp112QmuoKj4854875%3D%3D になります)。Zoom が求める 2 回目のエンコードはコネクターが行います。過去のミーティングは 12 か月、参加者と開催回は 15 か月読み取れます。zoom_list_recordings は 1 回の呼び出しで最大 1 か月分が対象で、録画は play_url または share_url で共有します。
プラン: ミーティング用のツールは無料の Basic アカウントでも使えますが、その場合 3 人以上のミーティングは 40 分で終了します。登録、過去のミーティングの参加者、クラウド録画、レポートには Pro 以上が必要です(録画にはクラウド録画の有効化も必要です)。ウェビナーには Pro 以上と Webinars アドオンが必要で、ない場合 Zoom はコード 200「Webinar plan is missing」を返します。zoom_get_user_meetings_report は 1 回の呼び出しで直近 6 か月以内の 1 か月分が対象で、参加者が 2 人以上のミーティングだけを表示します。
レート制限: 制限は Zoom アカウント単位で、そのアカウントのすべてのアプリで共有されます。無料アカウントでは、リクエストの種類に応じて毎秒 1 から 4 件、1 日 1,000 から 6,000 件までです(レポートは重いリクエストとして数えられます)。Pro 以上では毎秒 10 から 80 件です。ミーティングの作成と変更はホストごとに 1 日 100 件までで、登録者とミーティングごとに 1 日あたり登録リクエストは 3 件、ステータス変更は 10 件までです。制限を超えると Zoom は 429 を返します。1 秒待つか、1 日あたりの制限なら翌日(UTC)まで待ってください。
よくあるエラー: 401 のコード 124「Invalid access token」は、サインインの期限切れまたは取り消しを示します。もう一度 Authorize with Provider をクリックしてください。400 のコード 4711 または 4700(「does not contain scopes」)は、メッセージに示されたスコープがアプリにないことを示します。Scopes で追加し、もう一度承認してください。400 のコード 200「No permission」または「Only available for Paid account」は、プランかユーザーのロールで許可されていないことを示します。404 のコード 3001 は存在しないミーティング、1001 は存在しないユーザー、3301 は録画のないミーティングです。コード 300 は next_page_token が無効または期限切れであることを示します(有効期間は 15 分)。3161 は、そのユーザーがミーティングを主催またはスケジュールできないことを示します。
このコネクターは、日次の利用状況レポート、録画ファイルのダウンロード、文字起こしと AI Companion の要約、ウェビナーの作成と変更、Zoom Phone、Team Chat、Rooms、アカウント設定、ユーザー管理は扱いません。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Gemini にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
Gemini CLI は ~/.gemini/settings.json(Windows では %USERPROFILE%\.gemini\settings.json)から MCP サーバーを読み込みます。次を追加してください:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- AnythingMCP の MCP Servers → 対象のサーバー → API keys で MCP API キーを作成し、
YOUR_MCP_API_KEYと置き換えます。 - ファイルを保存し、
geminiを再起動します。 - Gemini CLI で
/mcpを実行します(またはシェルでgemini mcp list)。anythingmcpが接続済みとして表示されるはずです。 - プロンプトを入力しましょう。Gemini CLI が
Zoomのツールを呼び出せるようになりました。
利用可能なツール
| Tool | What it does |
|---|---|
zoom_get_current_user | Read the signed-in Zoom user: id, first and last name, display name, email, type (1 Basic, 2 Licensed), role, time zone, personal meeting… |
zoom_list_users | List the users of the Zoom account (admin only, scope user:read:list_users:admin): id, name, email, type, status, role_id, department, time… |
zoom_get_user | Read one Zoom user by id or email: name, email, type, role, department, time zone, language, personal meeting id and URL, status and last… |
zoom_list_meetings | List a host's scheduled meetings (not instant ones): id, uuid, topic, type, start_time, duration, timezone, agenda, join_url, created_at.… |
zoom_get_meeting | Read one meeting: topic, type, status, start_time, duration, timezone, agenda, join_url, passcode, host, occurrences of a recurring… |
zoom_create_meeting | Schedule a Zoom meeting for a host |
zoom_update_meeting | Change a meeting: only the fields given are changed, settings are merged |
zoom_delete_meeting | Delete a meeting, or one occurrence of a recurring meeting with occurrence_id; without it the whole series is deleted |
zoom_list_meeting_registrants | List the registrants of a meeting with registration (Pro plan): id, first_name, last_name, email, status, create_time, join_url and answers |
zoom_add_meeting_registrant | Register a person for a meeting that has registration on |
zoom_update_meeting_registrant_status | Approve or deny pending registrants, or cancel approved ones |
zoom_get_past_meeting | Read a meeting that has ended: uuid, topic, host name and email, start_time, end_time, duration, total_minutes, participants_count and… |
zoom_list_past_meeting_participants | List who took part in an ended meeting (paid plan): name, user_email, join_time, leave_time, duration in seconds, status and internal_user |
zoom_list_past_meeting_instances | List the ended occurrences of a meeting id, each with uuid and start_time, to read one occurrence with the UUID tools |
zoom_list_recordings | List a user's cloud recordings in a date range of at most one month (Pro plan): per meeting uuid, id, topic, start_time, duration… |
zoom_get_meeting_recordings | Read the cloud recording of one meeting or webinar: topic, start_time, duration, total_size, share_url, recording_play_passcode and… |
zoom_list_webinars | List a host's unexpired webinars (Webinars add-on): id, uuid, topic, type, start_time, duration, timezone, agenda, join_url, created_at |
zoom_get_webinar | Read one webinar: topic, type, start_time, duration, timezone, agenda, join_url, registration_url, occurrences, recurrence and settings… |
zoom_get_user_meetings_report | Report of the meetings and webinars a user held in up to one month within the last 6 months (Pro plan, admin scope report:read:user:admin)… |
zoom_get_meeting_report | Report on one ended meeting (Pro plan, admin scope report:read:meeting:admin): uuid, topic, host user_name and user_email, start_time… |
zoom_get_meeting_participants_report | Participant report of an ended meeting with 2 or more people (Pro plan, admin scope report:read:list_meeting_participants:admin): name… |
プロンプトの例
- 「来週予定されている Zoom ミーティングは? それぞれのトピック、開始時刻、参加リンクを一覧にして。」
- 「前回の「週次営業ミーティング」に参加したのは誰で、それぞれ何分参加していた?」
- 「10 月 20 日の 15:00(東京時間)に「Q4 計画」という 45 分の Zoom ミーティングを設定して、参加リンクを教えて。」
- 「9 月のクラウド録画を再生リンク付きで一覧にして。」
FAQ
Gemini CLI はどこから MCP サーバーを読み込みますか? ユーザー単位では ~/.gemini/settings.json、プロジェクト単位ではプロジェクト内の .gemini/settings.json です。gemini mcp list で各サーバーと接続状態を確認できます。
次のステップ
このガイドは役に立ちましたか?