1. Google Home MCP 落地到 Open Claw 后,先解决模型供应商而不是先点灯
最近 Google Home 开放 MCP 接入,第三方智能体可以通过统一协议访问设备状态和事件记录;Open Claw 这类支持 MCP 的工具,也能把自然语言指令转成对 Google Home 设备的操作。接入前,先在 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_intro 获取 Key,再把 Open Claw 的模型 Base URL 设为 https://taotoken.net/api。这一步不做,后面很容易出现“MCP 工具能看到,但模型一调用就失败”的割裂状态。
我在 Open Claw 里第一次挂 Google Home MCP 时,现象很具体:google-home工具列表可以加载,get_devices、control_device之类的工具名也能在日志里看到,但让模型执行“打开客厅灯”时,返回401 invalid_api_key,或者tool_calls字段为空。排查后发现,Google Home MCP 的 OAuth 配置没问题,真正的问题是 Open Claw 的模型供应商还指向旧地址,旧 Key 在聊天场景能用,一到 function calling / tool calling 就失效。本文按“拿 TaoToken Key → 改 Base URL → 配置 Open Claw → 用同一 Key 验证 → 切换前后对照 → 排障”的顺序记录,Key 统一用YOUR_API_KEY占位,避免把真实密钥写进配置仓库。
这篇文章的重点不是复述 Google Home MCP 的新闻,而是把 Open Claw 控制 Google Home 的模型出口切换成 TaoToken,并让同一个 Key 原样复用。你会看到 Open Claw 配置片段、同一 Key 的 curl 调用命令,以及切换前后的差异对照。Google Home 设备权限仍然由 Google Home 侧的 OAuth 负责,TaoToken Key 只负责 Open Claw 推理消耗的 Token,两者不要混用。
2. 在 TaoToken 官网拿 Key:Open Claw 只认一个模型 Base URL
第一步不要在其他地方找 Key,直接打开 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_get_key 。登录后进入控制台,在 API Keys 页面创建新的 Key。创建时可以按用途命名,例如openclaw-google-home,方便后续区分 Open Claw、Claude Code、Codex 等不同工具。复制出来的 Key 只显示一次或有限次,先放进本地环境变量,不要直接写进openclaw.yaml并提交到 Git。
如果你已经登录,也可以直接走 API Keys 页面:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_apikey_inline 。创建完成后,在本地终端设置:
export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" export OPENCLAW_MODEL="YOUR_MODEL"这里的TAOTOKEN_BASE_URL必须保持为https://taotoken.net/api,不要在后面拼接 UTM 参数。UTM 只用于官网页面跳转统计,工具配置中不能带。OPENCLAW_MODEL需要替换成 TaoToken 当前可用的模型名,可以从模型列表或控制台里选择支持 tool calling 的模型。Open Claw 要控制 Google Home,模型必须能稳定输出工具调用,否则 MCP 工具再完整也调不起来。
创建 Key 后,先用一个最小请求确认 Key 和 Base URL 能通:
curl -sS https://taotoken.net/api/v1/models \ -H "Authorization: Bearer $TAOTOKEN_API_KEY"如果这里返回 401,优先检查三件事:Key 是否复制完整、请求头是否是Authorization: Bearer YOUR_API_KEY、环境变量在当前 shell 是否生效。如果返回 404,检查 Base URL 是否误写成官网首页,或者路径是否多了空格、换行。确认模型列表可访问后,再进入 Open Claw 配置。
3. Open Claw 配置片段:模型走 TaoToken,MCP 走 Google Home
Open Claw 的配置可以理解成两层:模型供应商层和 MCP 工具层。模型供应商层决定 Open Claw 的推理请求发到哪里,这里要指向 TaoToken;MCP 工具层决定 Open Claw 能调用哪些外部工具,这里要指向 Google Home MCP。两层用不同的凭据:TaoToken 用YOUR_API_KEY,Google Home 用 OAuth 授权,不要把 Google 的 access token 填到 TaoToken Key 位置。
下面是一个 Open Claw 配置片段示例,字段名请以你本地 Open Claw 版本为准,核心是base_url、api_key_env和 MCP server 映射:
model: provider: openai_compatible base_url: https://taotoken.net/api api_key_env: TAOTOKEN_API_KEY model: ${OPENCLAW_MODEL} temperature: 0.2 max_tokens: 2048 mcp: servers: google-home: enabled: true transport: http url: ${GOOGLE_HOME_MCP_ENDPOINT} auth: type: oauth2 authorization_url: ${GOOGLE_HOME_AUTH_URL} token_url: ${GOOGLE_HOME_TOKEN_URL} client_id: ${GOOGLE_HOME_CLIENT_ID} client_secret: ${GOOGLE_HOME_CLIENT_SECRET} scopes: - ${GOOGLE_HOME_SCOPE} agent: tool_choice: auto require_confirmation_for: - unlock - garage.open - alarm.disarm对应的环境变量可以这样准备:
export GOOGLE_HOME_MCP_ENDPOINT="你的 Google Home MCP 服务地址" export GOOGLE_HOME_AUTH_URL="Google Home OAuth 授权地址" export GOOGLE_HOME_TOKEN_URL="Google Home OAuth Token 地址" export GOOGLE_HOME_CLIENT_ID="你的 Google Home OAuth Client ID" export GOOGLE_HOME_CLIENT_SECRET="你的 Google Home OAuth Client Secret" export GOOGLE_HOME_SCOPE="你的 Google Home 设备访问 Scope"这里有几个容易踩坑的点。第一,base_url写https://taotoken.net/api,不要写成带 UTM 的官网地址;第二,api_key_env指向TAOTOKEN_API_KEY,不要直接写 Key 字符串;第三,Google Home MCP 的 OAuth 凭据和 TaoToken Key 分开保存;第四,像门锁、车库、报警器这类高风险操作,建议在 Open Claw 侧加确认,不要让自然语言一句话直接执行。
配置完成后,Open Claw 启动时应该能同时看到模型供应商和google-homeMCP。如果只看到 MCP、模型请求却失败,问题就在model段;如果模型正常、MCP 工具不出现,问题就在mcp段。把这两层拆开排障,比混在一起看日志快很多。
4. 同一 Key 调用命令:先用 curl 验证,再启动 Open Claw
在启动 Open Claw 之前,先用同一个YOUR_API_KEY做一次 OpenAI 兼容调用。这一步的目的,是确认 Key、Base URL、模型名三者都正确。命令如下:
curl -sS https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "YOUR_MODEL", "messages": [ { "role": "user", "content": "请用一句话说明你是否准备好接收工具调用。" } ], "temperature": 0.2 }'如果返回内容正常,再把YOUR_MODEL换成支持 function calling 的模型,继续验证工具调用结构。对于 Open Claw 控制 Google Home,聊天能通不代表工具能调,必须确认模型会输出工具调用字段。可以从一个低风险问题开始,例如“列出当前 google-home MCP 暴露了哪些工具”。如果模型能返回工具名,说明模型侧的工具调用能力可用。
接着启动 Open Claw:
export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" export OPENCLAW_MODEL="YOUR_MODEL" openclaw --config ./openclaw.yaml --log-level debug启动后观察日志,重点看三类信息:
model provider: openai_compatible model base_url: https://taotoken.net/api mcp server: google-home connected tools loaded: google-home.*如果日志里出现401,先回到 curl 验证 Key;如果出现404,检查 Base URL 和模型名;如果出现tool_calls为空,换一个支持工具调用的模型,或者降低 temperature,避免模型只输出自然语言而不触发工具。Google Home MCP 连接成功但工具不执行,通常不是 TaoToken 侧问题,而是模型没有选择调用工具,或 MCP schema 没有被正确注入到当前对话。
验证设备控制时,建议按“读取优先、写入其次、高风险最后”的顺序:
1. 读取客厅温度 2. 读取客厅灯状态 3. 打开客厅灯 4. 关闭客厅灯 5. 读取事件历史这些请求由你在本地 Open Claw 会话中触发,再由 Open Claw 通过 MCP 访问 Google Home。不要把 Google Home OAuth 凭据、TaoToken Key 或设备控制命令发到公开聊天、公开仓库或不可信环境。需要执行命令时,由读者本人在本地终端执行。
5. 切换前后对照:报错、Token 消耗与工具调用成功率
切换模型供应商前后,现象差异通常很明显。下面这张表可以作为排查清单:
| 对比项 | 切换前:旧供应商直连 | 切换后:TaoToken + Open Claw |
|---|---|---|
| Base URL | 旧地址,可能每个工具各写一份 | 统一为https://taotoken.net/api |
| Key 管理 | 多个 Key 分散在 Open Claw、脚本、笔记里 | 一个 TaoToken Key 原样复用,用环境变量注入 |
| 聊天请求 | 可能正常 | 正常 |
| 工具调用 | 容易 401、429、404,或tool_calls为空 | 模型和工具调用走同一出口,便于定位 |
| 日志排查 | 供应商、模型、MCP 混在一起 | 先看模型连通性,再看 MCP 健康度 |
| Token 消耗 | 分散,难对应到具体任务 | Open Claw 推理消耗在 TaoToken 侧查看 |
| Google Home 权限 | 与模型 Key 容易混淆 | Google OAuth 管设备,TaoToken Key 管推理 |
这里要特别区分两类“消耗”:Open Claw 理解指令、选择工具、生成调用参数时消耗的是模型 Token,这部分走 TaoToken;Google Home MCP 执行设备读取或控制时,消耗的是 Google Home 侧的授权和 API 调用,不直接等于模型 Token。把两者分开后,排查就不会跑偏。
切换后建议按固定顺序做健康检查:
# 1. 检查 Key 和 Base URL curl -sS https://taotoken.net/api/v1/models \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" # 2. 检查 Open Claw 配置是否读到环境变量 openclaw --config ./openclaw.yaml --print-config | grep -E "base_url|api_key_env|google-home" # 3. 启动并观察 MCP 连接 openclaw --config ./openclaw.yaml --log-level debug如果模型列表接口正常、Open Claw 配置也读到https://taotoken.net/api,但工具调用仍然失败,就去看 MCP 侧日志。常见情况是 Google Home OAuth 过期、scope 不足、设备未授权给对应账号,或者 MCP server 根本没连上。把“模型问题”和“设备授权问题”分开,才能快速定位。
6. 常见错误:401、404、MCP 工具不出现、OAuth 回调失败
401 invalid_api_key最常见。优先检查Authorization: Bearer YOUR_API_KEY是否完整,Key 是否被换行截断,环境变量是否只在另一个 shell 生效。Open Claw 如果从 systemd、launchd 或 Docker 启动,环境变量可能没有带进去,需要显式配置。
404 model_not_found或404 path_not_found也很常见。前者通常是模型名写错,后者通常是 Base URL 写错。工具配置里应使用https://taotoken.net/api,不要在末尾加官网 UTM,也不要误写成https://taotoken.net/?utm_source=...。curl 验证时使用https://taotoken.net/api/v1/chat/completions,如果这里不通,Open Claw 也不会通。
MCP 工具不出现时,先看 Open Claw 日志里google-home是否 connected。如果没连上,检查GOOGLE_HOME_MCP_ENDPOINT、transport 类型、网络可达性。如果连上了但工具列表为空,检查 OAuth scope 是否包含设备读取和控制权限。如果工具列表有,但模型不调用,检查当前模型是否支持 function calling,以及tool_choice是否被设成了none。
OAuth 回调失败通常和重定向地址不一致有关。Google Home OAuth Client 里配置的回调地址,必须和 Open Claw 或你本地 MCP 客户端实际使用的地址一致。端口、路径、http/https 不一致都会失败。授权成功后,access token 和 refresh token 由 MCP 客户端保存,不要把它们填到 TaoToken Key 的位置。
还有一个容易忽略的问题:同一个对话里混用了多个模型供应商。Open Claw 的模型出口已经切到 TaoToken,但某个插件或子 Agent 仍读取旧的OPENAI_API_KEY或旧 Base URL,导致部分工具调用走旧通道。排查时搜索配置文件里的base_url、api_key、provider,确保关键路径都指向https://taotoken.net/api和TAOTOKEN_API_KEY。
7. 同一套 TaoToken Key 复用到 Claude Code、Codex 与 CC Switch
Open Claw 只是其中一个入口。如果你还在用 Claude Code、Codex 或 CC Switch,可以把同一个 TaoToken Key 复用到这些工具,但配置格式不能混。Claude Code 使用settings.json和ANTHROPIC_*环境变量;Codex 使用config.toml,不要给 Codex 套ANTHROPIC_*。
Claude Code 的settings.json示例:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_MODEL" } }CC Switch 三件套可以按这三个字段管理:
ANTHROPIC_BASE_URL=https://taotoken.net/api ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY ANTHROPIC_MODEL=YOUR_MODELCodex 的config.toml示例:
model = "YOUR_MODEL" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"然后设置:
export TAOTOKEN_API_KEY="YOUR_API_KEY"注意,Codex 不要填ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL这类变量,它读取的是config.toml里的 provider 和env_key。Claude Code 和 CC Switch 才使用ANTHROPIC_*三件套。Open Claw 则按它自己的模型供应商字段读取base_url和api_key_env。同一个 Key,不同工具,配置入口不同,这是最容易混的地方。
如果你还想把更多入口统一到 TaoToken,可以从官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_reuse 查看控制台和文档入口。统一 Key 之后,Open Claw 的 Google Home MCP 调用、Claude Code 的终端会话、Codex 的配置都可以用同一个 Key 做额度管理和排障,不需要为每个工具单独申请和轮换。
8. CTA:把 Open Claw + Google Home MCP 的模型出口固定到 TaoToken
到这里,核心链路已经清楚:Google Home 提供 MCP 侧的设备与事件访问,Open Claw 负责理解自然语言并选择工具,TaoToken 负责模型推理出口。先在官网拿 Key,再把 Base URL 固定为https://taotoken.net/api,最后用同一个YOUR_API_KEY验证 curl、Open Claw 和 MCP 工具调用。这样切换前后对照时,你就能明确知道问题在模型、在 MCP、还是在 Google Home 授权。
如果你还没有确定模型,可以先到模型对话页面试一轮工具调用提示词:https://taotoken.net/models/detail/chat?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_model_chat
如果你准备把 Open Claw、Claude Code、Codex 都长期接到同一个出口,可以查看 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_coding_plan
接下来直接创建或复用 API Key:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_api_keys
如果你同时使用 Claude Code,配置细节参考:https://taotoken.net/doc/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_content=openclaw_google_home_claude_code_doc
现在先从模型对话或创建 Key 开始,把 Open Claw 的模型出口切到 TaoToken,再用同一个 Key 去控制 Google Home。