Zoom MCP Server
by osomai
A Model Context Protocol (MCP) server implementation for Zoom, providing AI models with access to Zoom's API capabilities. It serves as a bridge between Claude and Zoom, allowing for seamless integration and access to Zoom meetings, users, and recordings.
Last updated: N/A
Zoom MCP Server
A Model Context Protocol (MCP) server implementation for Zoom, providing AI models with access to Zoom's API capabilities.
Overview
This project implements an MCP server that enables Claude to connect to Zoom, retrieve data, and perform actions through the Zoom API. It serves as a bridge between Claude and Zoom, allowing for seamless integration and access to Zoom meetings, users, and recordings.
Features
- Connect to Zoom using Server-to-Server OAuth 2.0 authentication
- Retrieve user information and profiles
- Access meeting details and recordings
- Query Zoom account settings and configurations
- Manage Zoom resources through a standardized API
- Debug mode for troubleshooting API connections
Installation
Prerequisites
- Python 3.11 or higher
- A Zoom account with admin privileges
- A Zoom Server-to-Server OAuth app with appropriate scopes
- uv for Python package management
Setup
-
Clone the repository:
git clone https://github.com/yourusername/zoom-mcp.git cd zoom-mcp
-
Create a virtual environment and activate it using uv:
uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies using uv:
uv pip install -e .
-
Set up Zoom API credentials:
python scripts/setup_zoom_auth.py
This script will guide you through setting up your Zoom API credentials in a
.env
file:ZOOM_API_KEY=your-client-id ZOOM_API_SECRET=your-client-secret ZOOM_ACCOUNT_ID=your-account-id
Usage
Testing the Connection
After setting up your credentials, you can test the connection to the Zoom API:
python scripts/test_zoom_connection.py
This script will verify:
- Your environment variables are set correctly
- OAuth token generation works
- Basic API access is successful
API Endpoints
The MCP server provides access to various Zoom API endpoints:
/users/me
- Get information about the authenticated user- Additional endpoints will be implemented as needed
Authentication
This project uses Zoom's Server-to-Server OAuth 2.0 authentication. The authentication module handles:
- OAuth 2.0 token generation
- Token caching and renewal
- Environment variable configuration
The authentication flow:
- Base64 encode the API Key and Secret for Basic authentication
- Request an access token from Zoom's OAuth endpoint
- Use the token for subsequent API requests
- Automatically refresh the token when it expires
Development
Creating a Zoom App
- Go to the Zoom App Marketplace and sign in
- Click "Develop" in the top-right corner and select "Build App"
- Choose "Server-to-Server OAuth" app type
- Fill in the required information for your app
- In the "Scopes" section, add the following scopes:
user:read:admin
(required for basic user information)- Additional scopes as needed for your specific use case
Running Tests
python -m pytest
Code Style
This project follows PEP 8 guidelines. You can check your code style using:
uv pip install flake8
flake8 src tests
Troubleshooting
If you encounter issues with the Zoom API connection:
-
Authentication Errors
- Verify your API Key and Secret are correct
- Ensure your app has the necessary scopes enabled
- Deactivate and reactivate your app in the Zoom Marketplace
-
Permission Errors
- Check that your account has the required permissions
- Verify that the scopes requested match the endpoints you're trying to access
-
Account ID Issues
- Make sure you're using the correct Account ID from your Zoom account profile
- The Account ID is required for Server-to-Server OAuth apps
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.