使用 Rube MCP 与 Composio 在 awesome-claude-skills 中自动化 Fingertip 任务
使用 Rube MCP 与 Composio 在 awesome-claude-skills 中自动化 Fingertip 任务
导读
Fingertip 自动化 Skill(仓库路径 composio-skills/fingertip-automation/SKILL.md)是 awesome-claude-skills 中"App Automation via Composio"系列之一,它教 Claude 通过 Rube MCP(Composio 的统一工具接入层)调用 Composio 的 Fingertip toolkit,完成 Fingertip 业务操作的自动化。读完本文,你将掌握:Rube MCP 的接入与连接管理流程、RUBE_SEARCH_TOOLS 驱动的动态工具发现范式、RUBE_MULTI_EXECUTE_TOOL 的标准执行调用链,以及避免硬编码 schema 的一系列实战陷阱。
Fingertip 自动化 Skill 定位
awesome-claude-skills 仓库在 README.md 中明确说明了 Composio 自动化系列的设计目标:为数十个 SaaS 应用提供"开箱即用的工作流 Skill,每个 Skill 都包含工具调用序列、参数指引、已知陷阱与速查表,并且全部使用从 Composio API 实时发现的真实 tool slug"。Fingertip 自动化 Skill 正是这套体系中的一个独立成员,其 frontmatter 声明了硬依赖:
---
name: fingertip-automation
description: "Automate Fingertip tasks via Rube MCP (Composio). Always search tools first for current schemas."
requires:
mcp: [rube]
---
requires.mcp: [rube] 意味着该 Skill 只有在客户端环境中存在 Rube MCP 工具时才具备执行条件;若缺少 RUBE_SEARCH_TOOLS,Skill 应被视为不可用,而不是尝试用猜测的 slug 硬调用。
前置条件
在执行任何 Fingertip 工作流之前,必须同时满足三个条件:
- Rube MCP 已连接:环境中可用
RUBE_SEARCH_TOOLS工具; - Fingertip 连接处于 ACTIVE 状态:通过
RUBE_MANAGE_CONNECTIONS以 toolkit 名fingertip建立的活动连接; - 每次执行前先做工具发现:调用
RUBE_SEARCH_TOOLS获取当前最新的工具 schema。
其中第三点是整个 Skill 的方法论基石:Composio 的工具 schema 会随上游应用 API 演进而变化,任何把 tool slug 或参数硬编码进代码/提示词的做法都会在 schema 变更后失效。
Rube MCP 接入与连接 Setup
添加 MCP Server
接入 Rube MCP 只需在客户端(如 Claude Code、Claude Desktop 或其他支持 MCP 的 Agent 客户端)的 MCP server 配置中添加端点:
https://rube.app/mcp
该端点无需任何 API key——添加后即可直接使用。这一"零配置"接入方式降低了 Skill 的落地门槛,是 Rube MCP 与常规需要长密钥交换的 MCP 服务的主要差异。
连接激活四步流程
- 验证 Rube MCP 可用:确认
RUBE_SEARCH_TOOLS能正常响应; - 发起连接:调用
RUBE_MANAGE_CONNECTIONS,toolkits参数传入["fingertip"]; - 完成授权:如果返回的连接状态不是
ACTIVE,跟随返回的 auth link 完成 OAuth 授权; - 确认状态:在运行任何工作流之前,再次确认连接状态显示为
ACTIVE。
值得强调的是,第 3 步的"跟随返回的 auth link"正是 Composio 处理第三方 OAuth 的标准方式——Fingertip 的授权链接由 RUBE_MANAGE_CONNECTIONS 动态返回,Skill 不预设任何账号凭据。
工具发现:一切从 RUBE_SEARCH_TOOLS 开始
该 Skill 的核心理念是"先搜索、后执行"。首次接入时建议使用生成式 session 做一次全局发现:
RUBE_SEARCH_TOOLS
queries: [{use_case: "Fingertip operations", known_fields: ""}]
session: {generate_id: true}
返回结果包含四类关键信息:
- 可用的 tool slug 列表:后续
RUBE_MULTI_EXECUTE_TOOL中直接引用的标识符; - 输入 schema:每个工具的字段名、类型与必填项;
- 推荐的执行计划:工具之间的推荐调用顺序;
- 已知 pitfalls:Composio 针对该 toolkit 预置的注意事项。
generate_id: true 的作用是让 Rube 为本次发现会话生成一个新的 session id,适合工作流起点;而在同一工作流的后续步骤中则复用已有 session id,保持上下文连贯。
核心工作流三步模式
Step 1:发现可用工具
在工作流中,如果已有 session,则传入既有 id 以延续上下文:
RUBE_SEARCH_TOOLS
queries: [{use_case: "your specific Fingertip task"}]
session: {id: "existing_session_id"}
use_case 应描述具体的业务目标(例如创建联系人、管理联系人组等),而不是宽泛的 "Fingertip";描述越具体,返回的推荐执行计划越贴合任务。
Step 2:检查连接状态
RUBE_MANAGE_CONNECTIONS
toolkits: ["fingertip"]
session_id: "your_session_id"
这一步是执行前的"安全闸门":只有当返回状态为 ACTIVE 时才允许继续。若连接失效或过期,应先重新走授权流程,而不是直接执行工具(否则会得到鉴权类错误)。
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必须来自 Step 1 的搜索结果,禁止凭记忆猜测;arguments必须严格符合搜索返回的 schema(字段名、类型、必填性);memory参数即使为空也必须显式携带{},这是 Skill 明确的硬性要求;- 需要批量执行多个工具时,
tools数组内可并列多个{tool_slug, arguments}对象,一次调用完成多步操作。
已知陷阱清单
原 Skill 文档沉淀了六条经过实战验证的陷阱,值得逐条展开:
| 陷阱 | 说明与规避 |
|---|---|
| 先搜索再执行 | Tool schema 会变化,绝不硬编码 slug 或参数;每次工作流都必须以 RUBE_SEARCH_TOOLS 开头 |
| 检查连接 | 执行前用 RUBE_MANAGE_CONNECTIONS 确认 ACTIVE 状态,避免因连接过期产生非预期失败 |
| Schema 合规 | 严格使用搜索结果中的精确字段名与类型,arguments 少字段或多字段都可能被拒 |
| memory 参数 | RUBE_MULTI_EXECUTE_TOOL 必须携带 memory,空上下文也传 {} |
| Session 复用 | 同一工作流内复用 session id 保持状态连续;新工作流生成新 id,避免串话 |
| 分页处理 | 检查响应中的分页 token,持续拉取直到数据完整,防止大结果集被截断 |
其中"分页处理"在实际业务中最为常见:Fingertip 的联系人/名单类数据往往是大分页集合,忽略分页 token 会导致只处理了第一页数据,产生不完整的结果。
速查参考表
| 操作 | 方式 |
|---|---|
| 查找工具 | RUBE_SEARCH_TOOLS + Fingertip 相关的 use case |
| 建立连接 | RUBE_MANAGE_CONNECTIONS + toolkit fingertip |
| 执行调用 | RUBE_MULTI_EXECUTE_TOOL + 搜索发现的 tool slug |
| 批量操作 | RUBE_REMOTE_WORKBENCH + run_composio_tool() |
| 获取完整 schema | RUBE_GET_TOOL_SCHEMAS(针对带 schemaRef 的工具) |
两个补充工具的适用场景:当单个工具返回了 schemaRef 引用(说明其完整 schema 需要单独拉取)时使用 RUBE_GET_TOOL_SCHEMAS;当需要处理大规模批量操作时,使用 RUBE_REMOTE_WORKBENCH 配合 run_composio_tool() 在远程执行环境中批量运行工具,避免在本地会话中逐条执行造成上下文膨胀。
仓库内的同类范式印证
Fingertip 自动化 Skill 的结构并非孤例。仓库中同属 Composio 系列的 skill(例如 composio-skills/composio-automation/SKILL.md)保持了完全一致的编排:相同的 frontmatter 依赖声明、相同的"发现→连接→执行"三步工作流、相同的六条陷阱清单。这说明该系列 Skill 遵循统一的生成规范:以 RUBE_SEARCH_TOOLS 为动态 schema 来源、以 RUBE_MANAGE_CONNECTIONS 为统一鉴权入口、以 RUBE_MULTI_EXECUTE_TOOL 为统一执行出口。
从仓库结构可以推断,该 Skill 的设计意图是让 Agent 在 schema 频繁演进的环境下仍能稳健工作:把"工具长什么样"完全交给运行时发现,而不是把"工具应该是什么样"写死在提示词中。对于需要长期维护的 Agent 工作流而言,这种"发现优先(discovery-first)"的编排方式能显著降低上游 API 变更带来的维护成本。
快速落地检查清单
将 Skill 部署到 Claude Code 时,按 README.md 的标准流程放入 skills 目录(例如 ~/.config/claude-code/skills/),随后按以下顺序验证:
- 确认
RUBE_SEARCH_TOOLS可用(Rube MCP 已添加https://rube.app/mcp); RUBE_MANAGE_CONNECTIONS建立fingertip连接并完成授权,确认ACTIVE;- 用 Fingertip 相关的 use case 调用
RUBE_SEARCH_TOOLS获取 slug 与 schema; - 用
RUBE_MULTI_EXECUTE_TOOL(携带memory: {})执行首个真实操作; - 检查响应分页,确认数据完整性。
完成这五步,即意味着你的 Claude 已经可以通过 Rube MCP 驱动 Fingertip 执行真实的业务操作。