Skip to main content

A Model Context Protocol (MCP) server implementation for Zoom

Project description

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

  1. Clone the repository:

    git clone https://github.com/yourusername/zoom-mcp.git
    cd zoom-mcp
    
  2. Create a virtual environment and activate it using uv:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install dependencies using uv:

    uv pip install -e .
    
  4. 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:

  1. Base64 encode the API Key and Secret for Basic authentication
  2. Request an access token from Zoom's OAuth endpoint
  3. Use the token for subsequent API requests
  4. Automatically refresh the token when it expires

Development

Creating a Zoom App

  1. Go to the Zoom App Marketplace and sign in
  2. Click "Develop" in the top-right corner and select "Build App"
  3. Choose "Server-to-Server OAuth" app type
  4. Fill in the required information for your app
  5. 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:

  1. 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
  2. Permission Errors

    • Check that your account has the required permissions
    • Verify that the scopes requested match the endpoints you're trying to access
  3. 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_osomai_zoom_mcp-0.1.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_osomai_zoom_mcp-0.1.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_osomai_zoom_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_osomai_zoom_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_osomai_zoom_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 598413618431bb4fa72d6e4543cdd5b4472b563f34bf17d1d679c6ceae3bb8d1
MD5 fab6ba42943a875651256c564748c93c
BLAKE2b-256 04f79b93adbf0b26b84006893bf83cdab4565bc67eb5865d1e31b17e8008df11

See more details on using hashes here.

File details

Details for the file iflow_mcp_osomai_zoom_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_osomai_zoom_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_osomai_zoom_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 72b335e97589fe28a214ebf3952fcf2ae9f189a0346b3c452ab7b526237597cf
MD5 4301e674e6a350d818194567cb48d5c1
BLAKE2b-256 bacf6e05f3643a8b8307619a4d0723ca176cd2600cb78807b8bcbc87b3e3d6cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page