Skip to main content
Glama
peakmojo

Zoom Recordings No-Auth

by peakmojo

Zoom用MCPサーバー(認証なし) - Python & Node.js

Dockerハブ npmバージョン ライセンス: Apache 2.0

このプロジェクトは、エンドユーザーからの直接認証を必要とせずにZoom API機能にアクセスするためのモデル制御プロトコル(MCP)サーバーです。OAuthフローを処理し、Zoomの録画やトランスクリプトを操作するためのツールセットを提供します。

特徴

  • ツール引数による OAuth 資格情報管理 (ローカル認証フローなし)

  • ユーザーのクラウド録画をページ区切りで一覧表示する

  • 特定の会議の録画に関する詳細情報を取得する

  • 会議の議事録にアクセスする

Related MCP server: Zoom API MCP Server

インストール

  1. リポジトリをクローンします。

git clone https://github.com/peakmojo/mcp-server-zoom-noauth.git
cd mcp-server-zoom-noauth
  1. 必要な依存関係をインストールします。

pip install -r requirements.txt

ドッカー

Dockerイメージの構築

# Build the Docker image
docker build -t mcp-server-zoom-noauth .

クロスプラットフォームパブリッシング

複数のプラットフォーム用の Docker イメージを公開するには、docker buildx コマンドを使用します。

  1. 新しいビルダー インスタンスを作成します (まだ作成していない場合)。

docker buildx create --use
  1. 複数のプラットフォーム用のイメージをビルドしてプッシュします。

docker buildx build --platform linux/amd64,linux/arm64 -t buryhuang/mcp-server-zoom-noauth:latest --push .
  1. 指定されたプラットフォームでイメージが使用可能であることを確認します。

docker buildx imagetools inspect buryhuang/mcp-server-zoom-noauth:latest

使用法

サーバーの起動

python -m src.mcp_server_zoom_noauth.server

利用可能なツール

サーバーは次のツールを提供します。

  1. zoom_refresh_token - リフレッシュトークンを使用してOAuthトークンを更新する

  2. zoom_list_recordings - ユーザーのクラウド録画のリストを取得します

  3. zoom_get_recording_details - 特定の会議録画に関する詳細情報を取得します

  4. zoom_get_meeting_transcript - 特定の会議録画のトランスクリプトを取得する

ツールの使用例

トークンの更新

{
  "zoom_refresh_token": "your_refresh_token",
  "zoom_client_id": "your_client_id",
  "zoom_client_secret": "your_client_secret"
}

録音の一覧表示

{
  "zoom_access_token": "your_access_token",
  "from_date": "2023-01-01",
  "to_date": "2023-01-31",
  "page_size": 30,
  "page_number": 1
}

録音の詳細を取得する

{
  "zoom_access_token": "your_access_token",
  "meeting_id": "meeting_id_here"
}

会議の記録を取得する

{
  "zoom_access_token": "your_access_token",
  "meeting_id": "meeting_id_here"
}

OAuth 資格情報の処理

このサーバーは、その観点から完全に「noauth」になるように設計されています。

  • ローカル認証フローは不要

  • サーバーに資格情報は保存されません

  • すべての資格情報はツール引数を通じて渡されます

  • サーバーはヘッドレス環境で実行できます

ツールを使用するには、Zoom から OAuth 認証情報を取得する必要があります。

  1. ZoomマーケットプレイスでZoom OAuthアプリを作成する

  2. 録画アクセスに必要なスコープを設定する

  3. OAuthフローを通じてアクセストークンとリフレッシュトークンを取得する

  4. ツールを呼び出すときにこれらのトークンを引数として渡します

ズーム API リファレンス

このプロジェクトではZoom API v2を使用しています。詳細については、 Zoom APIドキュメントをご覧ください。

ライセンス

アパッチ 2.0

Available Tools

4 tools
zoom_get_meeting_transcriptC

Get transcript files and content from a specific Zoom meeting recording if available

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Zoom meeting ID to retrieve transcript for
zoom_access_tokenYesZoom OAuth2 access token

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions transcripts are only available 'if available', hinting at conditional output, but fails to describe key traits: authentication requirements (implied by 'zoom_access_token' but not explained), rate limits, error handling (e.g., if no transcript exists), or output format (e.g., file vs. text). For a tool with no annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Get transcript files and content') and includes a key constraint ('if available'). There is no wasted wording, and it effectively communicates the essential information in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving specific data with authentication), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'transcript files and content' entails (e.g., format, structure), how to handle missing transcripts, or any behavioral nuances. For a tool with these gaps in structured data, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('meeting_id', 'zoom_access_token') well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides (e.g., no details on meeting ID format or token scope). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to heavily.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get transcript files and content from a specific Zoom meeting recording if available'. It specifies the verb ('Get'), resource ('transcript files and content'), and target ('specific Zoom meeting recording'). However, it doesn't explicitly differentiate from sibling tools like 'zoom_get_recording_details' or 'zoom_list_recordings', which might also involve meeting data retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance. It mentions 'if available', implying transcripts might not exist, but offers no explicit when-to-use advice, prerequisites (e.g., requires a recorded meeting), or alternatives (e.g., use 'zoom_get_recording_details' for non-transcript details). Without clear context on when to choose this tool over siblings, the guidance is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zoom_get_recording_detailsC

