jpeggdev/zoom-mcp
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.
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
-
Clone this repository
-
Install dependencies:
npm install
-
Copy the environment template and configure your Zoom credentials:
cp .env.example .env
-
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 contextGET /sessions
- List active sessionsPOST /sessions/create
- Create new user sessionGET /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 meetingget_meeting
- Get meeting detailsupdate_meeting
- Update an existing meetingdelete_meeting
- Delete a meetinglist_user_meetings
- List meetings for a userget_meeting_participants
- Get meeting participantsget_meeting_report
- Get detailed meeting analytics
Chat Tools
send_chat_message
- Send a chat message via Zoom chatbotsend_im_message
- Send an instant message to a userget_chat_sessions
- Get chat sessions report
User Tools
get_user
- Get user informationget_user_recordings
- Get user recordings
Webinar Tools
create_webinar
- Create a new webinarregister_for_meeting
- Register a participant for a meeting
Configuration
Zoom App Setup
- Create a Zoom app in the Zoom Marketplace
- Configure OAuth 2.0 credentials
- Set appropriate scopes for your use case:
meeting:write
- Create and manage meetingsmeeting:read
- Read meeting informationuser:read
- Read user informationrecording:read
- Access recordingschat:read
- Read chat messageschat:write
- Send chat messages
Environment Variables
ZOOM_CLIENT_ID
- Your Zoom app client IDZOOM_CLIENT_SECRET
- Your Zoom app client secretZOOM_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 functionalityZOOM_ACCOUNT_ID
- Account ID (extracted from JWT tokens)
Authentication
The server supports multiple authentication methods:
- Client Credentials Flow - For server-to-server applications
- Authorization Code Flow - For user authorization
- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details