使用 Rube MCP 自动化 Better Proposals:awesome-codex-skills 实战指南
【免费下载链接】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
本指南以仓库中的 better-proposals-automation Skill 为核心,讲解如何通过 Rube MCP(Composio)驱动 Better Proposals 的提案创建、发送与追踪类自动化任务。读完本文,你将掌握从 MCP 接入、连接授权、工具发现到执行与批量操作的完整链路,并理解为什么"先搜索、再执行"是这套体系不可违背的纪律。
一、这个 Skill 解决什么问题
Better Proposals 是面向销售团队的一站式提案制作与跟踪 SaaS,用于快速生成、发送并追踪销售提案(Proposal)的打开、签署状态。本仓库中的 composio-skills/better-proposals-automation/SKILL.md 是一份标准的 Codex Skill 指令包:它告诉 Codex如何借助 Composio 提供的 Better Proposals toolkit 来真实地操作 Better Proposals 服务,而不是仅仅"建议你手动去做"。
Skill 的 YAML frontmatter 定义了触发元数据:
name: better-proposals-automation description: "Automate Better Proposals tasks via Rube MCP (Composio). Always search tools first for current schemas." requires: mcp: [rube]按照 README.md 对 Codex Skill 机制的说明,Codex 读取name与description元数据来判断何时触发该 Skill;只有触发后才会加载正文,从而保持上下文精简。因此,当你的会话中出现与 Better Proposals 相关的任务意图时,Codex 会自动加载这份指令。
二、底层架构:Rube MCP 与 Composio Toolkit
整个自动化体系由三层组成:
- Rube MCP:一个统一的 MCP(Model Context Protocol)服务端点,提供
RUBE_SEARCH_TOOLS、RUBE_MANAGE_CONNECTIONS、RUBE_MULTI_EXECUTE_TOOL等标准工具,作为 Agent 与各 SaaS 集成之间的"网关"。 - Composio Better Proposals toolkit:Composio 平台封装好的工具集,标识符为
better_proposals,内部包含针对 Better Proposals API 的具体工具(tool slug)。 - 连接(Connection):在 Rube 侧建立并持有的 OAuth 授权连接,状态为
ACTIVE时工具才能实际调用。
同仓库的 composio-automation Skill 与本文 Skill 共享同一套 Rube 工具协议(RUBE_SEARCH_TOOLS→RUBE_MANAGE_CONNECTIONS→RUBE_MULTI_EXECUTE_TOOL),差异仅在于目标 toolkit 不同——这印证了该模式在仓库中是"一套协议、多集成复用"的通用架构。
三、前置条件
在运行任何 Better Proposals 工作流之前,需确认三点:
- Rube MCP 已连接,且
RUBE_SEARCH_TOOLS可用; - 已通过
RUBE_MANAGE_CONNECTIONS建立 Better Proposals 连接(toolkit 为better_proposals); - 始终先调用
RUBE_SEARCH_TOOLS获取当前工具 schema——这是本 Skill 反复强调的硬性纪律。
四、Setup:接入 Rube MCP 并建立连接
1. 添加 MCP 服务端
在客户端的 MCP 配置中添加端点https://rube.app/mcp即可。无需 API Key——只需添加端点即可工作。
2. 建立 Better Proposals 连接
按以下顺序完成授权闭环:
- 验证 Rube MCP 可用:确认
RUBE_SEARCH_TOOLS有响应; - 调用
RUBE_MANAGE_CONNECTIONS,toolkit 传better_proposals; - 若连接状态不是
ACTIVE,跟随返回的认证链接完成授权; - 在运行任何工作流之前,确认连接状态显示为
ACTIVE。
其中第 3 步是关键:Rube 返回的 auth link 是一次性 OAuth 流程,完成授权后连接状态才会从 pending 变为ACTIVE。结合仓库 connect/SKILL.md 中描述的 Composio CLI 流程(composio link <toolkit>走 OAuth 一次、连接持久保留),可以理解为 Rube 以 MCP 工具的形式复用了同样的连接生命周期。
五、工具发现:永远先执行 RUBE_SEARCH_TOOLS
工具 schema 会随上游 API 演进而变化,因此本 Skill 要求每次执行工作流前先做工具发现:
RUBE_SEARCH_TOOLS queries: [{use_case: "Better Proposals operations", known_fields: ""}] session: {generate_id: true}返回内容包括:
- 可用的工具 slug 列表;
- 每个工具的输入 schema;
- 推荐的执行计划(recommended execution plans);
- 已知陷阱(known pitfalls)。
参数解读:
use_case:描述你要做的具体任务(如创建提案、发送提案、查询提案状态),语义越精确,返回的工具越聚焦;known_fields:如果你已知某些字段,可在此预填以帮助排序,未知时留空字符串;session:generate_id: true表示让服务端生成新的会话 ID;在已有多步流程中则使用{id: "existing_session_id"}复用。
六、三步核心工作流
这是本 Skill 规定的标准执行模式:发现工具 → 检查连接 → 执行工具。
Step 1:发现可用工具
RUBE_SEARCH_TOOLS queries: [{use_case: "your specific Better Proposals task"}] session: {id: "existing_session_id"}注意此处复用已有会话 ID,保持同一工作流的会话连续性。
Step 2:检查连接
RUBE_MANAGE_CONNECTIONS toolkits: ["better_proposals"] session_id: "your_session_id"确认返回状态为ACTIVE再继续;若为其他状态,回到 Setup 步骤重新授权。
Step 3:执行工具
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必须来自RUBE_SEARCH_TOOLS的返回结果,禁止凭记忆硬编码;arguments必须严格遵循搜索返回的 schema 字段名与类型(例如提案内容、收件人邮箱等字段以 schema 为准);memory参数必须始终携带,即使为空也要传{};session_id与前面步骤保持一致。
RUBE_MULTI_EXECUTE_TOOL支持在tools数组中传入多个工具调用,便于在同一次请求中编排"创建提案 → 发送提案"这类串联动作。
七、批量操作与完整 Schema 获取
当任务超出单次工具调用范围时,本 Skill 提供两种进阶手段:
| 场景 | 手段 |
|---|---|
| 批量/脚本化操作 | RUBE_REMOTE_WORKBENCH,配合run_composio_tool()在远程环境中以代码方式驱动工具 |
| 需要完整字段定义 | RUBE_GET_TOOL_SCHEMAS,用于获取带schemaRef的工具的完整 schema |
其中RUBE_REMOTE_WORKBENCH适合需要对多个提案做循环处理、条件分支或数据汇总的场景;RUBE_GET_TOOL_SCHEMAS则在RUBE_SEARCH_TOOLS返回结果包含schemaRef引用(即详细定义需要另行拉取)时使用,能拿到比搜索摘要更完整的字段级定义。
八、已知陷阱与最佳实践
本 Skill 明确列出六条纪律,逐条展开:
- Always search first(始终先搜索):工具 schema 会变化。绝不在未调用
RUBE_SEARCH_TOOLS的情况下硬编码工具 slug 或参数。这是本 Skill 出现频率最高的告诫,也是与 composio-automation Skill 完全一致的约定。 - Check connection(检查连接):执行工具前必须用
RUBE_MANAGE_CONNECTIONS确认状态为ACTIVE,避免在未授权状态下空跑报错。 - Schema compliance(schema 合规):使用搜索结果中的精确字段名与类型;Better Proposals 工具的入参结构以上游 schema 为准,臆造字段会导致调用失败。
- Memory parameter(memory 参数):
RUBE_MULTI_EXECUTE_TOOL调用中必须始终包含memory,即使为空{}。它承载跨调用的上下文状态。 - Session reuse(会话复用):同一工作流内复用会话 ID,新工作流生成新 ID,以隔离状态并支持分页续取。
- Pagination(分页):检查响应中的分页 token,存在后续页时持续拉取直至取完,避免结果截断。
九、速查表
| 操作 | 方式 |
|---|---|
| 查找工具 | RUBE_SEARCH_TOOLS,use_case 指定 Better Proposals 相关任务 |
| 建立连接 | RUBE_MANAGE_CONNECTIONS,toolkit 传better_proposals |
| 执行工具 | RUBE_MULTI_EXECUTE_TOOL,使用发现到的 tool slug |
| 批量操作 | RUBE_REMOTE_WORKBENCH+run_composio_tool() |
| 获取完整 schema | RUBE_GET_TOOL_SCHEMAS(针对带schemaRef的工具) |
十、安装与触发方式
本 Skill 位于仓库composio-skills/目录,与其余数百个集成类 Skill(composio-automation 等)并列。安装方式遵循仓库 README.md 的统一约定:将 Skill 目录复制到$CODEX_HOME/skills/(默认~/.codex/skills/)后重启 Codex;也可使用 skill-installer 的install-skill-from-github.py脚本按仓库路径安装。安装后,在会话中自然描述 Better Proposals 相关任务即可触发本 Skill。
十一、适用前提与边界
- 本文所述
RUBE_*工具名、连接状态语义、参数结构均以 better-proposals-automation/SKILL.md 原文为准; - Better Proposals toolkit 内具体工具的 slug 与字段需以运行时
RUBE_SEARCH_TOOLS返回的 schema 为准,本文不臆造具体工具名; - 该 Skill 面向 Codex CLI/API 场景,依赖 Rube MCP 网关可用性;
- 自动化操作会真实作用于你的 Better Proposals 账号,建议先在测试环境验证工作流。
十二、总结
better-proposals-automationSkill 展示了"发现驱动"的集成自动化范式:Agent 不预置任何硬编码的工具定义,而是通过RUBE_SEARCH_TOOLS在运行时获取 schema,用RUBE_MANAGE_CONNECTIONS保障授权,用RUBE_MULTI_EXECUTE_TOOL完成真实动作,再用RUBE_REMOTE_WORKBENCH与RUBE_GET_TOOL_SCHEMAS覆盖批量与深度的需求。这套纪律不仅适用于 Better Proposals,也复用于仓库内全部 Composio 集成类 Skill,是一份可迁移的 MCP 自动化工程范式。
Powered by Composio
【免费下载链接】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),仅供参考