Get detailed information about a specific Zoom meeting recording including recording files and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Zoom meeting ID to retrieve recording details for
zoom_access_tokenYesZoom OAuth2 access token

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions retrieving 'recording files and metadata' but doesn't specify what metadata is included, whether this is a read-only operation, if authentication is required beyond the token parameter, or any rate limits. This leaves significant gaps for a tool that likely accesses sensitive recording data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a simple retrieval tool, though it could potentially be more front-loaded with critical behavioral information given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that retrieves sensitive recording details with no annotations and no output schema, the description is inadequate. It doesn't explain what 'detailed information' includes, what format recording files are returned in, whether this requires specific permissions, or what happens if the meeting has no recordings. The combination of no annotations and no output schema creates significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain format requirements for meeting_id, clarify what 'detailed information' includes, or provide context about the zoom_access_token beyond OAuth2.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get detailed information') and resource ('specific Zoom meeting recording'), making the purpose unambiguous. It distinguishes from 'zoom_list_recordings' by specifying retrieval of details for a single recording rather than listing multiple. However, it doesn't explicitly differentiate from 'zoom_get_meeting_transcript' which might also retrieve meeting-related details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'zoom_list_recordings' or 'zoom_get_meeting_transcript'. It doesn't mention prerequisites such as needing a valid meeting ID with existing recordings or specify use cases where detailed metadata is required versus just a transcript.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zoom_list_recordingsB

List Zoom cloud recordings from a user's Zoom account with pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
from_dateNoStart date for Zoom recording search in 'YYYY-MM-DD' format
page_numberNoPage number of Zoom recordings to return (default: 1)
page_sizeNoNumber of Zoom recordings to return per page (default: 30, max: 300)
to_dateNoEnd date for Zoom recording search in 'YYYY-MM-DD' format
zoom_access_tokenYesZoom OAuth2 access token

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'pagination support' which is a useful behavioral trait, but fails to disclose critical aspects such as authentication requirements (though implied by the zoom_access_token parameter), rate limits, error handling, or what the output format looks like (e.g., list structure, fields included). For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('List Zoom cloud recordings') and includes key features ('from a user's Zoom account with pagination support'). There is zero waste—every word contributes to understanding the tool's function without redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks details on authentication (beyond the token parameter), output format, error cases, or usage constraints. While it mentions pagination, it doesn't describe how pagination works in practice (e.g., total pages, next token). For a tool that likely returns structured data, this leaves the agent with insufficient context to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself (e.g., date formats, defaults, max values). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain relationships between parameters (e.g., how from_date and to_date interact) or provide usage examples. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('Zoom cloud recordings') with the scope ('from a user's Zoom account') and mentions pagination support. It distinguishes from siblings like zoom_get_recording_details (which gets details of a specific recording) and zoom_get_meeting_transcript (which gets transcripts), but doesn't explicitly differentiate from zoom_refresh_token (which is unrelated). The purpose is specific but could be slightly more precise about what 'list' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving recordings with date filtering and pagination, but provides no explicit guidance on when to use this tool versus alternatives like zoom_get_recording_details for specific recordings or zoom_refresh_token for token management. It mentions pagination support, which hints at usage for large datasets, but lacks clear when/when-not scenarios or prerequisites beyond the implied need for a Zoom account.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zoom_refresh_tokenB

Refresh the Zoom OAuth2 access token using the refresh token and client credentials for API access

ParametersJSON Schema
NameRequiredDescriptionDefault
zoom_access_tokenNoZoom OAuth2 access token (optional if expired)
zoom_client_idYesZoom OAuth2 client ID for token refresh
zoom_client_secretYesZoom OAuth2 client secret for token refresh
zoom_refresh_tokenYesZoom OAuth2 refresh token

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool's action but lacks behavioral details such as whether this is a read-only or mutating operation (though 'Refresh' implies mutation), authentication requirements beyond parameters, rate limits, error conditions, or what the output looks like (no output schema). This is a significant gap for a security-sensitive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Refresh the Zoom OAuth2 access token') and includes essential context without waste. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of an OAuth2 token refresh operation, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., mutability, security implications), error handling, and output format, which are critical for an AI agent to use this tool correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value beyond the schema by mentioning the optional 'zoom_access_token' parameter context ('optional if expired'), but does not provide additional syntax, format, or usage details. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Refresh') and resource ('Zoom OAuth2 access token'), with explicit mention of the method ('using the refresh token and client credentials') and purpose ('for API access'). It distinguishes this authentication tool from its sibling tools (e.g., zoom_get_meeting_transcript) which are data retrieval operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (when the access token needs refreshing for API access) but does not explicitly state when to use this tool versus alternatives (e.g., initial token acquisition) or any prerequisites beyond the parameters. It mentions the optional 'zoom_access_token' parameter indirectly via 'optional if expired', but lacks clear when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedzoom_get_meeting_transcript
    • First observedzoom_get_recording_details
    • First observedzoom_list_recordings
    • First observedzoom_refresh_token

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: list_recordings for listing, get_recording_details for metadata, get_meeting_transcript for transcripts, and refresh_token for authentication. The descriptions reinforce these distinct roles, making tool selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a 'zoom_' prefix and descriptive verb_noun combinations (e.g., list_recordings, get_meeting_transcript). This predictability enhances readability and usability across the tool set.

Tool Count5/5

With 4 tools, this server is well-scoped for managing Zoom recordings, covering essential operations like listing, retrieving details, accessing transcripts, and handling authentication. Each tool earns its place without bloat or thinness for the domain.

Completeness4/5

The tool set provides strong coverage for core Zoom recording workflows, including listing, metadata retrieval, and transcript access, with authentication support. A minor gap exists in lacking update or delete operations for recordings, but this is not critical for typical read-only use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the Zoom API through natural language commands, auto-generated using AG2's MCP builder.
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP Server that enables interaction with Zoom's API through the Multi-Agent Conversation Protocol, allowing users to access and control Zoom's functionality via natural language commands.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the Zoom API through natural language, auto-generated using AG2's MCP builder.
    -