1. 先把 Google Home MCP 的 401 排掉:同一把 TaoToken Key 要落在模型侧
在 Google Home MCP 服务器早期访问的测试里,最容易被误判的报错是:MCP 客户端已经显示 google-home server 连接成功,设备列表也能拉到,但一让 Claude 或 Antigravity 去读某个房间的事件历史,就返回 401、stream disconnected,或者模型侧直接无响应。我一开始也以为是 MCP 权限没配,后来发现是模型供应商的凭证没有统一:MCP server 负责把家庭设备工具暴露给智能体,而智能体真正发起大模型请求时,走的是宿主工具的 Base URL 和 API Key。为了把 Google Home MCP、Claude Code、Codex、CC Switch 和 Antigravity 串成一条链路,我先到 TaoToken 官网(https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=google_home_mcp_antigravity)领取一把 Key,然后把所有工具的 Base URL 都固定为 https://taotoken.net/api。这样做的好处很直接:同一把 TaoToken Key 可以同时给 Google Home MCP 实验、Antigravity 智能体、Claude Code、Codex 和 CC Switch 使用,切换工具时不换 Key,只改客户端配置和 MCP server 的启用状态。下面按“领取 Key → 最小验证 → Claude Code → Codex → CC Switch → Google Home MCP → Antigravity → 排障 → 安全边界”的顺序,给出一份可以跟做的 Key 复用配置和调用顺序对照。
2. 复盘调用链:Google Home MCP 和 Antigravity 到底谁在调模型
Google Home 生态最近开放了 MCP 服务器早期访问,Claude、ChatGPT、Antigravity 等支持 MCP 的智能体可以接触智能家居设备与事件历史。但这里有两个平面需要分开看:
| 环节 | Google Home MCP 实验 | Antigravity 实验 | 是否使用 TaoToken Key |
|---|---|---|---|
| MCP 宿主 | Claude Desktop、Claude Code、ChatGPT 等支持 MCP 的客户端 | Antigravity 的 MCP/Agent 配置 | 否,MCP server 自己不用 TaoToken Key |
| 家居工具 | google-home MCP server 暴露设备、房间、事件历史等工具 | 同一套 google-home MCP server | 否,通常用 Google Home 授权 |
| 模型请求 | 宿主智能体把对话和工具调用结果发往模型供应商 | Antigravity 把对话和工具调用结果发往模型供应商 | 是,这里才填 TaoToken Key |
| Base URL | https://taotoken.net/api | https://taotoken.net/api | 是,统一入口 |
| 切换点 | Claude Code 的 settings.json、MCP server 启用状态 | Antigravity 的 Provider/Model 设置、MCP 设置 | 同一把 Key 复用 |
一句话结论:TaoToken Key 不是填给 Google Home MCP server 的,而是填给“会思考、会决定调用哪个工具”的模型客户端。MCP server 只负责把“开灯、关灯、读事件历史”这类能力包装成工具;模型请求走哪里,由 Claude Code、Codex、CC Switch、Antigravity 这些宿主决定。
如果你把 TaoToken Key 塞进 Google Home MCP server 的环境变量里,通常不会让模型请求变得更通畅,反而会把 Google Home 授权和模型供应商凭证混在一起,排障时很难判断 401 到底来自哪一层。
3. 领取和验证 TaoToken Key:先用 curl 打通 Base URL
先到 TaoToken 官网领取 Key:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=key_create 。登录后进入控制台,在 API Keys 页面创建或轮换密钥。创建页也可以直接从 deep link 进入:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=key_create 。拿到 Key 后不要直接写进博客、截图或聊天记录,先放到本地环境变量里。
最小验证用 curl 即可,不要一上来就配 MCP。先确认 Base URL、Key、模型 ID 三者能通:
export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" curl -sS "$TAOTOKEN_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "YOUR_MODEL_ID", "messages": [ {"role": "user", "content": "只回复 pong"} ], "max_tokens": 16 }'如果这里返回 401,优先查 Key 是否复制完整、Bearer 前后是否有空格、环境变量是否被其他 profile 覆盖。如果返回 404,优先查 Base URL 是否被误写成https://taotoken.net/api/v1或漏掉/api。本文统一使用:
Base URL: https://taotoken.net/api Key: YOUR_API_KEY只有这一步通了,再进入 Claude Code、Codex、CC Switch 和 Antigravity 的配置。
4. Claude Code:settings.json 与 ANTHROPIC_* 只走 Claude Code
Claude Code 读的是 Anthropic 风格配置,所以用ANTHROPIC_*。推荐写到~/.claude/settings.json,项目级可以放.claude/settings.local.json。不要把 Codex 的config.toml和 Claude Code 的settings.json混在一起,更不要把ANTHROPIC_*套到 Codex。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_CLAUDE_MODEL_ID" } }保存后重启 Claude Code。先用普通对话确认模型侧已经走 TaoToken,再加 Google Home MCP。Claude Code 的 MCP server 配置通常是mcpServers结构,下面只是结构示例,Google Home MCP 早期访问的具体 command 和 args 要按你拿到的官方接入文档替换:
{ "mcpServers": { "google-home": { "command": "<按 Google Home MCP 早期访问文档填写>", "args": ["<按官方文档填写>"], "env": {} } } }注意env里放 Google Home 侧需要的授权信息,不要放ANTHROPIC_AUTH_TOKEN。TaoToken Key 只留在settings.json的env中,也就是模型请求侧。重启后可以在 Claude Code 里执行/mcp检查 google-home server 是否已连接。调用顺序建议是:先问“列出可用房间”,再问“读取客厅最近事件历史”。先小后大,避免一上来就触发复杂工具链。
5. Codex:config.toml 只认自己的 provider 字段
Codex 走自己的config.toml,不要写ANTHROPIC_*。典型配置是声明model_provider,再把 provider 的base_url指向 TaoToken,env_key指向保存 Key 的环境变量。
model = "YOUR_CODEX_MODEL_ID" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"如果你的 Codex 版本要求responses协议,就按版本说明调整wire_api。然后设置环境变量:
export TAOTOKEN_API_KEY="YOUR_API_KEY" codexCodex 如果出现 401,不要先去改 Claude Code 的ANTHROPIC_AUTH_TOKEN,因为 Codex 根本不读它。先看env_key = "TAOTOKEN_API_KEY"对应的变量是否在当前 shell 生效,再看base_url是否为https://taotoken.net/api。如果 Codex 里也要启用 MCP,同样把 google-home server 放在 MCP 配置层,TaoToken Key 放在 provider 层,两层不要互相污染。
6. CC Switch 三件套:Base URL、API Key、模型如何复用同一把 Key
CC Switch 这类工具的价值在于快速切换供应商配置。你可以把它理解成“三件套”:
- Base URL:统一填
https://taotoken.net/api - API Key:统一填
YOUR_API_KEY - 默认模型:按当前任务选择,例如 Claude Code 任务用一个模型,Codex 任务用另一个模型
一个供应商 profile 可以写成类似下面的结构。不同版本 UI 字段可能不同,按界面里实际叫法映射即可:
{ "name": "TaoToken", "baseUrl": "https://taotoken.net/api", "apiKey": "YOUR_API_KEY", "model": "YOUR_MODEL_ID", "provider": "openai-compatible" }使用 CC Switch 时,最容易犯的错是:切换 profile 后只改了 Key,没有改 Base URL,或者只改了 Base URL,模型 ID 还是旧供应商的。建议用下面的对照表检查:
| 场景 | Base URL | Key | 模型 |
|---|---|---|---|
| Claude Code 跑 Google Home MCP 实验 | https://taotoken.net/api | YOUR_API_KEY | Claude 系模型 |
| Codex 跑本地仓库任务 | https://taotoken.net/api | YOUR_API_KEY | Codex 当前可用模型 |
| Antigravity 跑家居智能体 | https://taotoken.net/api | YOUR_API_KEY | Antigravity 选择的模型 |
| CC Switch 临时测模型 | https://taotoken.net/api | YOUR_API_KEY | 任意已开通模型 |
CC Switch 切换的是模型请求配置,不是 Google Home 授权。Google Home MCP server 的授权仍然独立维护。这样同一把 TaoToken Key 可以在多个工具间复用,但不会把 MCP 工具权限和模型供应商权限混为一谈。
7. Google Home MCP 接入:Key 放模型侧,MCP Server 只管工具
Google Home MCP 早期访问的核心变化是:智能体可以通过 MCP 协议看到家居设备能力,并读取事件历史。接入时请按下面的顺序做,不要跳步。
第一步,在 TaoToken 官网创建 Key,并确认https://taotoken.net/api可用。
第二步,在 Claude Code、Codex、CC Switch 或 Antigravity 的模型供应商配置里填同一把 Key。
第三步,在 MCP 客户端里添加 google-home server,command 和 args 按 Google Home MCP 早期访问文档填写。
第四步,给 google-home server 配它自己的 Google Home 授权,不要把 TaoToken Key 写进去。
第五步,重启 MCP 客户端,确认 google-home server 已连接。
第六步,先在对话里列设备,再读事件历史。
调用顺序对照如下:
| 顺序 | 操作 | 配置位置 | 使用 TaoToken Key |
|---|---|---|---|
| 1 | 创建 TaoToken Key | TaoToken 控制台 | 创建 |
| 2 | 配 Claude Code / Codex / Antigravity | 客户端模型配置 | YOUR_API_KEY |
| 3 | 启动 google-home MCP server | MCP 客户端 | 不填 |
| 4 | 询问设备列表 | 对话输入 | 模型侧使用 |
| 5 | 询问事件历史 | 对话输入 | 模型侧使用 |
| 6 | 切到 Antigravity | Antigravity Provider 设置 | 复用同一把 |
如果你把 Key 放错层,典型现象是:MCP 工具能列出,但模型调用超时;或者模型能聊天,但一调用 google-home 工具就报权限错误。前者查模型供应商配置,后者查 Google Home 授权和 MCP server 状态。
8. Antigravity 切换:同一把 Key,两种配置入口不要混淆
Antigravity 作为支持 MCP 的智能体工具,接入 Google Home MCP 时同样有两个配置入口:
- MCP 入口:配置 google-home server,让 Antigravity 能看到家居工具。
- 模型供应商入口:配置 Base URL 和 API Key,让 Antigravity 的推理请求走 TaoToken。
如果 Antigravity 的版本允许通过环境变量或 OpenAI 兼容配置指定供应商,可以这样准备:
export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" # 如果当前 Antigravity 版本读取 OpenAI 兼容变量,按界面提示映射 export OPENAI_API_KEY="$TAOTOKEN_API_KEY" export OPENAI_BASE_URL="$TAOTOKEN_BASE_URL"如果 Antigravity 只支持 UI 输入,就在 Provider/Model 设置里填:
Provider: OpenAI Compatible 或自定义 Base URL: https://taotoken.net/api API Key: YOUR_API_KEY Model: YOUR_MODEL_ID关键点仍然是:同一把 TaoToken Key 只出现在模型供应商入口,不写进 google-home MCP server 的env。这样从 Claude Code 切到 Antigravity 时,你不需要重新申请 Key,只需要确认 Antigravity 的 Base URL 和模型 ID 正确,然后重新连接 MCP server。
9. 端到端复现:从领 Key 到查事件历史的命令顺序
下面给出一套本地可执行的顺序。命令由读者本地执行,不要把这些步骤交给 MCP/Agent 去操作生产数据库。
# 1. 设置 TaoToken 环境变量 export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" # 2. 最小模型请求 curl -sS "$TAOTOKEN_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "YOUR_MODEL_ID", "messages": [{"role": "user", "content": "ping"}], "max_tokens": 16 }' # 3. 写入 Claude Code 配置 mkdir -p ~/.claude cat > ~/.claude/settings.json <<'JSON' { "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_CLAUDE_MODEL_ID" } } JSON # 4. 写入 Codex 配置 mkdir -p ~/.codex cat > ~/.codex/config.toml <<'TOML' model = "YOUR_CODEX_MODEL_ID" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat" TOML # 5. 按 Google Home MCP 早期访问文档启动 google-home server # 此处 command/args 必须替换为官方接入文档给出的值 # 6. 启动 Claude Code,检查 MCP claude # 7. 在 Claude Code 中执行 /mcp,确认 google-home 已连接 # 8. 在对话中按顺序调用 # 先:列出当前家庭有哪些房间和设备 # 再:读取指定房间最近的事件历史切到 Antigravity 时,不需要重新执行第 3、4 步里的 Claude Code 和 Codex 配置。只需要在 Antigravity 的模型供应商设置中填同一个https://taotoken.net/api和YOUR_API_KEY,再确认 google-home MCP server 已启用。这样就是同一把 Key 在 Google Home MCP 实验和 Antigravity 之间复用。
10. 排障:401、404、stream disconnected、tool not found 的排查顺序
| 现象 | 优先检查 | 常见原因 | 处理 |
|---|---|---|---|
| 401 | Key、Authorization、环境变量 | Key 复制不完整;CC Switch profile 覆盖;Claude Code 与 Codex 变量混用 | Claude Code 查ANTHROPIC_AUTH_TOKEN;Codex 查env_key指向的变量 |
| 404 | Base URL | 多写/v1、少写/api、复制了带 UTM 的网页链接 | 统一为https://taotoken.net/api |
| stream disconnected | 本机网络、公司网关、证书、超时 | MCP server 本地阻塞;请求链路过长 | 先跑 curl 最小请求,再单独启动 MCP server |
| tool not found | MCP server 状态、客户端重启 | google-home server 没启动;配置未被读取;工具权限未开 | 重启客户端,检查/mcp或对应 MCP 面板 |
| 事件历史为空 | Google Home 授权、设备归属 | 授权账号与设备不在同一家庭;权限范围不足 | 重新授权,确认设备可见 |
| Antigravity 能聊天但 MCP 不触发 | Antigravity 的 MCP 设置 | 模型供应商已通,但 MCP server 未连接 | 检查 MCP server 连接状态和工具授权 |
排障时不要同时改三个地方。推荐顺序是:先 curl 确认 TaoToken Key 和 Base URL;再确认 Claude Code 或 Codex 的模型请求能通;再确认 MCP server 能独立启动;最后才在对话里触发工具调用。这样才能判断问题在模型侧、MCP 侧,还是 Google Home 授权侧。
11. 安全边界:不要让 MCP/Agent 直连 Oracle/生产库
Google Home MCP 的场景是家居设备和事件历史,不要把这个模式无限扩展到生产数据库。MCP 和 Agent 不应该直连 Oracle 或任何生产库,也不应该由模型自动执行高风险 SQL。涉及数据库的命令和 SQL 应该由读者在本地或受控终端执行,MCP 最多作为工具调用入口,而不是生产凭证的容器。
同样的原则适用于 TaoToken Key:
- Key 只放本地环境变量或受管密钥配置中。
- 不要把 Key 写入 MCP server 的
env,除非该 server 明确就是模型转发层。 - 不要在截图、录屏、公开仓库里暴露
YOUR_API_KEY的真实值。 - 需要轮换时,到 TaoToken 控制台重新创建,再更新 Claude Code、Codex、CC Switch、Antigravity 对应的配置。
- 统一入口仍然是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=security_check 。
这样既能复用同一把 Key,又能把风险限制在模型请求侧,而不是让家居工具、生产库、模型凭证互相越界。
12. 文末 CTA:按模型对话 → Coding Plan → 创建 Key → Claude Code 文档顺序走
如果你已经理解了“同一把 TaoToken Key 放在模型侧”的原则,下一步可以按这个顺序操作:
先用模型对话验证 Base URL 和模型 ID:
https://taotoken.net/models/detail/chat?utm_source=taotoken_aicg_blog_end&utm_content=google_home_mcp_antigravity如果要把 Claude Code、Codex、CC Switch 和 Antigravity 长期接进日常开发流,看 Coding Plan:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=google_home_mcp_antigravity创建或轮换你的 TaoToken Key:
https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=google_home_mcp_antigravity回到 Claude Code 的
settings.json和ANTHROPIC_*配置说明,把 Key 复用落实到本地:
https://taotoken.net/doc/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_content=google_home_mcp_antigravity
最后再提醒一次:Google Home MCP 负责家居工具,Antigravity 负责智能体入口,Claude Code 和 Codex 负责不同编码工作流,而 TaoToken Key 和 https://taotoken.net/api 负责把这些工具背后的模型请求统一起来。只要把 Key 放在模型侧,把 MCP server 授权放在 MCP 侧,同一把 Key 就能在 Google Home MCP 和 Antigravity 之间稳定切换。