zoom-mcp

jpeggdev/zoom-mcp

3.2

If you are the rightful owner of zoom-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server that integrates with Zoom APIs for managing meetings, chats, and webinars.

Tools
14
Resources
0
Prompts
0

Zoom MCP Server

A Model Context Protocol (MCP) server that provides comprehensive integration with Zoom APIs for meeting management and team chat functionality.

Features

Meeting Management

  • Create, update, and delete meetings
  • List user meetings (scheduled, live, upcoming)
  • Get meeting details and participants
  • Access meeting recordings and reports
  • Register participants for meetings

Chat & Messaging

  • Send chat messages via Zoom chatbot
  • Send instant messages between users
  • Retrieve chat sessions and message history
  • Support for rich message formatting (headers, markdown, interactive elements)

User Management

  • Get user information and profiles
  • Access user recordings and meeting history
  • Manage user chat sessions

Webinars & Events

  • Create and manage webinars
  • Register participants for webinars
  • Access webinar reports and analytics

Installation

  1. Clone this repository

  2. Install dependencies:

    npm install
    
  3. Copy the environment template and configure your Zoom credentials:

    cp .env.example .env
    
  4. Edit .env with your Zoom app credentials:

    ZOOM_CLIENT_ID=your_zoom_client_id
    ZOOM_CLIENT_SECRET=your_zoom_client_secret
    ZOOM_REDIRECT_URL=https://your-domain.com/oauth/callback
    ZOOM_ACCESS_TOKEN=your_access_token  # Optional for development
    ZOOM_BOT_JID=your_bot_jid@xmpp.zoom.us  # For chatbot functionality
    

Development

Build the server:

npm run build

Run in development mode:

npm run dev          # MCP server (stdio mode)
npm run dev-http     # HTTP streaming server (port 8080 with auto-selection)
npm run dev-http-alt # HTTP streaming server (port 8081)

Start the server:

npm start           # MCP server (stdio mode)
npm run start-http  # HTTP streaming server

Testing:

npm run test-http   # Full HTTP streaming test suite
npm run type-check  # TypeScript type checking
npm run lint        # ESLint code quality

Usage

MCP Server (Default)

The server runs on stdio by default for MCP integration:

npm run dev    # Development with hot reload
npm start      # Production

HTTP Streaming Server

Run as an HTTP server with streaming capabilities and session management:

npm run dev-http        # HTTP server on port 8080 (with auto port selection)
npm run dev-http-alt    # HTTP server on port 8081
npm run start-http      # Production HTTP server

Enhanced Features:

  • Automatic Port Selection: If the preferred port is in use, automatically finds an available port (8080-8090)
  • Session Management: Track user sessions with automatic 30-minute timeout and cleanup
  • Graceful Shutdown: Handles SIGINT/SIGTERM signals with proper connection cleanup
  • Force Cleanup: Automatically kills any remaining processes on server ports during shutdown
  • Process Management: Advanced process tracking and cleanup utilities prevent port conflicts
  • Request Timeouts: Configurable timeouts (30s request, 5s keep-alive) to prevent hanging
  • Error Recovery: Robust error handling with detailed logging and connection management
  • CORS Support: Configurable cross-origin resource sharing for web clients
  • Pre-test Cleanup: Test scripts automatically clean up any existing processes before starting

HTTP Endpoints:

  • POST /mcp/stream - MCP protocol over Server-Sent Events with session context
  • GET /sessions - List active sessions
  • POST /sessions/create - Create new user session
  • GET /health - Server health and status check

Process Management: The server includes advanced process management to prevent port conflicts and ensure clean shutdowns:

  • Force Cleanup: httpServer.forceClose() method kills any remaining processes on the server port
  • Port Utilities: PortManager class provides port availability checking and cleanup
  • Signal Handling: Properly handles SIGINT/SIGTERM with graceful → force shutdown fallback
  • Pre-test Cleanup: Test scripts clean up ports 8081-8090 before starting to prevent conflicts

This MCP server provides the following tools:

Meeting Tools

  • create_meeting - Create a new Zoom meeting
  • get_meeting - Get meeting details
  • update_meeting - Update an existing meeting
  • delete_meeting - Delete a meeting
  • list_user_meetings - List meetings for a user
  • get_meeting_participants - Get meeting participants
  • get_meeting_report - Get detailed meeting analytics

Chat Tools

  • send_chat_message - Send a chat message via Zoom chatbot
  • send_im_message - Send an instant message to a user
  • get_chat_sessions - Get chat sessions report

User Tools

  • get_user - Get user information
  • get_user_recordings - Get user recordings

Webinar Tools

  • create_webinar - Create a new webinar
  • register_for_meeting - Register a participant for a meeting

Configuration

Zoom App Setup

  1. Create a Zoom app in the Zoom Marketplace
  2. Configure OAuth 2.0 credentials
  3. Set appropriate scopes for your use case:
    • meeting:write - Create and manage meetings
    • meeting:read - Read meeting information
    • user:read - Read user information
    • recording:read - Access recordings
    • chat:read - Read chat messages
    • chat:write - Send chat messages

Environment Variables

  • ZOOM_CLIENT_ID - Your Zoom app client ID
  • ZOOM_CLIENT_SECRET - Your Zoom app client secret
  • ZOOM_REDIRECT_URL - OAuth redirect URL (for authorization code flow)
  • ZOOM_BASE_URL - Zoom API base URL (defaults to https://api.zoom.us/v2)
  • ZOOM_ACCESS_TOKEN - Pre-configured access token (optional)
  • ZOOM_BOT_JID - Bot JID for chatbot functionality
  • ZOOM_ACCOUNT_ID - Account ID (extracted from JWT tokens)

Authentication

The server supports multiple authentication methods:

  1. Client Credentials Flow - For server-to-server applications
  2. Authorization Code Flow - For user authorization
  3. Pre-configured Access Token - For development/testing

The server automatically handles token refresh and JWT parsing for extracting user/account information.

API Coverage

This MCP server implements the most commonly used endpoints from Zoom's APIs:

  • Zoom Meeting API - Core meeting management functionality
  • Zoom Chatbot API - Rich messaging and interactive elements
  • Zoom Team Chat API - Instant messaging and chat sessions
  • Zoom Webinar API - Webinar creation and management
  • Zoom User API - User information and recordings

Error Handling

The server includes comprehensive error handling for:

  • Invalid authentication credentials
  • Missing required parameters
  • API rate limiting
  • Network timeouts
  • Invalid JWT tokens

Development Notes

  • All API calls include automatic token refresh
  • Request/response validation using Zod schemas
  • TypeScript support with full type definitions
  • Modular architecture for easy extension
  • Comprehensive logging for debugging

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see LICENSE file for details