zoom_get_recording_details
Retrieve detailed metadata and file information for a specific Zoom meeting recording using a meeting ID and access token, simplifying recording management and access.
Instructions
Get detailed information about a specific Zoom meeting recording including recording files and metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | The Zoom meeting ID to retrieve recording details for | |
| zoom_access_token | Yes | Zoom OAuth2 access token |
Implementation Reference
- Core handler function in ZoomClient class that retrieves detailed recording information for a specific Zoom meeting using the API endpoint /meetings/{meeting_id}/recordings. Handles token refresh and datetime conversion.def get_recording_details(self, meeting_id: str) -> str: """Get detailed information about a specific meeting recording Args: meeting_id: The Zoom meeting ID to get recordings for Returns: JSON string with recording details """ try: # Define the operation def _operation(): logger.debug(f"Fetching recording details for meeting_id={meeting_id}") # Get recording information for meeting response = requests.get( f"{self.base_url}/meetings/{meeting_id}/recordings", headers=self._get_headers() ) if response.status_code != 200: return json.dumps({ "error": f"Failed to retrieve recording details. Status code: {response.status_code}", "details": response.text, "status": "error" }) recording_details = response.json() # Process and return recording details return json.dumps(convert_datetime_fields(recording_details)) # Execute the operation with token refresh handling return self._handle_token_refresh(_operation) except Exception as e: logger.error(f"Exception in get_recording_details: {str(e)}", exc_info=True) return json.dumps({"error": str(e)})
- Input schema definition for the zoom_get_recording_details tool, specifying required parameters zoom_access_token and meeting_id.types.Tool( name="zoom_get_recording_details", description="Get detailed information about a specific Zoom meeting recording including recording files and metadata", inputSchema={ "type": "object", "properties": { "zoom_access_token": {"type": "string", "description": "Zoom OAuth2 access token"}, "meeting_id": {"type": "string", "description": "The Zoom meeting ID to retrieve recording details for"} }, "required": ["zoom_access_token", "meeting_id"] }, ),
- src/mcp_server_zoom_noauth/server.py:523-535 (registration)Dispatch logic in the main @server.call_tool() handler that routes calls to zoom_get_recording_details, extracts arguments, initializes ZoomClient, and invokes the core handler method.elif name == "zoom_get_recording_details": # Initialize Zoom client with just access token zoom = ZoomClient( access_token=access_token ) meeting_id = arguments.get("meeting_id") if not meeting_id: raise ValueError("meeting_id is required") results = zoom.get_recording_details(meeting_id=meeting_id) return [types.TextContent(type="text", text=results)]
- server.js:196-223 (handler)JavaScript implementation of the core getRecordingDetails method in ZoomClient class, fetching recording details via Zoom API.async getRecordingDetails(meeting_id) { try { logger.debug(`Fetching recording details for meeting_id=${meeting_id}`); const response = await axios.get( `${this.baseUrl}/meetings/${meeting_id}/recordings`, { headers: this._getHeaders() } ); if (response.status !== 200) { return JSON.stringify({ error: `Failed to retrieve recording details. Status code: ${response.status}`, details: response.data, status: "error" }); } return JSON.stringify(response.data); } catch (error) { logger.error(`Exception in getRecordingDetails: ${error.message}`); if (error.response?.status === 401) { return JSON.stringify({ error: "Unauthorized. Token might be expired. Please refresh your token.", status: "error" }); } return JSON.stringify({ error: error.message }); }
- server.js:358-377 (registration)JavaScript server.tool registration, schema with Zod, and inline handler dispatcher for zoom_get_recording_details.server.tool( 'zoom_get_recording_details', 'Get detailed information about a specific Zoom meeting recording including recording files and metadata', { zoom_access_token: z.string().describe('Zoom OAuth2 access token'), meeting_id: z.string().describe('The Zoom meeting ID to retrieve recording details for') }, async ({ zoom_access_token, meeting_id }) => { try { const zoom = new ZoomClient({ accessToken: zoom_access_token }); const result = await zoom.getRecordingDetails(meeting_id); return { content: [{ type: 'text', text: result }] }; } catch (error) { return { content: [{ type: 'text', text: `Error: ${error.message}` }] }; } }