Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    glebis

    zoom

    glebis/zoom
    Communication
    8
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Create and manage Zoom meetings and access cloud recordings via the Zoom API...

    SKILL.md

    Zoom Skill

    Manage Zoom meetings and cloud recordings via the Zoom API.

    Features

    • Meetings: List, create, update, delete scheduled meetings
    • Recordings: List cloud recordings with transcripts, summaries, and download links

    Note: All times passed to create/update commands are interpreted as local time. The script auto-detects your timezone if not explicitly specified with --timezone.

    Prerequisites

    This skill uses two authentication methods:

    Feature Auth Type Credentials File
    Meetings Server-to-Server OAuth ~/.zoom_credentials/credentials.json
    Recordings User OAuth (General App) ~/.zoom_credentials/oauth_token.json

    Check status:

    python3 scripts/zoom_meetings.py setup
    

    Setup

    Part 1: Server-to-Server OAuth (for Meetings)

    1. Go to marketplace.zoom.us → Develop → Build App
    2. Select Server-to-Server OAuth
    3. Name it (e.g., "Claude Zoom Meetings")
    4. Copy Account ID, Client ID, Client Secret
    5. Add scopes:
      • meeting:read:meeting:admin
      • meeting:read:list_meetings:admin
      • meeting:write:meeting:admin
      • user:read:user:admin
    6. Activate the app
    7. Save credentials:
    mkdir -p ~/.zoom_credentials
    cat > ~/.zoom_credentials/credentials.json << 'EOF'
    {
      "account_id": "YOUR_ACCOUNT_ID",
      "client_id": "YOUR_CLIENT_ID",
      "client_secret": "YOUR_CLIENT_SECRET"
    }
    EOF
    

    Part 2: General App OAuth (for Recordings)

    Server-to-Server apps cannot access cloud recordings. You need a separate General App:

    1. Go to marketplace.zoom.us → Develop → Build App
    2. Select General App
    3. Set redirect URL: http://localhost:8888/callback
    4. Copy Client ID and Client Secret
    5. Add scopes:
      • cloud_recording:read:list_user_recordings
      • cloud_recording:read:list_recording_files
    6. Activate the app
    7. Authorize (one-time browser flow):
    # Open this URL in browser (replace CLIENT_ID):
    https://zoom.us/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:8888/callback
    
    # After authorizing, you'll be redirected to:
    # http://localhost:8888/callback?code=AUTHORIZATION_CODE
    
    # Exchange the code for tokens (replace values):
    python3 -c "
    import requests, json
    resp = requests.post('https://zoom.us/oauth/token',
        auth=('CLIENT_ID', 'CLIENT_SECRET'),
        data={'grant_type': 'authorization_code', 'code': 'AUTH_CODE', 'redirect_uri': 'http://localhost:8888/callback'})
    data = resp.json()
    data['client_id'] = 'CLIENT_ID'
    data['client_secret'] = 'CLIENT_SECRET'
    data['expires_at'] = __import__('time').time() + data.get('expires_in', 3600)
    with open(__import__('pathlib').Path.home() / '.zoom_credentials/oauth_token.json', 'w') as f:
        json.dump(data, f, indent=2)
    print('Saved!')
    "
    

    Quick Start

    # Check setup
    python3 scripts/zoom_meetings.py setup
    
    # List upcoming meetings
    python3 scripts/zoom_meetings.py list
    
    # Create a meeting
    python3 scripts/zoom_meetings.py create "Team Standup" --start "2025-01-15T10:00:00" --duration 30
    
    # List recordings
    python3 scripts/zoom_meetings.py recordings --start 2025-01-01
    

    Commands

    Meetings

    # List meetings
    python3 scripts/zoom_meetings.py list                      # upcoming
    python3 scripts/zoom_meetings.py list --type previous      # past
    python3 scripts/zoom_meetings.py list --limit 10 --json
    
    # Get meeting details
    python3 scripts/zoom_meetings.py get MEETING_ID
    
    # Create meeting (times are treated as LOCAL time)
    python3 scripts/zoom_meetings.py create "Topic"                              # instant
    python3 scripts/zoom_meetings.py create "Topic" --start "2025-01-15T14:00:00" # scheduled (local time)
    python3 scripts/zoom_meetings.py create "Topic" --duration 60 --timezone "Europe/Berlin"
    python3 scripts/zoom_meetings.py create "Topic" --agenda "Discussion points" --waiting-room
    python3 scripts/zoom_meetings.py create "Topic" --invite "user@example.com"  # send invite
    python3 scripts/zoom_meetings.py create "Topic" --invite "a@x.com" --invite "b@x.com"  # multiple
    
    # Update meeting
    python3 scripts/zoom_meetings.py update MEETING_ID --topic "New Topic"
    python3 scripts/zoom_meetings.py update MEETING_ID --start "2025-01-16T10:00:00"
    
    # Delete meeting (requires meeting:delete:meeting:admin scope)
    python3 scripts/zoom_meetings.py delete MEETING_ID
    

    Recordings

    # List all recordings (default: last 30 days)
    python3 scripts/zoom_meetings.py recordings
    
    # With date range
    python3 scripts/zoom_meetings.py recordings --start 2025-01-01 --end 2025-01-31
    
    # Show download URLs
    python3 scripts/zoom_meetings.py recordings --show-downloads
    
    # Get specific meeting's recordings
    python3 scripts/zoom_meetings.py recording MEETING_ID
    
    # JSON output
    python3 scripts/zoom_meetings.py recordings --json
    

    Output Formats

    Markdown (default)

    # Zoom Meetings (3 upcoming)
    
    ## Weekly Team Sync
    **ID:** 123456789
    **Start:** 2025-01-15 14:00:00 UTC
    **Duration:** 60 minutes
    **Join URL:** https://zoom.us/j/123456789
    

    JSON

    Add --json for structured output suitable for piping to other tools.

    Recording File Types

    Type Description
    MP4 Video recording
    M4A Audio only
    TRANSCRIPT Text transcript (VTT)
    CHAT Chat messages
    TIMELINE Speaker timeline
    SUMMARY AI meeting summary

    Example User Requests

    User says Command
    "List my Zoom meetings" list
    "Show past meetings" list --type previous
    "Create a meeting for tomorrow at 2pm" create "Meeting" --start "2025-01-15T14:00:00"
    "Show my Zoom recordings" recordings --start 2025-01-01
    "Get the recording for meeting X" recording MEETING_ID

    Dependencies

    pip install requests
    

    Files

    File Purpose
    ~/.zoom_credentials/credentials.json S2S OAuth credentials
    ~/.zoom_credentials/token.json S2S cached token
    ~/.zoom_credentials/oauth_token.json User OAuth tokens (auto-refreshes)

    API Reference

    • Zoom Meeting APIs
    • Zoom API Reference
    Recommended Servers
    Zoom
    Zoom
    Google Meet
    Google Meet
    Google Calendar
    Google Calendar
    Repository
    glebis/claude-skills
    Files