Enables intelligent monitoring and management of Zoom rooms, allowing users to query room status, resolve hierarchical locations, and retrieve detailed room configurations across multiple sites.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zoom MCP Serverlist all offline Zoom rooms in the DEN1 building"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zoom MCP Server
A FastMCP Model Context Protocol server that provides intelligent monitoring and management of Zoom rooms across multiple sites with smart location resolution.
๐ Features (New!)
5 Powerful Tools for comprehensive Zoom room management
Smart Location Resolution with fuzzy matching (e.g., "SF1", "DEN1", "Floor 3")
Denver Building Aliases - Special hardcoded mappings for room naming compatibility
Efficient API Usage - Single call for company-wide queries vs. multiple location-specific calls
OAuth 2.0 Authentication with automatic token refresh and file-based caching
Hierarchical Location Discovery - Understands campus โ building โ floor relationships
User-Friendly Confirmations - Clear messages explaining what was resolved
๐ ๏ธ Tools Available
test_zoom_connection
Test Zoom API authentication and connection status.
get_zoom_sites
Get all Zoom locations with hierarchy and aliases.
get_zoom_rooms
Get Zoom rooms with optional smart location filtering.
โก IMPORTANT: For maximum efficiency with company-wide queries (e.g., "find offline rooms anywhere"), omit location_query to make a single API call.
get_room_details
Get detailed information about a specific room.
resolve_location
Debug tool to test location resolution without fetching rooms.
๐ Smart Location Resolution
The server understands various location query patterns:
Query Pattern | Example | What It Resolves |
Campus codes |
| Entire campus with all buildings/floors |
Building numbers |
| Specific building or hardcoded alias |
Floor numbers |
| All floors with that number across sites |
Partial names |
| Best fuzzy match |
Special Denver Building Aliases
Due to Zoom's location hierarchy vs. room naming patterns, Denver has special hardcoded mappings:
DEN1โ Denver Building 1 (Floor 3) โ Rooms:DEN-1-101,DEN-1-102, etc.DEN2โ Denver Building 2 (T3F3, T3F5, T3F6) โ Rooms:DEN-2-201,DEN-2-202, etc.
๐ง Installation & Setup
Prerequisites
Python 3.10+
UV package manager
Zoom Pro/Business account with API access
1. Clone Repository
2. Install Dependencies
3. Zoom API Configuration
Create a Server-to-Server OAuth app in Zoom Marketplace
Add required scope:
room:read:adminGet your credentials: Account ID, Client ID, Client Secret
4. Configure Credentials
Create .env file:
5. Test Installation
๐ MCP Client Configuration
For Claude Desktop and Similar MCP Clients
Add to your MCP client configuration:
Using Environment Variables (Recommended)
Using Command-Line Arguments
๐ก Usage Examples
Find All Offline Rooms (Efficient)
"Are any Zoom rooms offline anywhere in the company?"
โ Uses get_zoom_rooms without location_query (single API call)
Check Specific Location
"Show me all rooms in San Francisco"
โ Uses get_zoom_rooms with location_query: "SF1"
Debug Location Resolution
"How would 'DEN2' be resolved?"
โ Uses resolve_location to see what locations match
Room Status by Building
"What's the status of Denver Building 1 rooms?"
โ Uses get_zoom_rooms with location_query: "DEN1"
๐๏ธ Architecture
Key Design Patterns
Import Inside Functions: Configuration modules imported inside tool functions to avoid timing issues
Multi-Level Token Caching: Memory cache + file persistence with 1-hour expiration and 5-minute buffer
Hierarchical Discovery: Automatic campus โ building โ floor relationship building
Hybrid Resolution: Hardcoded Denver aliases + dynamic fuzzy matching for other sites
๐งช Testing
MCPTools Testing
Direct Script Testing
๐ Documentation
Comprehensive documentation available in docs/:
Quick Start Guide - Setup and basic usage
Authentication Guide - OAuth implementation details
Testing Guide - MCPTools usage and examples
Best Practices - Zoom-specific patterns
Advanced Features - Deep dive into capabilities
๐ Security
Credentials stored in
.envfiles (not committed to git)Token caching with secure file permissions
Bearer token automatic refresh
Error messages don't expose sensitive information
๐ค Contributing
Fork the repository
Create a feature branch
Make your changes
Test with MCPTools
Submit a pull request
๐ License
This project is licensed under the MIT License.
๐ Troubleshooting
Common Issues
"Zoom credentials not configured"
Verify
.envfile exists with correct variablesCheck environment variable names match exactly
"Token request failed: 401"
Verify Zoom app credentials are correct
Ensure app has
room:read:adminscopeConfirm app is Server-to-Server OAuth type
"No location matches found"
Check spelling of location query
Use
get_zoom_sitesto see available locationsTest with
resolve_locationto debug fuzzy matching
Import timing issues
Configuration modules imported inside tool functions
Never import config at module level before
initialize_config()
Debug Commands
Built with FastMCP and the Model Context Protocol.