从零搭建: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] --------------> |
三件事你必须做:
-
公网 VPS 搭中转代理 -
OAuth 授权码流程(User-Managed OAuth,别用 Server-To-Server) -
本地 Python 代理 自动刷新 Token 并转发 MCP 请求
第一步:VPS 安全组配置
阿里云安全组入方向要开两个端口:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
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,别选错了。
关键步骤:
-
Redirect URL 填: http://你的VPS公网IP:18794/callback -
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,核心逻辑:
-
启动时检查有没有缓存的 Token -
没有就生成 PKCE,发起 OAuth 授权 -
收到回调后,用 code + code_verifier 换 Token -
缓存 Token,自动刷新 -
收到 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 |
|
create_new_file_with_markdown |
|
get_meeting_assets |
|
Token 过期了怎么办?
User-Managed OAuth 的 refresh_token 有效期约 150天。如果 Token 过期:
-
删掉缓存文件: rm ~/.zoom-mcp-token.json -
重新运行脚本,会重新引导 OAuth 授权
搞定了?恭喜,你的 OpenClaw 现在可以直接调 Zoom 的工具了。
有问题欢迎留言交流 🐶
作者:申小豹 来源:申小豹的技术笔记
夜雨聆风