乐于分享
好东西不私藏

从零搭建:OpenClaw 连接 Zoom MCP 完整踩坑攻略

从零搭建:OpenClaw 连接 Zoom MCP 完整踩坑攻略

你的 AI 助手已经在用 OpenClaw 了?

那恭喜你,效率提升一大截。但你可能还不知道 —— OpenClaw 可以直接调 Zoom 的各种工具:搜会议、查文档、管白板,一个 MCP 协议全搞定。

问题是,Zoom 的认证比较刁钻。OAuth 2.1 + PKCE,Token 有时效,还不允许回调到 localhost。

我踩了整整两天的坑,终于搞定了。写篇文章,把正确路径说清楚,省得你再绕一遍。


先搞清楚整体架构

整个链路是这样的:

[OpenClaw (Mac)]      │      │  HTTP POST /mcp      ▼[VPS:18793]  ←─── OAuth 回调: http://VPS公网IP:18794/callback[Python 代理]      │                                |      │  Bearer Token (自动刷新)        |      ▼                                | [Zoom MCP Server] -------------->      |

三件事你必须做:

  1. 公网 VPS 搭中转代理
  2. OAuth 授权码流程(User-Managed OAuth,别用 Server-To-Server)
  3. 本地 Python 代理 自动刷新 Token 并转发 MCP 请求

第一步:VPS 安全组配置

阿里云安全组入方向要开两个端口:

端口范围
协议
来源
18793/18793
TCP
0.0.0.0/0
18794/18794
TCP
0.0.0.0/0

VPS 防火墙也要配:

sudo iptables -I INPUT -p tcp --dport 18793 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 18794 -j ACCEPT# 确认规则sudo iptables -L INPUT -n | grep 187

第二步:创建 Zoom App

到 Zoom Marketplace 创建 User-Managed OAuth App,别选错了。

关键步骤:

  1. Redirect URL 填:http://你的VPS公网IP:18794/callback
  2. Scopes 至少勾选这些: 
    • meeting:read:list_meetings
    • meeting:read:search
    • cloud_recording:read:list_user_recordings
    • docs:write:import
    • ai_companion:read:search

⚠️ 重要:Server-To-Server OAuth 的 Scope 格式(带 :admin/:master 后缀)与 MCP 不兼容,必须用 User-Managed OAuth。这是第一个大坑。


第三步:编写 VPS 上的 MCP 代理脚本

在 VPS 创建 zoom-mcp-proxy-vps.py,核心逻辑:

  1. 启动时检查有没有缓存的 Token
  2. 没有就生成 PKCE,发起 OAuth 授权
  3. 收到回调后,用 code + code_verifier 换 Token
  4. 缓存 Token,自动刷新
  5. 收到 MCP 请求,转发到 Zoom MCP Server
脚本下载地址:https://github.com/mebusw/zoom-mcp-proxy-vps

第四步:部署到 VPS

上传脚本:

scp ~/.openclaw/scripts/zoom-mcp-proxy-vps.py root@你的VPS IP:/root/

首次运行会打印授权 URL,复制到浏览器完成 Zoom 授权后,Token 自动保存。

然后配置 Systemd 服务让它持久运行:

[Unit]Description=Zoom MCP ProxyAfter=network.target[Service]ExecStart=/usr/bin/python3 /root/zoom-mcp-proxy-vps.pyRestart=alwaysUser=root[Install]WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reloadsudo systemctl enable zoom-mcp-proxysudo systemctl start zoom-mcp-proxy

第五步:配置 OpenClaw

修改 ~/.openclaw/openclaw.json

"mcp": {"servers": {"zoom-workspace": {"url""http://你的公网IP:18793/mcp"      }    }  }

然后重启:

openclaw gateway restart

验证连接:

openclaw mcp list

然后你就可以指挥龙虾来查看或管理你的zoom会议了!

我踩过的坑

❌ 坑1:Server-To-Server OAuth Token 不好使

所有工具都返回:

Invalid access token, does not contain scopes:[meeting:read:search]

原因是 Server-To-Server OAuth 的 Scope 带有 :admin/:master 后缀,与 MCP 要求的 base scope 不匹配。

解决:改用 User-Managed OAuth。

❌ 坑2:OAuth 回调不能用 localhost

本地跑脚本,http://localhost:18794/callback 无法从公网访问。

解决:部署到 VPS,回调地址填公网 IP。

❌ 坑3:VPS 端口通了但连接超时

安全组开了端口,iptables 里却看不到规则。CentOS 7 默认不跑 firewalld,要手动配 iptables。

❌ 坑4:curl 被代理劫持

Mac 上 curl 请求走了代理(ClashX),返回 502。

解决:临时取消代理:

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

可用工具一览

工具名
功能
search_zoom
全局搜索(聊天 + 文档)
search_meetings
搜索会议
recordings_list
列出云录像
get_file_content
读取 Zoom Docs 内容
create_new_file_with_markdown
从 Markdown 创建 Zoom Doc
get_meeting_assets
获取会议资源

Token 过期了怎么办?

User-Managed OAuth 的 refresh_token 有效期约 150天。如果 Token 过期:

  1. 删掉缓存文件:rm ~/.zoom-mcp-token.json
  2. 重新运行脚本,会重新引导 OAuth 授权

搞定了?恭喜,你的 OpenClaw 现在可以直接调 Zoom 的工具了。

有问题欢迎留言交流 🐶


作者:申小豹 来源:申小豹的技术笔记