Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi Zoom con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Fai lavorare la tua AI con Zoom: trova e leggi le tue riunioni, pianificale, modificale e annullale, gestisci le registrazioni dei partecipanti, vedi chi ha partecipato alle riunioni passate, elenca le registrazioni cloud e i webinar e ottieni i report di utilizzo. Con l'accesso del tuo account Zoom tramite una tua app Zoom (OAuth).
Prova a chiedere
Prompt di esempio per Zoom
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → Zoom, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
Zoom + Gemini
Fai lavorare la tua AI con Zoom: trova e leggi le tue riunioni, pianificale, modificale e annullale, gestisci le registrazioni dei partecipanti, vedi chi ha partecipato alle riunioni passate, elenca le registrazioni cloud e i webinar e ottieni i report di utilizzo. Con l'accesso del tuo account Zoom tramite una tua app Zoom (OAuth).
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
ZOOM_CLIENT_ID, ZOOM_CLIENT_SECRET
Step 1 — Ottieni le credenziali
- Accedi a marketplace.zoom.us come proprietario dell'account, admin o utente con il ruolo Zoom for developers. Nella navigazione in basso a sinistra clicca su Developer, poi su Develop (in alto a destra) → Build an app → General app → Create. Per i tool delle riunioni basta un account Zoom Basic gratuito.
- In Basic Info rinomina l'app (per esempio "AnythingMCP") e scegli come viene gestita: User-managed se l'AI deve lavorare con le tue riunioni e registrazioni (il caso normale), Admin-managed se deve leggere anche gli altri utenti, le loro riunioni e i report di utilizzo. In quel caso l'autorizza un admin.
- In App Credentials copia Client ID e Client Secret di sviluppo in
ZOOM_CLIENT_IDeZOOM_CLIENT_SECRET. Le credenziali di sviluppo bastano per il tuo account: un'app mai pubblicata può essere autorizzata solo dagli utenti dell'account che l'ha creata. - In OAuth Information imposta OAuth Redirect URL su
https://cloud.anythingmcp.com/api/mcp-oauth/callbacke aggiungi lo stesso URL alla OAuth Allow List. Se ospiti AnythingMCP in proprio, usa in entrambi i puntihttps://tuo-host-anythingmcp/api/mcp-oauth/callback. Clicca su Continue e salta Features e Surface. - In Scopes clicca su Add Scopes e spunta gli scope elencati qui sotto. Per ognuno Zoom chiede una breve motivazione, per esempio "lets the user's AI assistant read their meetings".
- Installa il connettore, clicca su Authorize with Provider nella pagina del connettore, accedi a Zoom e clicca su Allow. Non serve Add App Now in Local Test: l'autorizzazione fa la stessa cosa.
- Comincia con
zoom_get_current_userper controllare chi ha effettuato l'accesso, poi fai elencare le tue riunioni all'AI conzoom_list_meetings.
Scope di lettura: 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 e webinar:read:webinar.
Scope di scrittura: meeting:write:meeting (creare), meeting:update:meeting (modificare), meeting:delete:meeting (eliminare), meeting:write:registrant (aggiungere un iscritto) e meeting:update:registrant_status (approvare, rifiutare, annullare).
Scope admin (solo su un'app Admin-managed, autorizzata da un admin, e solo se ti servono): user:read:list_users:admin per zoom_list_users, user:read:user:admin per leggere altri utenti, la variante :admin di ogni scope di riunioni, registrazioni e webinar indicato sopra (per esempio meeting:read:list_meetings:admin) per lavorare con le riunioni di altri utenti, e report:read:user:admin, report:read:meeting:admin e report:read:list_meeting_participants:admin per i tool dei report. Se la scelta degli scope non offre scope :admin, passa l'app a Admin-managed in Basic Info.
Solo lettura: spunta solo gli scope di lettura e disattiva zoom_create_meeting, zoom_update_meeting, zoom_add_meeting_registrant e zoom_update_meeting_registrant_status.
Disattivato all'installazione: zoom_delete_meeting, che elimina una riunione, oppure l'intera serie di una riunione ricorrente se non si indica una singola occorrenza. Non si può annullare, e nessuna email di cancellazione parte se i flag di promemoria non sono attivi. Attivalo solo se l'AI deve annullare riunioni.
Restare connessi: l'AI lavora come l'utente Zoom che ha autorizzato. me indica quell'utente ovunque un tool accetti user_id; l'ID o l'email di un altro utente funzionano solo con gli scope admin. Gli access token durano un'ora e vengono rinnovati automaticamente. Il refresh token dura 90 giorni e viene sostituito a ogni rinnovo, quindi il connettore resta connesso finché viene usato almeno una volta ogni 90 giorni. Dopo aver cambiato gli scope nell'app, clicca di nuovo su Authorize with Provider: un token contiene solo gli scope concessi al momento in cui è stato emesso.
Notifiche: prima conferma: creare o modificare una riunione può inviare un'email agli host alternativi e agli invitati, chi viene iscritto riceve una conferma, e anche approvare, rifiutare o annullare un'iscrizione invia un'email. L'AI dice prima chi verrà avvisato e aspetta il tuo sì. zoom_get_meeting e zoom_create_meeting omettono la start_url, che avvierebbe la riunione come host: l'host la avvia dall'app Zoom, oppure con la join_url dopo aver effettuato l'accesso.
Riunioni e riunioni passate: l'ID di una riunione ha da 9 a 11 cifre. zoom_list_meetings restituisce solo riunioni pianificate, mai quelle istantanee, e con il filtro upcoming o previous_meetings copre al massimo 6 mesi. Ogni occorrenza di una riunione ha un proprio UUID: zoom_list_past_meeting_instances li elenca, e zoom_get_past_meeting, zoom_list_past_meeting_participants, zoom_get_meeting_recordings, zoom_get_meeting_report e zoom_get_meeting_participants_report accettano un ID di riunione (ultima occorrenza) o un UUID. Un UUID che inizia con / o contiene // va passato già codificato una volta per URL (/ajXp112QmuoKj4854875== diventa %2FajXp112QmuoKj4854875%3D%3D) e la seconda codifica richiesta da Zoom la fa il connettore. Le riunioni passate restano leggibili per 12 mesi, partecipanti e occorrenze per 15 mesi. zoom_list_recordings copre al massimo un mese per chiamata, e le registrazioni si condividono con la loro play_url o share_url.
Piani: per i tool delle riunioni basta un account Basic gratuito, ma lì le riunioni con 3 o più partecipanti terminano dopo 40 minuti. Iscrizioni, partecipanti delle riunioni passate, registrazioni cloud e report richiedono Pro o superiore (le registrazioni anche la registrazione cloud attiva). I webinar richiedono Pro o superiore più l'add-on Webinars, altrimenti Zoom risponde con il codice 200 "Webinar plan is missing". zoom_get_user_meetings_report copre un mese per chiamata negli ultimi 6 mesi ed elenca solo riunioni con almeno due partecipanti.
Limiti di frequenza: i limiti valgono per account Zoom e sono condivisi da tutte le sue app. Gli account gratuiti consentono da 1 a 4 richieste al secondo a seconda del tipo e da 1.000 a 6.000 al giorno (i report contano come richieste pesanti); Pro e superiori da 10 a 80 al secondo. Creare e modificare riunioni è limitato a 100 al giorno per host, e Zoom consente 3 richieste di iscrizione e 10 cambi di stato al giorno per iscritto e riunione. Oltre il limite Zoom risponde 429: attendi un secondo, oppure fino al giorno successivo (UTC) per i limiti giornalieri.
Errori comuni: 401 con codice 124 "Invalid access token" significa che l'accesso è scaduto o è stato revocato: clicca di nuovo su Authorize with Provider. 400 con codice 4711 o 4700 ("does not contain scopes") significa che all'app manca lo scope indicato nel messaggio: aggiungilo in Scopes e autorizza di nuovo. 400 con codice 200 "No permission" o "Only available for Paid account" significa che il piano o il ruolo dell'utente non lo consente. 404 con codice 3001 è una riunione inesistente, 1001 un utente inesistente, 3301 una riunione senza registrazione. Il codice 300 significa che il next_page_token non è valido o è scaduto (dura 15 minuti). 3161 significa che l'utente non può ospitare o pianificare riunioni.
Il connettore non copre il report di utilizzo giornaliero, il download dei file di registrazione, trascrizioni e riepiloghi di AI Companion, la creazione o modifica di webinar, Zoom Phone, Team Chat, Rooms, le impostazioni dell'account o la gestione degli utenti.
Step 2 — Installa l'adapter
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
Step 3 — Aggiungi il connettore in Gemini
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Gemini CLI legge i server MCP da ~/.gemini/settings.json (su Windows %USERPROFILE%\.gemini\settings.json). Aggiungi:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Crea una chiave API MCP in AnythingMCP da MCP Servers → il tuo server → API keys e incollala al posto di
YOUR_MCP_API_KEY. - Salva il file e riavvia
gemini. - Esegui
/mcpin Gemini CLI (oppuregemini mcp listdal terminale):anythingmcpdovrebbe risultare connesso. - Inizia a scrivere prompt: Gemini CLI ora può chiamare i tool di
Zoom.
Tool disponibili
| 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… |
Esempi di prompt
- "Quali riunioni Zoom ho in programma la prossima settimana? Per ognuna indica argomento, ora di inizio e link per partecipare."
- "Chi ha partecipato all'ultimo Weekly sales sync e per quanto tempo è rimasta ogni persona nella riunione?"
- "Pianifica una riunione Zoom di 45 minuti chiamata Pianificazione Q4 il 20 ottobre alle 15:00 ora di Roma e mandami il link per partecipare."
- "Elenca le mie registrazioni cloud di settembre con i link per riprodurle."
FAQ
Dove cerca i server MCP Gemini CLI? In ~/.gemini/settings.json per il tuo utente, oppure in .gemini/settings.json dentro un progetto. gemini mcp list mostra ogni server e se si connette.
Prossimi passi
Questa guida ti è stata utile?