Zoom Transcript
About
Integrates with the Zoom API to retrieve, process, and analyze cloud recording transcripts, enabling meeting summarization and key information extraction.
Details
- Repository
- forayconsulting/zoom_transcript_mcp
- License
- MIT
Explore
- List Meetings: View all available Zoom meetings with recordings
- Download Transcripts: Download transcripts from specific meetings by ID or UUID
- Get Recent Transcripts: Automatically download transcripts from recent meetings
- Search Transcripts: Search across all downloaded transcripts for specific content
- Organized Storage: Transcripts are stored in a structured file system by month
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Zoom TranscriptCommand (node, npx, python, etc.)nodeArguments-
Argument 1
/path/to/zoom-transcripts-server/build/index.js
Environment-
ZOOM_CLIENT_ID
your_zoom_client_id -
TRANSCRIPTS_DIR
/path/to/transcripts/directory -
ZOOM_ACCOUNT_ID
your_zoom_account_id -
ZOOM_CLIENT_SECRET
your_zoom_client_secret
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
- Node.js (v16 or higher)
- Zoom Account with Cloud Recording enabled
- Zoom OAuth App credentials (Account ID, Client ID, Client Secret)
<use_mcp_tool>
<server_name>zoom-transcripts</server_name>
<tool_name>search_transcripts</tool_name>
<arguments>
{
"query": "project timeline"
}
</arguments>
</use_mcp_tool>
node build/index.js
list_meetings
Lists available Zoom meetings with recordings. Parameters: dateRange (object with from and to dates), participant (optional string)
download_transcript
Downloads a transcript for a specific meeting. Parameters: meetingId (string, Meeting ID or UUID)
get_recent_transcripts
Downloads transcripts from recent meetings. Parameters: count (integer, Number of recent meetings to fetch, default is 5)
search_transcripts
Searches across downloaded transcripts for specific content. Parameters: query (string), dateRange (optional object with from and to dates)
1. list_meetings
Lists available Zoom meetings with recordings.
{
"dateRange": {
"from": "2025-01-01",
"to": "2025-03-31"
},
"participant": "John Doe" // Optional
}
2. download_transcript
Downloads a transcript for a specific meeting.
{
"meetingId": "123456789" // Meeting ID or UUID
}
3. get_recent_transcripts
Downloads transcripts from recent meetings.
{
"count": 5 // Number of recent meetings to fetch (default: 5)
}
4. search_transcripts
Searches across downloaded transcripts for specific content.
{
"query": "AI discussion",
"dateRange": { // Optional
"from": "2025-01-01",
"to": "2025-03-31"
}
}
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"zoom transcript": {
"env": {
"ZOOM_CLIENT_ID": "your_zoom_client_id",
"TRANSCRIPTS_DIR": "/path/to/transcripts/directory",
"ZOOM_ACCOUNT_ID": "your_zoom_account_id",
"ZOOM_CLIENT_SECRET": "your_zoom_client_secret"
},
"args": [
"/path/to/zoom-transcripts-server/build/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"ZOOM_CLIENT_ID": "your_zoom_client_id",
"TRANSCRIPTS_DIR": "/path/to/transcripts/directory",
"ZOOM_ACCOUNT_ID": "your_zoom_account_id",
"ZOOM_CLIENT_SECRET": "your_zoom_client_secret"
},
"args": [
"/path/to/zoom-transcripts-server/build/index.js"
],
"command": "node"
}
Macos
{
"env": {
"ZOOM_CLIENT_ID": "your_zoom_client_id",
"TRANSCRIPTS_DIR": "/path/to/transcripts/directory",
"ZOOM_ACCOUNT_ID": "your_zoom_account_id",
"ZOOM_CLIENT_SECRET": "your_zoom_client_secret"
},
"args": [
"/path/to/zoom-transcripts-server/build/index.js"
],
"command": "node"
}
Windows
{
"env": {
"ZOOM_CLIENT_ID": "your_zoom_client_id",
"TRANSCRIPTS_DIR": "/path/to/transcripts/directory",
"ZOOM_ACCOUNT_ID": "your_zoom_account_id",
"ZOOM_CLIENT_SECRET": "your_zoom_client_secret"
},
"args": [
"/path/to/zoom-transcripts-server/build/index.js"
],
"command": "node"
}
An MCP (Model Context Protocol) server for interacting with Zoom Cloud Recording transcripts. This server allows you to list, download, search, and manage your Zoom meeting transcripts through a structured interface.
<a href="https://glama.ai/mcp/servers/b01uqjtp7w">
</a>
Features
- List Meetings: View all available Zoom meetings with recordings
- Download Transcripts: Download transcripts from specific meetings by ID or UUID
- Get Recent Transcripts: Automatically download transcripts from recent meetings
- Search Transcripts: Search across all downloaded transcripts for specific content
- Organized Storage: Transcripts are stored in a structured file system by month
Prerequisites
- Node.js (v16 or higher)
- Zoom Account with Cloud Recording enabled
- Zoom OAuth App credentials (Account ID, Client ID, Client Secret)
Installation
1. Clone this repository:
git clone https://github.com/yourusername/zoom_transcript_mcp.git
cd zoom_transcript_mcp
2. Install dependencies:
npm install
3. Build the project:
npm run build
Configuration
Create a .env file in the root directory with the following variables:
ZOOM_ACCOUNT_ID=your_zoom_account_id
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret
TRANSCRIPTS_DIR=/path/to/transcripts/directory # Optional, defaults to ./transcripts
Alternatively, you can configure the server through your MCP settings file:
{
"mcpServers": {
"zoom-transcripts": {
"command": "node",
"args": ["/path/to/zoom-transcripts-server/build/index.js"],
"env": {
"ZOOM_ACCOUNT_ID": "your_zoom_account_id",
"ZOOM_CLIENT_ID": "your_zoom_client_id",
"ZOOM_CLIENT_SECRET": "your_zoom_client_secret",
"TRANSCRIPTS_DIR": "/path/to/transcripts/directory" // Optional
}
}
}
}
Obtaining Zoom Credentials
1. Go to the Zoom App Marketplace and sign in
2. Click "Develop" > "Build App"
3. Choose "Server-to-Server OAuth" app type
4. Fill in the required information
5. Under "Scopes", add the following permissions:
- cloud_recording:read:list_account_recordings:admin
- cloud_recording:read:recording:admin
- cloud_recording:read:list_user_recordings:admin
6. Save and activate your app
7. Note your Account ID, Client ID, and Client Secret
Usage
Available Tools
1. list_meetings
Lists available Zoom meetings with recordings.
{
"dateRange": {
"from": "2025-01-01",
"to": "2025-03-31"
},
"participant": "John Doe" // Optional
}
2. download_transcript
Downloads a transcript for a specific meeting.
{
"meetingId": "123456789" // Meeting ID or UUID
}
3. get_recent_transcripts
Downloads transcripts from recent meetings.
{
"count": 5 // Number of recent meetings to fetch (default: 5)
}
4. search_transcripts
Searches across downloaded transcripts for specific content.
{
"query": "AI discussion",
"dateRange": { // Optional
"from": "2025-01-01",
"to": "2025-03-31"
}
}
Example Usage with Claude
<use_mcp_tool>
<server_name>zoom-transcripts</server_name>
<tool_name>search_transcripts</tool_name>
<arguments>
{
"query": "project timeline"
}
</arguments>
</use_mcp_tool>
Transcript Storage
Transcripts are stored in the following structure:
transcripts/
├── YYYY-MM/
│ ├── YYYY-MM-DD_HH-MM-SS_Meeting-Topic_MeetingID.vtt
│ └── metadata/
│ └── YYYY-MM-DD_HH-MM-SS_Meeting-Topic_MeetingID.json
Each transcript has a corresponding metadata JSON file containing:
- Meeting ID and UUID
- Topic
- Start time and duration
- Participants (extracted from the transcript)
- File path to the transcript
Development
Project Structure
zoom_transcript_mcp/
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
├── .gitignore
├── README.md
└── .env.example
Building
npm run build
Running Locally
node build/index.js
License
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



