Zoom Transcript
STDIOMCP server for interacting with Zoom Cloud Recording transcripts.
MCP server for interacting with Zoom Cloud Recording transcripts.
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.
Clone this repository:
git clone https://github.com/yourusername/zoom_transcript_mcp.git cd zoom_transcript_mcp
Install dependencies:
npm install
Build the project:
npm run build
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 } } } }
cloud_recording:read:list_account_recordings:admin
cloud_recording:read:recording:admin
cloud_recording:read:list_user_recordings:admin
Lists available Zoom meetings with recordings.
{ "dateRange": { "from": "2025-01-01", "to": "2025-03-31" }, "participant": "John Doe" // Optional }
Downloads a transcript for a specific meeting.
{ "meetingId": "123456789" // Meeting ID or UUID }
Downloads transcripts from recent meetings.
{ "count": 5 // Number of recent meetings to fetch (default: 5) }
Searches across downloaded transcripts for specific content.
{ "query": "AI discussion", "dateRange": { // Optional "from": "2025-01-01", "to": "2025-03-31" } }
<use_mcp_tool>
<server_name>zoom-transcripts</server_name>
<tool_name>search_transcripts</tool_name>
<arguments>
{
"query": "project timeline"
}
</arguments>
</use_mcp_tool>
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:
zoom_transcript_mcp/
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
├── .gitignore
├── README.md
└── .env.example
npm run build
node build/index.js
MIT