)
1. 先搞清楚 BrowserCat MCP 到底在解决什么问题浏览器自动化这件事很多人第一反应是 Puppeteer 或 Playwright。写脚本本身不难难的是维护页面结构一改选择器全废要抓十个站就得写十套逻辑运营同学想临时取个数还得排队等开发。Claude Code BrowserCat MCP 这套组合的价值就是把「写脚本」换成「说需求」让模型负责理解任务和编排步骤BrowserCat 负责把点击、填表、截图这些动作精确落到浏览器里。BrowserCat MCP 是一个封装了浏览器交互能力的 MCP Server通过npx browsercatco/mcp-server启动对外暴露browsercat_navigate、browsercat_click、browsercat_fill、browsercat_select、browsercat_hover、browsercat_screenshot、browsercat_evaluate等一组工具。Claude Code 作为 MCP Client读到这些工具描述后就能根据你的自然语言指令决定先访问哪个 URL、再填哪个输入框、最后截哪张图。适合谁三类人最明显一是需要频繁做页面回归测试的前端二是要定期抓取公开数据做报表的运营/产品三是想快速验证某个交互流程是否可自动化的独立开发者。但这里有个容易被忽略的环节MCP Server 本身要调用远端浏览器服务鉴权和 endpoint 是绕不开的。传统做法是去各家 MCP 广场单独注册、绑卡、拿 Key一个项目一套凭证换环境就得重新配。这篇要演示的是把这些统一收敛到 TaoToken 的 Key/API 通道上——你只需要维护一份 Base URL 和一把 KeyMCP 配置里注入同一套凭证抓取和表单操作都能跑通。下面从环境准备到三步验证一步步拆。需要先说明一点BrowserCat MCP 的浏览器执行能力仍然由它自己的服务提供TaoToken 在这里承担的是统一模型调用入口与 Key 管理角色让 Claude Code 的模型请求走同一条通道避免多套凭证散落在不同配置文件里。理解这个边界后面配置时就不会混淆哪个变量该填什么。2. TaoToken 前置准备一把 Key 打通模型调用通道在动 MCP 配置之前先把模型侧的通道理顺。Claude Code 运行时需要向模型服务发请求默认它指向官方端点我们要做的是把 endpoint 和鉴权改到 TaoToken 的统一通道这样后续 MCP 里注入的 Key 和模型调用用的是同一套凭证体系排障时只需要盯一个地方。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册账号。注册流程不复杂邮箱验证后进入控制台即可。这里不展开注册细节重点说 Key 怎么拿、放哪里。第二步进控制台创建 API Key。地址是 https://taotoken.net/console 登录后在 API Keys 页面点新建起个能认出来的名字比如claude-code-browsercat方便以后区分是哪个项目在用。创建完立刻复制保存——多数平台只在创建时展示一次完整 Key关掉页面就看不到了。我一般会把它存进本地密码管理器而不是直接贴在笔记里。第三步确认 API Base URL。TaoToken 的 API 入口是 https://taotoken.net/api 注意这个地址不带任何查询参数配置时原样填入即可。Claude Code 侧通常通过环境变量注入形如export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥如果你用的是 Claude Code 的 settings 配置文件也可以写进~/.claude/settings.json结构大致如下路径按你本机实际位置调整{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥 } }这里有个细节值得强调ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY在不同版本里行为略有差异前者一般作为 Bearer 令牌使用后者走 x-api-key 头。实测下来走统一通道时用ANTHROPIC_AUTH_TOKEN更稳遇到 401 时优先检查这个变量有没有被 shell 里旧的 export 覆盖。可以用echo $ANTHROPIC_AUTH_TOKEN确认当前生效值注意别在共享终端里直接打印完整 Key。第四步验证模型通道是否通。最轻量的办法是起一个 Claude Code 会话随便问一句让它回个短句。如果返回正常说明 Base URL 和 Key 都生效了如果报鉴权错误回到控制台确认 Key 状态是否启用、额度是否充足。这一步不要跳过因为后面 MCP 排障时你得能区分是模型通道的问题还是浏览器服务的问题。关于长期编码场景如果你打算把 Claude Code 当作日常主力可以了解下 Coding Plan 的额度方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它和按量调用是两条路径按自己的使用频率选就行不必一上来就上大套餐。3. 可复制配置mcp.json 与 Key 注入的完整写法这一节是全文的核心配置片段可以直接抄但路径和变量名要按你本机情况改。Claude Code 加载 MCP Server 有两种常见方式一是项目级的.mcp.json二是用claude mcp add-json命令动态注册。前者适合团队共享配置模板Key 用环境变量占位后者适合本机快速试。先看项目级配置文件。在项目根目录建.mcp.json内容如下{ mcpServers: { browsercat: { command: npx, args: [-y, browsercatco/mcp-server], env: { BROWSERCAT_API_KEY: ${BROWSERCAT_API_KEY}, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: ${TAOTOKEN_API_KEY} } } } }几个关键点逐个说。command用npx是为了免全局安装-y表示自动确认包下载第一次运行会拉取browsercatco/mcp-server网络慢的话耐心等几十秒。env里同时放了两类变量BROWSERCAT_API_KEY是 BrowserCat 服务侧的凭证ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN是模型通道的凭证。用${VAR}占位而不是写死明文是为了让配置文件能进版本库而不泄露密钥——真实值放在 shell 环境或本地.env里。Key 注入方式推荐用 shell 环境变量在~/.bashrc或~/.zshrc里加export BROWSERCAT_API_KEYbc-你的BrowserCat密钥 export TAOTOKEN_API_KEYsk-你的TaoToken密钥改完执行source ~/.zshrc按你的 shell 选让变量生效。注意变量名要和.mcp.json里的占位符严格一致大小写错了不会报错只会静默变成空字符串这是后面 401 的常见来源之一。如果你不想建文件用命令行注册也行claude mcp add-json browsercat { command: npx, args: [-y, browsercatco/mcp-server], env: { BROWSERCAT_API_KEY: $BROWSERCAT_API_KEY, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: $TAOTOKEN_API_KEY } }这段 shell 拼接看起来有点绕原理是把环境变量在命令执行时展开进 JSON 字符串。如果你用的是 Windows PowerShell引号规则不同建议还是走.mcp.json文件方式省得和转义较劲。配置写完后用claude mcp list查看已注册的 Server确认browsercat在列表里且状态正常。如果显示连接失败先单独跑一次npx -y browsercatco/mcp-server看进程能不能起来能起来说明包没问题问题在 env 注入起不来多半是 Node 版本或网络拉包问题。还有一个容易踩的坑Claude Code 的 MCP 配置作用域分 user、project、local 三级.mcp.json属于 project 级只在当前项目目录下生效。你在 A 目录配好切到 B 目录发现工具不见了不是配置丢了是作用域不对。要么在目标目录也放一份要么用--scope user注册成全局。4. 三步验证连通性、单页抓取、多步流程回放配置完不能直接上复杂任务按三步走每步都有明确的成功判据出问题也好定位。第一步连通性验证。启动 Claude Code 会话输入一句让它列出可用工具的话比如「列出你当前可用的 browsercat 相关工具」。预期结果是模型返回一组工具名包含browsercat_navigate、browsercat_click、browsercat_fill、browsercat_screenshot等。如果模型说没有相关工具说明 MCP Server 没加载成功回到上一节检查claude mcp list和 env 注入。这一步只验证「工具可见」不触发真实浏览器操作是最便宜的排障点。第二步单页抓取。让 Claude 执行一个最小任务「用 browsercat_navigate 打开 https://example.com 然后用 browsercat_screenshot 截一张图最后告诉我页面标题」。预期过程是模型先调 navigate再调 screenshot返回截图保存路径和标题文本。成功判据有三个navigate 返回状态正常、screenshot 产出文件、标题内容与页面一致。这一步能跑通说明 BrowserCat 服务侧鉴权、网络出口、截图落盘都正常。如果卡在这一步先看报错类型。返回 401 基本是BROWSERCAT_API_KEY无效或没注入返回超时多半是出口网络问题截图成功但标题为空可能是页面还没加载完就取了 DOM让模型在 navigate 后加一个短暂等待再 evaluate 即可。第三步多步流程回放。找一个有输入框和按钮的公开页面让 Claude 走完整链路「打开某搜索页在搜索框填入关键词点击搜索按钮等待结果加载截图并提取前三条结果标题」。这一步考验的是模型对工具调用顺序的编排能力。实测下来模型一般会按 navigate → fill → click → screenshot → evaluate 的顺序走但偶尔会在 click 后立刻 evaluate 导致拿到旧 DOM这时在指令里明确「点击后等待两秒再提取」就能稳定复现。三步都通过后你可以把常用流程固化成提示词模板比如「抓取某站今日头条列表并截图存档」下次直接复用。需要提醒的是自动化操作要遵守目标站点的 robots 协议和使用条款别拿去做高频请求或绕过访问控制这类场景不在本文讨论范围内。5. 常见报错排查401、local proxy failed 与 reading choices配置和验证过程中有几类报错反复出现逐个对照处理能省不少时间。401 Unauthorized。这是最高频的。分两种来源模型通道的 401 和 BrowserCat 服务侧的 401。区分方法是看报错上下文——如果错误发生在模型回复阶段且提示和ANTHROPIC_AUTH_TOKEN相关那是 TaoToken Key 问题如果错误发生在工具调用返回里提到BROWSERCAT_API_KEY那是 BrowserCat 凭证问题。前者检查 Key 是否启用、Base URL 是否误写成带路径的形式应为https://taotoken.net/api不要多加/v1后者检查 Key 是否复制完整、有没有多余空格。还有一种隐蔽情况shell 里同时存在旧的ANTHROPIC_API_KEY和新的ANTHROPIC_AUTH_TOKEN客户端优先用了旧的导致鉴权失败unset ANTHROPIC_API_KEY后再试。local proxy failed。这个报错通常出现在 MCP Server 启动阶段含义是本地拉起子进程或连接本地端口失败。常见原因有三个Node 版本过低建议 18 以上、npx缓存损坏、以及本机安全软件拦截了子进程网络访问。处理顺序是先node -v确认版本再npx clear-npx-cache清缓存重试最后检查安全软件日志。如果报错里带具体端口号用lsof -i :端口看是否被占用。reading choices 相关报错。这类错误一般出现在模型返回结构解析阶段提示读取choices字段失败。它往往不是 MCP 本身的问题而是模型通道返回了非预期格式——比如 Base URL 配错指向了一个不兼容的端点或者请求被中间层改写。排查时先用 curl 直接打一次模型接口看返回 JSON 结构是否符合预期curl -s https://taotoken.net/api/v1/messages \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:32,messages:[{role:user,content:hi}]}返回里如果有正常的 content 数组说明通道没问题问题在客户端解析如果返回错误结构按错误信息调整 Base URL 或模型 ID。注意模型 ID 要填当前通道支持的名称填错也会触发类似解析异常。OAuth 相关报错。Claude Code 某些版本会走 OAuth 流程做设备授权如果你已经用 API Key 方式配置却仍被引导去 OAuth通常是配置文件优先级冲突。检查~/.claude/settings.json和项目级配置是否同时存在鉴权字段保留一套即可。另外走统一 Key 通道时不需要额外 OAuth 授权遇到强制跳转说明当前会话读到了旧的凭证配置清掉重开终端。工具调用超时。BrowserCat 操作真实浏览器页面重、网络慢时容易超时。缓解办法是在指令里拆细步骤别让模型一次做太多动作必要时在 navigate 和 click 之间显式要求等待。超时不是配置错误是任务粒度过大拆开就好。6. 把通道固定下来后续接入与排障的入口跑通三步验证之后建议把配置固化成一个可复用的项目模板.mcp.json进版本库用占位符Key 放本地环境变量README 里写清楚需要 export 哪两个变量。这样换机器或换同事接手照着 README 走一遍就能复现不用重新摸索。模型通道这边日常排障最常用的两个入口是 API Keys 管理页 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 和接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。前者用来轮换或停用 Key后者查 Base URL、请求头和模型 ID 的准确写法遇到 401 或格式类报错先翻文档比瞎试快。想单独验证某个模型是否可用可以用模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条短消息确认通道活着再回到 Claude Code 里排查 MCP 层。如果你主要用 Claude Code 做长期编码和 Agent 编排Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里有额度说明按使用强度选就行。BrowserCat MCP 的浏览器执行能力仍由它自己的服务提供TaoToken 在这里的角色是统一模型调用入口和 Key 管理两者边界清楚排障时按「模型通道」和「浏览器服务」两条线分别查效率最高。最后留一个实操建议把三步验证写成一段固定提示词存在项目里每次改完配置先跑一遍比直接上复杂任务省心。配置这东西能一次跑通靠的是把变量收敛到一处而不是记住更多命令。