Zoom MCP Connector for Claude

This is more related to the new MCP connector that has been released but I’m not sure where this ticket should be logged.

Basically, the MCP connector is unable to download vtt/txt files for meetings that DO have VTTs in the zoom portal. This is trivially easy via the api but is not possible via MCP despite the MCP being promoted as a tool that can download meeting resources etc.
```
GET https://api.zoom.us/v2/meetings/{meetingUuid}/transcript # returns metadata including the download_url
GET {download_url} — # the URL from above, fetches the actual VTT file content
```

Is there any way this can be added? For us this is a major missing feature and, after having waited a long time for Zoom to implement an MCP connector, we’ve had to build our own. But it would be nice if the official one did this so that we don’t have to implement auth and MCP infra ourselves.

Thanks.

@Luke7 this should be working. There might be additional settings within zoom.us which you need to turn on. needs to allow users/host to retain the transcript. I also enabled the setting for “Allow users to retain transcripts generated by meeting summary for use by other AI Companion services”

Here are more details on the app

Hi Chun, thanks for looking into this. I think the issue may well be a permissions / config issue but I’m now wondering if this is actually a limitation of the MCP server.

Apologies, I don’t find the documentation very clear - there are lots of settings and some of the settings you listed above are not visible to me. Not sure if that is user config or jurisdictional thing?

Anyway, an example from today…

Background

I have a meeting which was not recorded - this is standard practice for us - but does have a VTT (.txt file) available in the zoom.us portal. I can download this vtt via the zoom website.

However, when I try to use the MCP connector to get hold of this VTT, I see the following response..

Please find this zoom meeting from yesterday

's Zoom Meeting

Time: 9:25 AM – 9:30 AM UTC

Host:

Duration: ~5 minutes

Has AI summary: Yes

Perfect, please get the vtt transcript of that meeting.

The search results showed has_recording: false for that meeting, which means there’s no cloud recording — and without a recording, there won’t be a VTT transcript file either.

The meeting was only about 5 minutes long (9:25–9:30 AM), which may be why it wasn’t recorded. However, it did show has_summary: true, so there is an AI-generated summary available.

For the record, I can reliably download the VTT via the Zoom API so the API does support this. I’m just not sure why the MCP is gated by the has_recording flag.

Thanks.

@Luke7 let me feedback to the team on this, thanks for flagging this up

Hey @chunsiong — Following up on Luke7’s report from Apr 10/13. We’re seeing the same issue two+ weeks later: meetings with AI-generated summaries and available transcripts are blocked by the has_recording: false gate in the MCP connector.

Like Luke, we can access these transcripts via the Zoom web portal and the Zoom API directly. The constraint appears to be MCP-specific, not a platform limitation.

Can you provide an update on the team’s feedback? Is this a known limitation, or is there a timeline for a fix?

Context: We’re piloting the MCP for Claude integration across our organization and this is blocking wider adoption — we have 50+ meetings/month and can’t reasonably cloud-record all of them just to enable Claude access.

Thanks.

+1 — hitting this and a couple of related issues with the Zoom for Claude connector. Adding repro details in case it helps the team scope the fix.

Environment

  • Zoom for Claude connector, accessed via Claude Code MCP namespace mcp__claude_ai_Zoom_for_Claude__*
  • Commercial Zoom (not Gov), AI Companion enabled, no cloud recording
  • Meetings are AI-Companion-transcribed (transcripts visible in Zoom Workplace Hub → My notes → Transcript widget)

Symptom 1 — get_file_content returns empty for every My Notes doc

search_zoom with entity_type: "zoom_doc" and doc_view: "notes" returns a populated list of My Notes docs with valid file_id values, plausible create_time / modify_time deltas (~20–45 min between create and last modify, consistent with meeting duration), and working docs.zoom.us/doc/<file_id> links. The Zoom Workplace UI shows full content (note body and Transcript widget) for these docs.

But get_file_content returns {"file_content": "\n", "file_name": "..."} for every one of them. Tested across multiple notes from today and from earlier in the week — same result.

The tool description states “This tool works for both Docs and My Notes,” so this looks like a real bug, not an unsupported capability. Likely cause: the connector is hitting a synchronous content endpoint without going through the export job flow (POST /docs/files/{fileId}/export → poll /docs/exports/{exportId}/statusGET /docs/files/{fileId}/content), which appears to be required for note-shaped Workplace content.

Symptom 2 — search_meetings returns empty even when meetings exist

search_meetings(from=<this week start>, to=<today>) → {"meetings": [], "page_size": 30, "has_more": false}
search_meetings(no filters, page_size=30) → {"meetings": [], "has_more": false}
search_meetings(from=today, to=today+1, include_zoom_my_notes=true) → {"meetings": []}

Same account, same time window, search_zoom(zoom_doc, doc_view: notes) returns 10+ meeting note docs from today alone. So the meetings clearly exist; search_meetings just isn’t seeing them. This blocks get_meeting_assets and get_recording_resource because both need a meeting UUID and there’s no other way to enumerate them through the connector.

Symptom 3 — chat search empty

search_zoom(entity_type: chat, page_size: 5) → {"data": []}

Probably out of scope for this thread, but listing for completeness.

What does work

  • search_zoom with entity_type: "zoom_doc" (any doc_view)
  • recordings_list (returns empty, but plausibly genuine — no cloud recording on this account)

Net effect

The “hand the assistant my Zoom transcripts and let it summarize / answer questions” flow that’s the obvious value prop of this connector is currently impossible end-to-end on an AI-Companion-only account: there’s no path from “what meetings did I have” → “give me the transcript text.” Each broken link has a separate symptom but they compound.

Happy to share specific tool-call payloads privately if useful.