名称: square-automation 描述: “通过Rube MCP(Composio)自动化Square任务:支付、订单、发票、位置。始终先搜索工具以获取当前模式。” 要求: mcp: [rube] 类别: 电商
通过Rube MCP实现Square自动化
通过Composio的Square工具包和Rube MCP,自动化Square的支付处理、订单管理和发票管理。
工具包文档: composio.dev/toolkits/square
先决条件
- Rube MCP必须连接(RUBE_SEARCH_TOOLS可用)
- 通过
RUBE_MANAGE_CONNECTIONS与工具包square建立活跃的Square连接 - 始终先调用
RUBE_SEARCH_TOOLS以获取当前工具模式
设置
获取Rube MCP: 在客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥——只需添加端点即可工作。
- 确认
RUBE_SEARCH_TOOLS响应,验证Rube MCP可用 - 使用工具包
square调用RUBE_MANAGE_CONNECTIONS - 如果连接不活跃,按照返回的认证链接完成Square OAuth
- 在运行任何工作流之前,确认连接状态显示为活跃
核心工作流
1. 列出和监控支付
使用时机: 用户想要查看支付历史或检查支付状态
工具序列:
SQUARE_LIST_PAYMENTS- 检索支付,可选过滤器 [必需]SQUARE_CANCEL_PAYMENT- 取消待处理支付(如需要) [可选]
关键参数:
begin_time/end_time: RFC 3339时间戳,用于日期范围过滤sort_order: ‘ASC’ 或 ‘DESC’,用于时间顺序排序cursor: 来自先前响应的分页游标location_id: 按特定位置过滤支付
常见陷阱:
- 时间戳必须是RFC 3339格式(例如,‘2024-01-01T00:00:00Z’)
- 大型结果集需要分页;跟随
cursor直到不存在 - 只能取消待处理支付;已完成支付需要退款
SQUARE_CANCEL_PAYMENT需要来自列表结果的准确payment_id
2. 搜索和管理订单
使用时机: 用户想要按条件查找订单或更新订单详情
工具序列:
SQUARE_LIST_LOCATIONS- 获取位置ID用于过滤 [先决条件]SQUARE_SEARCH_ORDERS- 使用过滤器搜索订单 [必需]SQUARE_RETRIEVE_ORDER- 获取特定订单的完整详情 [可选]SQUARE_UPDATE_ORDER- 修改订单状态或详情 [可选]
关键参数:
location_ids: 要搜索的位置ID数组(搜索必需)query: 搜索过滤器对象,包含日期范围、状态、履行类型order_id: 用于检索/更新操作的特定订单IDcursor: 搜索结果的分页游标
常见陷阱:
location_ids对 SEARCH_ORDERS 是必需的;先从 LIST_LOCATIONS 获取ID- 订单状态包括:OPEN、COMPLETED、CANCELED、DRAFT
- UPDATE_ORDER 需要当前
version字段以防止冲突 - 搜索结果分页;跟随
cursor直到不存在
3. 管理位置
使用时机: 用户想要查看业务位置或获取位置详情
工具序列:
SQUARE_LIST_LOCATIONS- 列出所有业务位置 [必需]
关键参数:
- 无必需参数;返回所有可访问位置
- 响应包括
id、name、address、status、timezone
常见陷阱:
- 位置ID是大多数其他Square操作(订单、支付)所必需的
- 首次检索后始终缓存位置ID以避免冗余调用
- 非活跃位置可能仍出现在结果中;检查
status字段
4. 发票管理
使用时机: 用户想要列出、查看或取消发票
工具序列:
SQUARE_LIST_LOCATIONS- 获取位置ID用于过滤 [先决条件]SQUARE_LIST_INVOICES- 列出位置的发票 [必需]SQUARE_GET_INVOICE- 获取详细发票信息 [可选]SQUARE_CANCEL_INVOICE- 取消计划或未付发票 [可选]
关键参数:
location_id: 列出发票所必需invoice_id: 获取/取消操作所必需cursor: 列表结果的分页游标limit: 每页结果数量
常见陷阱:
location_id对 LIST_INVOICES 是必需的;通过 LIST_LOCATIONS 解析- 只能取消 SCHEDULED、UNPAID 或 PARTIALLY_PAID 发票
- CANCEL_INVOICE 需要发票
version以防止竞态条件 - 取消的发票无法恢复
常见模式
ID解析
位置名称 -> 位置ID:
1. 调用 SQUARE_LIST_LOCATIONS
2. 在响应中按名称查找位置
3. 提取id字段(例如,'L1234ABCD')
订单查找:
1. 使用 location_ids 和查询过滤器调用 SQUARE_SEARCH_ORDERS
2. 从结果中提取 order_id
3. 使用 order_id 进行 RETRIEVE_ORDER 或 UPDATE_ORDER
分页
- 检查响应中的
cursor字段 - 在下一个请求的
cursor参数中传递游标值 - 继续直到
cursor不存在或为空 - 使用
limit控制页面大小
日期范围过滤
- 使用RFC 3339格式:
2024-01-01T00:00:00Z - 对于支付:
begin_time和end_time参数 - 对于订单:使用带有 date_time_filter 的查询过滤器
- 所有时间戳均为UTC
已知陷阱
ID格式:
- 位置ID是字母数字字符串(例如,‘L1234ABCD’)
- 支付ID和订单ID是较长的字母数字字符串
- 在其他操作之前始终将位置名称解析为ID
版本控制:
- UPDATE_ORDER 和 CANCEL_INVOICE 需要当前
version字段 - 先获取资源以获取其当前版本
- 版本不匹配返回409冲突错误
速率限制:
- Square API有每个端点的速率限制
- 批量操作实施退避策略
- 分页应包含大型数据集的短暂延迟
响应解析:
- 响应可能将数据嵌套在
data键下 - 金额以最小货币单位表示(美元为美分)
- 使用回退选项进行防御性解析可选字段
快速参考
| 任务 | 工具Slug | 关键参数 |
|---|---|---|
| 列出支付 | SQUARE_LIST_PAYMENTS | begin_time, end_time, location_id, cursor |
| 取消支付 | SQUARE_CANCEL_PAYMENT | payment_id |
| 搜索订单 | SQUARE_SEARCH_ORDERS | location_ids, query, cursor |
| 获取订单 | SQUARE_RETRIEVE_ORDER | order_id |
| 更新订单 | SQUARE_UPDATE_ORDER | order_id, version |
| 列出位置 | SQUARE_LIST_LOCATIONS | (无) |
| 列出发票 | SQUARE_LIST_INVOICES | location_id, cursor |
| 获取发票 | SQUARE_GET_INVOICE | invoice_id |
| 取消发票 | SQUARE_CANCEL_INVOICE | invoice_id, version |
由Composio提供支持