使用 Rube MCP 自动化 Bolt IoT 操作:基于 awesome-codex-skills 的 Codex Skill 实战指南
本文是面向 Codex CLI / API 用户的实战指南,讲解如何利用 awesome-codex-skills 仓库中的 bolt-iot-automation Skill(位于 composio-skills/bolt-iot-automation/SKILL.md),通过 Composio 的 Bolt IoT 工具集与 Rube MCP 网关,把 Bolt IoT 设备与项目的日常操作交给 Agent 自动化完成。读完本文,你将掌握 Skill 的触发机制、Rube MCP 的免密钥连接方式、"搜索工具 → 校验连接 → 执行调用" 的标准三步工作流,以及规避 Schema 漂移、连接失效、分页截断等常见坑的完整方案。
Skill 概览:它是什么、何时被触发
bolt-iot-automation 是一个标准的 Codex Skill,其元数据定义在 SKILL.md 的 frontmatter 中:
---
name: bolt-iot-automation
description: "Automate Bolt Iot tasks via Rube MCP (Composio). Always search tools first for current schemas."
requires:
mcp: [rube]
---
三个字段分别决定了 Skill 的身份、触发时机与依赖:
- name:Skill 的唯一标识,也是安装后目录名与触发时使用的名称。
- description:Codex 根据这段描述在合适的场景自动触发该 Skill。注意其中特别强调 "Always search tools first for current schemas"——这是本 Skill 的灵魂约束,要求 Agent 在执行任何 Bolt IoT 操作前先做工具发现。
- requires.mcp:声明该 Skill 依赖名为
rube的 MCP Server,Codex 会据此检查 MCP 连接是否就绪。
正如仓库 README.md 所说明的,Codex Skills 是模块化的指令包:每个 Skill 拥有独立的 SKILL.md,Codex 读取元数据决定何时触发,仅在触发后才加载正文,从而保持上下文精简。这也解释了为什么本文档的正文可以完全聚焦在"如何自动化 Bolt IoT"这一个主题上。
前置条件:三个缺一不可的前提
在运行任何工作流之前,需要满足三项前置条件:
- Rube MCP 已连接:
RUBE_SEARCH_TOOLS可用(该工具存在即代表 MCP 网关联通)。 - 存在 ACTIVE 的 Bolt IoT 连接:通过
RUBE_MANAGE_CONNECTIONS并以 toolkit 为bolt_iot建立,且状态为ACTIVE。 - 始终先搜索工具:调用
RUBE_SEARCH_TOOLS获取当前工具 Schema,而不是凭记忆硬编码工具名或参数。
需要说明的是,原文档对 Bolt IoT 平台本身着墨不多,但从 Composio 工具集的组织方式可以推断:bolt_iot 对应 Composio 官方 Bolt IoT 集成(官方工具集文档页为 composio.dev/toolkits/bolt_iot),具体暴露哪些工具、每个工具的参数结构,均以 RUBE_SEARCH_TOOLS 实时返回的 Schema 为准——这正是"先搜索、后执行"模式的根本原因。
连接设置:免密钥接入 Rube MCP
本 Skill 最大的易用性在于 Rube MCP 的接入不需要任何 API Key,只需在客户端配置中加入 MCP Server 端点:
在客户端配置中添加
https://rube.app/mcp作为 MCP Server,无需 API Key,添加端点即可工作。
连接建立后,按照以下顺序完成 Bolt IoT 账户的授权:
- 确认 Rube MCP 可用:验证
RUBE_SEARCH_TOOLS有响应; - 调用
RUBE_MANAGE_CONNECTIONS,传入 toolkitbolt_iot; - 若连接状态不是
ACTIVE,跟随返回的认证链接完成授权; - 在运行任何工作流之前,再次确认连接状态为
ACTIVE。
这里的认证链接机制在仓库其他 Skill 中也有印证,例如 spotify-automation 同样说明"如果不存在活跃连接,Agent 会提示你完成认证"——这是 Rube MCP 网关的统一行为:首次接入时通过 OAuth 式授权链接换取长期可用的连接凭据。
工具发现:永远先问 Schema 再动手
RUBE_SEARCH_TOOLS 是本 Skill 的"问路"工具。执行工作流前必须先用它发现可用工具:
RUBE_SEARCH_TOOLS
queries: [{use_case: "Bolt Iot operations", known_fields: ""}]
session: {generate_id: true}
该调用会返回四类关键信息:
- 可用工具的 tool slugs(工具标识符,后续执行时引用);
- 每个工具的 input schemas(参数名、类型、是否必填);
- recommended execution plans(推荐的执行方案);
- known pitfalls(该工具已知的坑)。
注意第一个调用中 session.generate_id: true 会生成一个新的会话 ID,用于标识本次工作流。原文档明确提示:"Always call RUBE_SEARCH_TOOLS first to get current tool schemas"——因为工具 Schema 会随平台迭代而变动,任何跳过搜索、直接硬编码的行为都是本 Skill 明令禁止的。
核心工作流模式:三步完成一次 Bolt IoT 自动化
无论具体任务是什么(查询设备状态、触发设备动作、还是批量运维),标准模式都固定为三步。
Step 1:发现可用工具
使用针对性的 use_case 查询,并复用已存在的会话 ID(而非每次新建):
RUBE_SEARCH_TOOLS
queries: [{use_case: "your specific Bolt Iot task"}]
session: {id: "existing_session_id"}
将 use_case 替换为你当前的具体任务描述,例如设备状态查询、数据上报拉取等。返回结果中的 tool_slug 与参数 Schema 是下一步执行的依据。
Step 2:校验连接状态
执行任何工具前,确认 Bolt IoT 连接仍然有效:
RUBE_MANAGE_CONNECTIONS
toolkits: ["bolt_iot"]
session_id: "your_session_id"
返回结果中的连接状态必须为 ACTIVE。若为其他状态(如 EXPIRED、INACTIVE),需要回到 Setup 流程重新授权,否则后续调用会因凭据失效而失败。
Step 3:执行工具
用 RUBE_MULTI_EXECUTE_TOOL 批量执行一个或多个已发现的工具:
RUBE_MULTI_EXECUTE_TOOL
tools: [{
tool_slug: "TOOL_SLUG_FROM_SEARCH",
arguments: {/* schema-compliant args from search results */}
}]
memory: {}
session_id: "your_session_id"
参数要点:
tool_slug必须来自 Step 1 的搜索结果,不得凭记忆填写;arguments必须严格遵循搜索结果返回的 Schema(字段名、类型逐一对应);memory参数必须始终携带,即使无状态也要传空对象{};session_id在整个工作流内复用 Step 1 使用的同一 ID。
这套三步模式并非 Bolt IoT 独有,而是整个 composio-skills/ 目录的统一约定。对比同目录下的 composio-automation 与 spotify-automation 可以看到完全相同的结构:先 RUBE_SEARCH_TOOLS 发现 → 再 RUBE_MANAGE_CONNECTIONS 校验 → 最后 RUBE_MULTI_EXECUTE_TOOL 执行。掌握一次即可举一反三地操作仓库内上百个集成 Skill。
已知陷阱:六个最容易翻车的细节
原文档总结了六条经过实战检验的注意事项,条条都值得刻进工作流模板:
- Always search first(永远先搜索):工具 Schema 会变。未经
RUBE_SEARCH_TOOLS确认就硬编码 tool slugs 或参数,是错误率最高的操作。 - Check connection(先查连接):执行工具前务必确认
RUBE_MANAGE_CONNECTIONS返回ACTIVE,避免在凭据失效时盲目重试。 - Schema compliance(严格遵循 Schema):参数必须使用搜索结果中的精确字段名与类型,多一个拼写错误或少一个必填项都会导致调用失败。
- Memory parameter(memory 参数必带):
RUBE_MULTI_EXECUTE_TOOL每次调用都要包含memory,无状态也传{},这是协议层面的硬性要求。 - Session reuse(会话复用):同一工作流内复用会话 ID 以维持上下文;开启新工作流时再生成新 ID(对应
session.generate_id: true)。 - Pagination(分页处理):检查响应中的分页 token,持续抓取直到数据完整,防止大结果集被截断。
快速参考:一张表记住四个入口工具
| Operation | Approach |
|---|---|
| Find tools | RUBE_SEARCH_TOOLS with Bolt Iot-specific use case |
| Connect | RUBE_MANAGE_CONNECTIONS with toolkit bolt_iot |
| Execute | RUBE_MULTI_EXECUTE_TOOL with discovered tool slugs |
| Bulk ops | RUBE_REMOTE_WORKBENCH with run_composio_tool() |
| Full schema | RUBE_GET_TOOL_SCHEMAS for tools with schemaRef |
前三个是日常主路径;后两个是进阶能力:
- RUBE_REMOTE_WORKBENCH:适合批量/远程场景,配合
run_composio_tool()函数在远端工作台中以编程方式编排多次调用; - RUBE_GET_TOOL_SCHEMAS:当搜索结果中某些工具以
schemaRef(Schema 引用)形式返回而非内联完整 Schema 时,用该工具拉取完整定义。
安装与使用:把 Skill 交给 Codex
本 Skill 与仓库中其他 Skill 的安装方式完全一致,推荐使用仓库自带的安装器(详见 README.md):
git clone https://github.com/ComposioHQ/awesome-codex-skills.git
cd awesome-codex-skills
python skill-installer/scripts/install-skill-from-github.py --repo ComposioHQ/awesome-codex-skills --path composio-skills/bolt-iot-automation
安装器会把 Skill 放入 $CODEX_HOME/skills/bolt-iot-automation,重启 Codex 后即可在会话中触发。也可以手动把 composio-skills/bolt-iot-automation/ 目录复制到 ~/.codex/skills/ 下。触发方式很简单:在会话中描述 Bolt IoT 相关任务,Codex 会依据 frontmatter 中的 description 自动匹配并加载本 Skill,随后 Agent 按照本文档的三步工作流完成工具发现、连接校验与工具执行。
总结
bolt-iot-automation Skill 通过 Rube MCP 把 Bolt IoT 的能力接入 Codex,其核心方法论可以概括为一句话:Schema 是动态的,连接是易失的,所以每次都要先搜索、再校验、后执行。这套模式在 awesome-codex-skills 仓库的上百个 composio 类 Skill 中高度统一,理解本文的三步工作流与六条陷阱,就等于掌握了整个工具集体系的使用钥匙。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



