
1. 先分清两类凭据Hermes 模型 Key 与 Google Home MCP 授权Hermes 里已经能看到 google-home MCP 工具但模型请求 401 时先把两类 Key 拆开模型侧去 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_intro 取 KeyBase URL 填 https://taotoken.net/apiGoogle Home MCP 侧仍用 Google OAuth。很多排障现场看起来像“MCP 没连上”实际上是 TaoToken Key 被填进了 Google Home MCP 的授权字段或者 Google OAuth token 被填进了模型 provider 的 api_key。结果就是工具列表能出现但 Hermes 发起推理时鉴权失败或者模型能回复但读取设备事件历史时被 Google 侧拒绝。Google Home 开放 MCP 接入后Hermes 这类支持 MCP 的第三方智能体可以通过统一协议访问设备与事件历史。对 Hermes 来说一次自然语言请求通常会拆成两段第一段是模型推理Hermes 把系统提示、工具描述、用户问题和历史上下文发给模型这一步消耗 Token鉴权用 TaoToken KeyBase URL 指向 https://taotoken.net/api第二段是工具调用Hermes 根据模型返回的工具调用意图去请求 Google Home MCP 服务这一步鉴权用 Google 侧 OAuth和 TaoToken Key 无关。把这两段拆清楚后面所有配置、报错和 Key 放置都会变得明确。本文按 Hermes 使用视角展开目标是产出可复现结果Hermes 参数配置、Google Home 事件历史查询命令、Key 放置位置对照。你可以先完成模型侧接入再完成 MCP 侧授权最后用只读查询验证事件历史。整个过程中TaoToken 只负责模型推理入口不替代 Google Home 的设备授权也不应该把 TaoToken Key 写进 Google Home MCP 的 OAuth 配置里。2. 在 TaoToken 准备 Hermes 可用的 Key 与 Base URL第一步不是去改 MCP而是先把 Hermes 的模型通道准备好。打开 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_key 完成登录后进入控制台创建或管理 API Key。复制时只复制一次Key 通常不会完整二次展示建议先放进本地密码管理器或临时环境变量。最终你会得到一个类似sk-...的字符串本文统一用YOUR_API_KEY占位。创建 Key 后Hermes 模型侧需要两个核心参数参数值说明providertaotokenHermes 的模型供应商名称可按你的配置命名base_urlhttps://taotoken.net/api模型请求入口不加 UTMapi_keyYOUR_API_KEYTaoToken 控制台创建的 Keymodel按控制台可用模型填写不同模型消耗 Token 不同Base URL 是https://taotoken.net/api不要在它后面拼 UTM也不要把它和 Google Home MCP 的 endpoint 混在一起。如果你的 Hermes 版本使用 OpenAI 兼容协议它通常会自动拼接/v1/chat/completions如果你要手动验证 Key可以用下面的本地命令。命令中的 Key 只在你本机执行不要提交到 Git。export TAOTOKEN_API_KEYYOUR_API_KEY curl -sS https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer ${TAOTOKEN_API_KEY} \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [ {role: user, content: 只回复 ok} ], temperature: 0 }如果返回包含choices或类似成功结构说明 TaoToken Key 与 Base URL 已可用。若返回 401先检查Authorization是否是Bearer YOUR_API_KEY再检查是否把 Google Home MCP 的 token 误填到了这里。若返回 404优先检查 Base URL 是否被写成了https://taotoken.net/api/v1之外的形式或者模型名不在当前 Key 的可用范围内。模型侧确认通过后再进入 Hermes 配置文件。3. Hermes 参数配置模型 Provider 指向 TaoTokenMCP 指向 Google HomeHermes 不同发行版和版本的字段名可能略有差异但结构基本一致模型 provider 管推理MCP servers 管外部工具。下面是一份 YAML 配置骨架字段名请按你的 Hermes 版本做映射。重点不是复制字段名而是看清 Key 放在哪一层。# ~/.config/hermes/config.yaml model: provider: taotoken base_url: https://taotoken.net/api api_key: ${TAOTOKEN_API_KEY} default_model: gpt-4o-mini temperature: 0.2 max_tokens: 2048 mcp: servers: google-home: transport: streamable-http url: ${GOOGLE_HOME_MCP_URL} headers: Authorization: Bearer ${GOOGLE_HOME_MCP_ACCESS_TOKEN} timeout_seconds: 30对应的环境变量建议单独放在.env.local或系统密钥管理中不要写进仓库export TAOTOKEN_API_KEYYOUR_API_KEY export GOOGLE_HOME_MCP_URLhttps://由 Google Home MCP 提供的端点 export GOOGLE_HOME_MCP_ACCESS_TOKEN由 Google OAuth 流程获得的访问令牌这里要再次强调TAOTOKEN_API_KEY只服务于model.api_keyGOOGLE_HOME_MCP_ACCESS_TOKEN只服务于mcp.servers.google-home.headers.Authorization。两者不能互换。如果你把 TaoToken Key 放进GOOGLE_HOME_MCP_ACCESS_TOKENHermes 调 Google Home 工具时会报 401 或 403如果你把 Google OAuth token 放进model.api_key模型推理会直接失败。配置完成后先让 Hermes 打印当前 provider 和 MCP 服务列表。命令名可能因版本不同而变化核心是确认模型供应商和工具服务都已加载。hermes config show hermes mcp list hermes mcp tools --server google-homehermes mcp tools的输出非常关键。它告诉你 Google Home MCP 实际暴露了哪些工具名。常见能力可能包括设备列表、设备状态、事件历史查询和控制类工具但具体名称以你的输出为准。不要凭猜测在提示词里写工具名先把真实工具名抄下来再让模型选择。4. Google Home MCP 接入OAuth、工具暴露与 Key 放置边界Google Home MCP 的授权流程属于 Google 侧。你需要在 Google Home 相关控制台或授权入口启用 MCP 能力完成 OAuth 同意拿到 MCP endpoint 和访问令牌。TaoToken 不能代替这一步TaoToken Key 也不应该出现在 Google Home MCP 的 OAuth 配置中。正确的 Key 放置边界可以总结为放置位置应该放什么不应该放什么示例Hermes 模型 providerTaoToken KeyGoogle OAuth tokenmodel.api_key: YOUR_API_KEYHermes MCP headersGoogle OAuth access tokenTaoToken KeyAuthorization: Bearer google_token系统环境变量两类 Key 分开命名混用同名变量TAOTOKEN_API_KEY、GOOGLE_HOME_MCP_ACCESS_TOKENGit 仓库不提交任何真实 Key真实 Key、refresh token只提交.env.exampleTaoToken 控制台创建、轮换、禁用模型 KeyGoogle Home 设备授权API Keys 页面Google 授权页管理设备权限与 MCP 授权TaoToken 模型 KeyOAuth 同意页在 Hermes 里MCP server 的url应该填 Google Home MCP 实际提供的端点。不要把https://taotoken.net/api填到 MCP server 的 URL 里因为那是模型推理入口不是 Google Home 工具入口。反过来也不要把 Google Home MCP endpoint 填到model.base_url否则模型请求会直接失败。完成配置后用只读方式验证工具可用性。先列设备再查状态最后查事件历史。不要一上来就执行控制命令例如开关灯、调整温控或触发场景。对于家庭自动化先读后写能避免误操作也更容易定位权限问题。hermes mcp call google-home list_devices hermes mcp call google-home get_device_state \ --json {device_id:device_id}如果list_devices返回 401检查 Google OAuth token 是否过期、是否包含所需 scope。如果返回空数组检查授权账号下是否有设备以及 MCP 服务是否选择了正确的家庭。如果工具根本不存在回到hermes mcp tools --server google-home查看真实工具名不要在配置里凭空写一个工具名。5. 可复现Hermes 事件历史查询命令与提示词模板事件历史查询是验证 Google Home MCP 集成最实用的场景。它通常只读不会改变设备状态同时又能证明模型推理、工具选择、MCP 授权三条链路都通了。下面给出本地命令示例。不同 Hermes 版本的子命令可能不同如果你的版本没有hermes mcp call用hermes mcp --help查找等价命令参数结构仍然是 JSON。# 1. 确认 MCP 服务已加载 hermes mcp list # 2. 查看 Google Home MCP 暴露的工具 hermes mcp tools --server google-home # 3. 查询指定时间范围的事件历史 # 工具名 list_events 仅作示例实际以第 2 步输出为准 hermes mcp call google-home list_events \ --json { start_time: 2026-02-01T00:00:00Z, end_time: 2026-02-01T23:59:59Z, limit: 50 }如果 Hermes 支持直接传 MCP JSON-RPC 请求也可以本地构造如下请求进行调试。注意这仍然是调用 Google Home MCP 工具不是调用 TaoToken 模型接口。{ jsonrpc: 2.0, id: 1, method: tools/call, params: { name: list_events, arguments: { start_time: 2026-02-01T00:00:00Z, end_time: 2026-02-01T23:59:59Z, limit: 50 } } }在 Hermes 对话里建议用一个约束明确的提示词让模型只做只读查询和汇总。这样既能触发 Google Home MCP又能把推理消耗控制在合理范围内。模型推理会消耗 TaoToken Token所以提示词要尽量清晰避免让 Hermes 反复试错。你是家庭自动化排障助手。请只调用 google-home MCP 的只读工具查询 2026-02-01 00:00 到 2026-02-01 23:59 的事件历史。 要求 1. 不要调用任何控制类工具 2. 返回时间、设备名称、事件类型、触发来源、当前状态 3. 按时间升序整理成 Markdown 表格 4. 如果工具返回空结果说明可能原因不要编造事件。这个提示词会先让 Hermes 选择工具再把工具结果交给模型总结。工具调用走 Google Home MCP模型总结走 TaoToken。如果你发现工具调用成功但总结很慢通常是模型选择或上下文长度问题如果你发现模型回复了但事件为空通常是 Google 侧时间范围、设备权限或工具名问题。6. 常见报错与 Key 放置位置对照排障时不要只看最终报错要拆开看是模型链路还是 MCP 链路。下面这张表覆盖 Hermes 接入 Google Home MCP 时最常见的几类问题。现象更可能的原因检查位置修正方式模型请求 401TaoToken Key 错误或缺失model.api_key、TAOTOKEN_API_KEY填YOUR_API_KEY使用Bearer鉴权模型请求 403Key 被禁用或权限不足TaoToken 控制台重新创建 Key 或检查模型权限模型请求 404Base URL 或模型名错误model.base_url、default_modelBase URL 用https://taotoken.net/apiMCP 工具为空MCP 服务未加载mcp.servers.google-home检查 URL、transport、AuthorizationMCP 返回 401Google OAuth token 过期GOOGLE_HOME_MCP_ACCESS_TOKEN重新走 Google OAuth 授权事件历史为空时间范围或设备权限问题查询参数、Google 授权账号扩大时间范围确认设备归属模型不调用工具提示词或工具描述不清Hermes 工具列表、系统提示明确要求调用只读事件查询控制命令不执行MCP 权限或确认策略限制Google Home 授权、Hermes 策略先验证只读再单独开放控制最关键的一条TaoToken Key 放模型层Google Home OAuth 放 MCP 层。不要把 TaoToken Key 写进GOOGLE_HOME_MCP_ACCESS_TOKEN也不要把 Google OAuth token 写进model.api_key。如果你在 Hermes 中同时配置了多个 MCP server建议每个 server 的变量名都带服务前缀例如GOOGLE_HOME_MCP_ACCESS_TOKEN避免和其他智能家居服务的 token 混淆。7. Claude Code、Codex、CC Switch 的 Key 放置对照虽然本文主角是 Hermes但很多人会同时用 Claude Code、Codex 或 CC Switch 做旁路验证。这里把 Key 放置方式单独列清楚避免你把不同工具的协议混用。如果你想统一管理这些 Key可以从 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_tools 进入控制台创建项目级 Key。Claude Code 使用settings.json或ANTHROPIC_*环境变量。示例{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: claude-sonnet-4-5 } }Codex 使用config.toml不要套用ANTHROPIC_*。示例model gpt-5 model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chatCC Switch 里配置供应商时通常抓住三件套Provider、Base URL、API Key。模型名按你要用的模型填写。provider: TaoToken base_url: https://taotoken.net/api api_key: YOUR_API_KEY model: gpt-4o-mini注意Claude Code 的ANTHROPIC_*只用于 Claude Code 侧Codex 的config.toml不要写ANTHROPIC_BASE_URL。Hermes 的模型 provider 也不要直接复制 Claude Code 的环境变量名除非你的 Hermes 版本明确支持该协议。统一原则是每个工具各自读自己的 provider 配置但都可以把 Base URL 指向https://taotoken.net/api并使用 TaoToken 控制台创建的 Key。8. 安全与用量Key 放在 Hermes 的哪一层最稳从安全角度看TaoToken Key 和 Google OAuth token 都应该放在环境变量或系统密钥管理中而不是写死在 YAML、JSON、TOML 里。推荐做法是配置文件只引用变量真实值放在本机.env.local、系统 Keychain 或 CI Secret。.env.example可以提交但里面只能写占位符TAOTOKEN_API_KEYYOUR_API_KEY GOOGLE_HOME_MCP_URLhttps://your-google-home-mcp-endpoint GOOGLE_HOME_MCP_ACCESS_TOKENyour-google-oauth-access-token如果你在团队成员之间共享 Hermes 配置建议每人创建自己的 TaoToken Key不要共用同一个 Key。这样一旦某台机器泄露可以在 TaoToken 控制台单独禁用和轮换。Google Home MCP 的 OAuth 授权也应该按账号隔离不要把家庭管理员 token 共享给所有成员。对于只读事件查询场景尽量先使用只读权限验证需要控制设备时再单独开放写入权限。用量方面Hermes 调用模型推理会消耗 Token而 Google Home MCP 工具调用本身不经过 TaoToken。也就是说设备事件历史的数据获取由 MCP 完成模型只负责理解用户意图、选择工具和总结结果。如果发现 Token 消耗异常优先检查是否是提示词太长、工具描述太多、历史上下文无限增长或者 Hermes 在失败后反复重试。你可以把事件查询结果先在本地落盘再让模型读取摘要减少重复推理。在 TaoToken 控制台 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_security 中可以集中管理 Key、查看用量和调整项目。建议给 Hermes 单独建一个 Key名称里带hermes-google-home方便审计。如果某天不再使用直接禁用该 Key不影响 Claude Code、Codex 或 CC Switch 的其他 Key。9. 文末 CTA按路径完成 Hermes Google Home MCP 闭环如果你还没有完成闭环建议按下面顺序走先验证模型对话再决定长期方案然后创建专用 Key最后参考 Claude Code 文档理解 Anthropic 兼容配置的细节。Hermes 接入 Google Home MCP 时模型侧 Base URL 始终是https://taotoken.net/apiKey 用YOUR_API_KEY占位替换Google Home MCP 侧继续使用 Google OAuth两者不要混放。模型对话快速验证https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_chat长期运行或 Coding 场景查看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_plan创建和管理专用 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_keysClaude Code 与 Anthropic 兼容配置文档https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contenthermes_google_home_mcp_claudecode最后再强调一次 Key 放置Hermes 的model.api_key放 TaoToken Keymodel.base_url放https://taotoken.net/apiGoogle Home MCP 的headers.Authorization放 Google OAuth token。先用hermes mcp tools --server google-home确认工具再用只读的list_events查询事件历史。只要这两层不混Hermes 通过 Google Home MCP 控制设备、查询事件历史的链路就能稳定跑起来。