基于 Rube MCP 的 ListenNotes 自动化:Composio Codex Skill 实战指南
【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills
本篇技术指南以 awesome-codex-skills 仓库中的 listennotes-automation skill 为核心,讲解如何在 Codex CLI 与 API 环境中,通过 Rube MCP 网关与 Composio 的 ListenNotes 工具箱,对播客与音频领域的 ListenNotes API 进行工具发现、连接管理与工作流自动化。读完本文,你将掌握一套「先搜索工具、再检查连接、后批量执行」的标准化调用范式,并理解如何避免因工具 Schema 变更而导致的常见失败。
关联文档概览与定位
本文对应的关联文档位于 composio-skills/listennotes-automation/SKILL.md,它属于仓库中composio-skills/目录下的一个 Codex Skill。该 Skill 的 YAML frontmatter 定义了其元数据:
--- name: listennotes-automation description: "Automate Listennotes tasks via Rube MCP (Composio). Always search tools first for current schemas." requires: mcp: [rube] ---从元数据可以看出三个关键信息:
- 触发场景:当 Codex 需要自动化处理 ListenNotes 相关任务(如检索播客、获取单集详情、查询转录等)时,会基于
description自动触发该 Skill; - 依赖声明:
requires.mcp声明了必须加载rube这个 MCP 服务器; - 核心纪律:
description中强调 "Always search tools first",即执行任何工具前必须先做工具搜索——这是整个文档贯穿始终的原则。
仓库 README.md 中对 Codex Skill 的机制做了权威说明:每个 Skill 拥有独立的SKILL.md,包含元数据(name + description)与分步指导;Codex 依据元数据决定何时触发 Skill,并在触发后才加载正文,以保持上下文精简。这也解释了为什么 listennotes-automation 的正文如此聚焦于「连接 + 搜索 + 执行」三件事。
前置条件:Rube MCP 与 ListenNotes 连接
在使用任何工作流之前,必须满足文档列出的前置条件:
- Rube MCP 已连接:环境中应存在
RUBE_SEARCH_TOOLS等 Rube 工具可供调用; - ListenNotes 连接处于 ACTIVE 状态:通过
RUBE_MANAGE_CONNECTIONS以 toolkit 名称listennotes建立连接; - 工具 Schema 为最新:每次执行前都必须调用
RUBE_SEARCH_TOOLS获取当前工具定义。
这里需要区分两个概念:
- Rube MCP是一个统一的 MCP 网关入口,负责把 Composio 平台上 1000+ 应用的工具以 MCP 工具的形式暴露给 Agent;
- ListenNotes toolkit是 Composio 针对 ListenNotes API 封装的具体工具箱,包含搜索播客、获取单集信息、管理播放列表等具体操作。
Setup:接入 Rube MCP 与激活连接
文档给出的接入方式极为轻量:在 MCP 客户端配置中添加https://rube.app/mcp作为 MCP Server 即可,无需额外 API Key。随后按以下顺序完成环境准备:
- 验证 Rube MCP 可用:确认
RUBE_SEARCH_TOOLS有响应; - 发起连接:调用
RUBE_MANAGE_CONNECTIONS,参数中指定 toolkit 为listennotes; - 完成授权:若连接状态不是 ACTIVE,则按返回的 auth 链接完成 OAuth 设置;
- 确认状态:在工作流运行前,确认连接状态已显示为 ACTIVE。
工具发现:永远先搜索再执行
文档强调,工具 Schema 会随平台迭代而变化,因此绝不硬编码工具 slug 或参数。标准的工具发现调用如下:
RUBE_SEARCH_TOOLS queries: [{use_case: "Listennotes operations", known_fields: ""}] session: {generate_id: true}该调用会返回以下内容:
- 可用的工具 slug 列表;
- 各工具的输入 Schema(字段名、类型、必填项);
- 推荐执行计划(recommended execution plans);
- 已知陷阱(known pitfalls)。
其中session.generate_id: true表示让系统为本次发现生成一个新的会话 ID;而在后续复用已有会话时,则应改用session: {id: "existing_session_id"}。这一会话机制是 Rube MCP 工作流的关键状态载体,见下文「会话复用」部分。
核心工作流:三步范式
关联文档将 ListenNotes 自动化的标准流程归纳为三步,这一范式与仓库中其他 composio-skills(如 composio-automation、21risk-automation)完全一致,属于该目录下的通用最佳实践。
Step 1:发现可用工具
针对具体任务发起搜索,传入贴近业务语义的 use_case,并复用已有会话 ID:
RUBE_SEARCH_TOOLS queries: [{use_case: "your specific Listennotes task"}] session: {id: "existing_session_id"}Step 2:检查连接状态
在执行前再次确认 ListenNotes 连接处于 ACTIVE:
RUBE_MANAGE_CONNECTIONS toolkits: ["listennotes"] session_id: "your_session_id"Step 3:批量执行工具
通过RUBE_MULTI_EXECUTE_TOOL执行搜索到的工具,参数必须严格符合搜索结果中返回的 Schema:
RUBE_MULTI_EXECUTE_TOOL tools: [{ tool_slug: "TOOL_SLUG_FROM_SEARCH", arguments: {/* schema-compliant args from search results */} }] memory: {} session_id: "your_session_id"该调用支持一次传入多个工具(tools为数组),适合组合型任务,例如先搜索播客再获取某单集详情。注意memory参数即使为空也必须显式包含(写为{}),这是文档明确强调的调用约束。
已知陷阱:六个必须遵守的纪律
关联文档用专门小节列出了实操中最容易踩的坑,逐条解读如下:
- 永远先搜索:工具 Schema 会变化,未经
RUBE_SEARCH_TOOLS就硬编码 slug 或参数,是最高频的失败来源; - 执行前检查连接:连接掉线(非 ACTIVE)会导致所有工具调用失败,应在执行前用
RUBE_MANAGE_CONNECTIONS复核; - Schema 合规:字段名与类型必须与搜索结果完全一致,例如参数若是数组就不能传字符串;
- memory 参数必填:
RUBE_MULTI_EXECUTE_TOOL的调用中必须携带memory字段,即使为空对象; - 会话复用:同一工作流内复用同一个 session ID,新的工作流再生成新的 ID,以隔离状态、避免上下文串扰;
- 分页处理:响应中出现分页令牌(pagination token)时,应持续翻页直至拉取完整数据,避免静默截断。
快速参考:操作与工具映射
关联文档末尾的快速参考表,是实际编码时最常用的速查卡片:
| Operation | Approach |
|---|---|
| Find tools | RUBE_SEARCH_TOOLSwith Listennotes-specific use case |
| Connect | RUBE_MANAGE_CONNECTIONSwith toolkitlistennotes |
| Execute | RUBE_MULTI_EXECUTE_TOOLwith discovered tool slugs |
| Bulk ops | RUBE_REMOTE_WORKBENCHwithrun_composio_tool() |
| Full schema | RUBE_GET_TOOL_SCHEMASfor tools withschemaRef |
其中两条补充路径值得展开:
- 批量操作:
RUBE_REMOTE_WORKBENCH配合run_composio_tool()适用于大批量、需要远程执行环境的场景,例如对大量播客单集做批量转录或元数据抓取; - 完整 Schema:当工具返回的条目带有
schemaRef引用时,需要调用RUBE_GET_TOOL_SCHEMAS拉取完整的 Schema 定义,而不只是搜索结果里的摘要信息。
在 Codex 环境中安装与使用该 Skill
作为仓库内 Skill,listennotes-automation 遵循 README.md 规定的标准安装方式。推荐使用仓库自带的 skill-installer 脚本:
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/listennotes-automation安装器会将 Skill 放入$CODEX_HOME/skills/listennotes-automation(默认~/.codex/skills),重启 Codex 后即可生效。也可以手动安装:将该 Skill 目录复制到$CODEX_HOME/skills/,重启 Codex 后在新会话中描述任务即可自动触发。
安装完成后,会话中应能看到RUBE_SEARCH_TOOLS、RUBE_MANAGE_CONNECTIONS、RUBE_MULTI_EXECUTE_TOOL等 Rube 工具,说明 MCP 依赖已就绪;随后按照「前置条件 → 工具发现 → 三步工作流」的顺序即可驱动 ListenNotes 自动化任务。
从源码结构看该 Skill 的定位
从仓库目录结构观察,composio-skills/下包含了数百个结构高度一致的自动化 Skill,每个都遵循相同的元数据模板、相同的前置条件清单、相同的三步工作流与相同的快速参考表(可对比 composio-automation/SKILL.md 与 -21risk-automation/SKILL.md 验证)。可以推断:
- listennotes-automation 是该模板针对 ListenNotes 工具箱的实例化,其差异化仅体现在 toolkit 名称(
listennotes)、use_case 语义与最终的业务参数上; - 这种模板化设计让 Agent 可以一行描述即可复用整套 Rube MCP 编排逻辑,把精力集中在业务参数而非连接协议细节;
- 与仓库中通过 Composio CLI 直连的 connect/SKILL.md(使用
composio search/composio execute/composio link)形成互补:CLI 路线适合终端手动操作,Rube MCP 路线(本文主题)适合在 Codex 会话中由 Agent 自主编排。
小结
listennotes-automation 是一个「小而完整」的 Codex Skill:它以 Rube MCP 为桥梁、以 Composio 的 ListenNotes 工具箱为能力底座,将「连接管理 + 动态工具发现 + Schema 合规执行 + 会话状态管理」封装成一套可复用的自动化范式。无论是检索播客、拉取单集、批量抓取元数据还是后续的分页消费,遵循「先搜索、后执行、常查连接、严格按 Schema 传参」的纪律,就能在 Codex 环境中稳定地驱动 ListenNotes 相关业务。
本文依据 awesome-codex-skills 仓库中的 listennotes-automation/SKILL.md 及仓库内相关 Skill 源码整理,安装与使用方式以仓库 README.md 与 skill-installer 为准。
【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考