通过 MCP 协议控制用户本地 Chrome 浏览器,完成 Outlook 邮件查看、按日期跳转、筛选等操作。
chrome://inspect/#devices⚠️ 每次重启 Chrome 后需要重新开启此开关。
编辑 ~/.openclaw/openclaw.json(Windows 下为 C:\Users\<用户名>\.openclaw\openclaw.json)。
只在已有 JSON 对象中新增 mcp 字段,绝对不要修改或删除文件中其他已有字段(如 plugins、gateway 等),否则 OpenClaw 将无法启动。
json
{
"(其他已有字段保持不变)": "...",
"mcp": {
"servers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--autoConnect"
]
}
}
}
}
⚠️ 严禁:
- 不能加
--channel=beta(会寻找 Chrome Beta 安装路径,必然失败)- 不能覆盖整个文件,只能新增
mcp字段- 修改前建议备份原文件
配置完成后在终端运行 openclaw gateway restart 重启网关使配置生效。
chrome-devtools__* 工具 vs browser 工具#两套工具都可以控制 Chrome, 优先按以下顺序尝试:
chrome-devtools__list_pages 确认连接状态"Could not find DevToolsActivePort" → 用户未开启调试,引导用户开启"The browser is already running..." 错误 → 切换到 browser 工具,不要继续尝试 chrome-devtools__*text
chrome-devtools__list_pages 失败(already running 错误)
→ 改用 browser(action="tabs") 列出标签页
→ 改用 browser(action="navigate", targetId=...) 导航
→ 改用 browser(action="snapshot") 读取页面
→ 改用 browser(action="act", request={kind:"click", ref:...}) 点击
不要在同一次任务中反复切换工具,确定哪套有效后全程使用那套。
工具用途chrome-devtools__list_pages列出所有标签页,返回 pageId 和 URLchrome-devtools__select_page(pageId)切换到指定标签页chrome-devtools__navigate_page(type, url)在当前标签页导航到 URLchrome-devtools__take_snapshot()获取页面 a11y 树,返回所有元素及 uidchrome-devtools__click(uid)点击指定 uid 元素chrome-devtools__fill(uid, value)向输入框填入文本chrome-devtools__wait_for(text)等待页面出现指定文本
工具调用用途browser(action="tabs")列出所有标签页,返回 targetId 和 URLbrowser(action="navigate", targetId=..., url=...)在指定标签页内导航browser(action="snapshot", targetId=...)获取页面 a11y 树,返回 ref 供点击browser(action="act", request={kind:"click", ref:...}, targetId=...)点击页面元素(用 ref 而非 uid)browser(action="act", request={kind:"fill", ref:..., text:...}, targetId=...)填写输入框browser(action="act", request={kind:"press", key:"Escape"}, targetId=...)按键操作
text
browser(action="tabs")
→ 查找 URL 含 "outlook.cloud.microsoft" 或 "outlook.office.com" 的标签页
→ 记录其 targetId
若不存在已登录标签:
text
browser(action="open", url="https://outlook.cloud.microsoft/mail/")
→ 提示用户手动登录,完成后告知 AI 继续
text
browser(action="navigate", targetId=<已登录标签的targetId>, url="https://outlook.cloud.microsoft/mail/inbox")
browser(action="snapshot", targetId=...)
→ 读取邮件列表(按日期分组:本周/上周/上个月/各月)
Outlook 邮件列表工具栏有一个 "跳转到"按钮,点击后弹出日期选择菜单。
正确操作流程:
text
1. snapshot → 在邮件列表工具栏找到 button "跳转到"(ref 或 uid)
位置:邮件列表顶部,"选择"按钮右侧,"筛选器"按钮左侧
2. 点击"跳转到"按钮
browser(action="act", request={kind:"click", ref:"跳转到按钮的ref"})
3. 弹出菜单包含:
- menuitemradio "今天"
- menuitemradio "昨天"
- menuitemradio "上周"
- menuitemradio "上个月"
- menuitemradio "去年"
- combobox(日期输入框,默认值为今天日期,格式 YYYY/M/D)
- button "转到 YYYY/M/D"(确认跳转按钮)
4a. 快捷选项:直接点击对应 menuitemradio
例如查看去年:点击 menuitemradio "去年"
4b. 指定日期:
→ fill combobox,输入目标日期(格式:YYYY/M/D,例如 "2025/1/1")
→ 点击 button "转到 YYYY/M/D"(开始)
5. 邮件列表自动跳转到对应日期位置
snapshot → 读取该时间段的邮件
⚠️ 注意事项:
- 日期格式必须是
YYYY/M/D(斜杠分隔,月日不补零)- 按 Escape 可关闭菜单
- 跳转后邮件列表仍按日期分组,需继续向上/下滚动加载更多
text
snapshot → 找到目标邮件的 option 元素(包含发件人、主题、预览)
→ 点击该邮件
→ snapshot → 读取右侧阅读窗格的正文内容
text
snapshot → 找到搜索框 combobox "搜索电子邮件、会议、文件等。"
→ fill 搜索框,输入关键词(发件人名/主题/日期关键词)
→ 等待搜索结果出现
→ snapshot → 读取结果列表
错误做法正确做法用 chrome-devtools__* 遇到 "already running" 后继续重试立即切换到 browser 工具导航到 outlook.live.com(会跳转到产品宣传页)使用 outlook.cloud.microsoft/mail/试图直接操作日历弹窗 UI(交互复杂)使用"跳转到"按钮的菜单选项或日期输入框在日期输入框输入 2025-01-01使用 2025/1/1 格式跳转日期后只读一屏内容继续 snapshot + 滚动加载更多邮件没有找到 Outlook 标签就直接 open 新页面先用 tabs 检查是否已有登录标签
问题原因解决方法Could not find DevToolsActivePortChrome 未开启调试在 chrome://inspect 重新开启远程调试The browser is already running...chrome-devtools MCP 冲突切换到 browser 工具Could not find Chrome Beta executableMCP 含 --channel=beta去掉该参数,重启网关Outlook 跳转到产品宣传页URL 错误或未登录用 tabs 找 outlook.cloud.microsoft 标签并 navigate页面内容为空页面尚未加载完成等待 2-3 秒后再 snapshot点击"跳转到"后菜单未出现snapshot 可能过时重新 snapshot 确认 ref