Square Automation via Rube MCP
Automate Square payment processing, order management, and invoicing through Composio's Square toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/square
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Square connection via
RUBE_MANAGE_CONNECTIONS with toolkit square
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit square
- If connection is not ACTIVE, follow the returned auth link to complete Square OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. List and Monitor Payments
When to use: User wants to view payment history or check payment status
Tool sequence:
SQUARE_LIST_PAYMENTS - Retrieve payments with optional filters [Required]
SQUARE_CANCEL_PAYMENT - Cancel a pending payment if needed [Optional]
Key parameters:
begin_time / end_time: RFC 3339 timestamps for date range filtering
sort_order: 'ASC' or 'DESC' for chronological ordering
cursor: Pagination cursor from previous response
location_id: Filter payments by specific location
Pitfalls:
- Timestamps must be RFC 3339 format (e.g., '2024-01-01T00:00:00Z')
- Pagination required for large result sets; follow
cursor until absent
- Only pending payments can be cancelled; completed payments require refunds
SQUARE_CANCEL_PAYMENT requires exact payment_id from list results
2. Search and Manage Orders
When to use: User wants to find orders by criteria or update order details
Tool sequence:
SQUARE_LIST_LOCATIONS - Get location IDs for filtering [Prerequisite]
SQUARE_SEARCH_ORDERS - Search orders with filters [Required]
SQUARE_RETRIEVE_ORDER - Get full details of a specific order [Optional]
SQUARE_UPDATE_ORDER - Modify order state or details [Optional]
Key parameters:
location_ids: Array of location IDs to search within (required for search)
query: Search filter object with date ranges, states, fulfillment types
order_id: Specific order ID for retrieve/update operations
cursor: Pagination cursor for search results
Pitfalls:
location_ids is required for SEARCH_ORDERS; get IDs from LIST_LOCATIONS first
- Order states include: OPEN, COMPLETED, CANCELED, DRAFT
- UPDATE_ORDER requires the current
version field to prevent conflicts
- Search results are paginated; follow
cursor until absent
3. Manage Locations
When to use: User wants to view business locations or get location details
Tool sequence:
SQUARE_LIST_LOCATIONS - List all business locations [Required]
Key parameters:
- No required parameters; returns all accessible locations
- Response includes
id, name, address, status, timezone
Pitfalls:
- Location IDs are required for most other Square operations (orders, payments)
- Always cache location IDs after first retrieval to avoid redundant calls
- Inactive locations may still appear in results; check
status field
4. Invoice Management
When to use: User wants to list, view, or cancel invoices
Tool sequence:
SQUARE_LIST_LOCATIONS - Get location ID for filtering [Prerequisite]
SQUARE_LIST_INVOICES - List invoices for a location [Required]
SQUARE_GET_INVOICE - Get detailed invoice information [Optional]
SQUARE_CANCEL_INVOICE - Cancel a scheduled or unpaid invoice [Optional]
Key parameters:
location_id: Required for listing invoices
invoice_id: Required for get/cancel operations
cursor: Pagination cursor for list results
limit: Number of results per page
Pitfalls:
location_id is required for LIST_INVOICES; resolve via LIST_LOCATIONS first
- Only SCHEDULED, UNPAID, or PARTIALLY_PAID invoices can be cancelled
- CANCEL_INVOICE requires the invoice
version to prevent race conditions
- Cancelled invoices cannot be uncancelled
Common Patterns
ID Resolution
Location name -> Location ID:
1. Call SQUARE_LIST_LOCATIONS
2. Find location by name in response
3. Extract id field (e.g., 'L1234ABCD')
Order lookup:
1. Call SQUARE_SEARCH_ORDERS with location_ids and query filters
2. Extract order_id from results
3. Use order_id for RETRIEVE_ORDER or UPDATE_ORDER
Pagination
- Check response for
cursor field
- Pass cursor value in next request's
cursor parameter
- Continue until
cursor is absent or empty
- Use
limit to control page size
Date Range Filtering
- Use RFC 3339 format:
2024-01-01T00:00:00Z
- For payments:
begin_time and end_time parameters
- For orders: Use query filter with date_time_filter
- All timestamps are in UTC
Known Pitfalls
ID Formats:
- Location IDs are alphanumeric strings (e.g., 'L1234ABCD')
- Payment IDs and Order IDs are longer alphanumeric strings
- Always resolve location names to IDs before other operations
Versioning:
- UPDATE_ORDER and CANCEL_INVOICE require current
version field
- Fetch the resource first to get its current version
- Version mismatch returns a 409 Conflict error
Rate Limits:
- Square API has per-endpoint rate limits
- Implement backoff for bulk operations
- Pagination should include brief delays for large datasets
Response Parsing:
- Responses may nest data under
data key
- Money amounts are in smallest currency unit (cents for USD)
- Parse defensively with fallbacks for optional fields
Quick Reference
| Task |
Tool Slug |
Key Params |
| List payments |
SQUARE_LIST_PAYMENTS |
begin_time, end_time, location_id, cursor |
| Cancel payment |
SQUARE_CANCEL_PAYMENT |
payment_id |
| Search orders |
SQUARE_SEARCH_ORDERS |
location_ids, query, cursor |
| Get order |
SQUARE_RETRIEVE_ORDER |
order_id |
| Update order |
SQUARE_UPDATE_ORDER |
order_id, version |
| List locations |
SQUARE_LIST_LOCATIONS |
(none) |
| List invoices |
SQUARE_LIST_INVOICES |
location_id, cursor |
| Get invoice |
SQUARE_GET_INVOICE |
invoice_id |
| Cancel invoice |
SQUARE_CANCEL_INVOICE |
invoice_id, version |
Powered by Composio
1---2name: square-automation3description: Automate Square tasks via Rube MCP (Composio): payments, orders, invoices, locations. Always search tools first for current schemas.4---5
6# Square Automation via Rube MCP
7
8Automate Square payment processing, order management, and invoicing through Composio's Square toolkit via Rube MCP.
9
10**Toolkit docs**: [composio.dev/toolkits/square](https://composio.dev/toolkits/square)
11
12## Prerequisites
13
14- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
15- Active Square connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `square`
16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
17
18## Setup
19
20**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
21
22
231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `square`
253. If connection is not ACTIVE, follow the returned auth link to complete Square OAuth
264. Confirm connection status shows ACTIVE before running any workflows
27
28## Core Workflows
29
30### 1. List and Monitor Payments
31
32**When to use**: User wants to view payment history or check payment status
33
34**Tool sequence**:
351. `SQUARE_LIST_PAYMENTS` - Retrieve payments with optional filters [Required]
362. `SQUARE_CANCEL_PAYMENT` - Cancel a pending payment if needed [Optional]
37
38**Key parameters**:
39- `begin_time` / `end_time`: RFC 3339 timestamps for date range filtering
40- `sort_order`: 'ASC' or 'DESC' for chronological ordering
41- `cursor`: Pagination cursor from previous response
42- `location_id`: Filter payments by specific location
43
44**Pitfalls**:
45- Timestamps must be RFC 3339 format (e.g., '2024-01-01T00:00:00Z')
46- Pagination required for large result sets; follow `cursor` until absent
47- Only pending payments can be cancelled; completed payments require refunds
48- `SQUARE_CANCEL_PAYMENT` requires exact `payment_id` from list results
49
50### 2. Search and Manage Orders
51
52**When to use**: User wants to find orders by criteria or update order details
53
54**Tool sequence**:
551. `SQUARE_LIST_LOCATIONS` - Get location IDs for filtering [Prerequisite]
562. `SQUARE_SEARCH_ORDERS` - Search orders with filters [Required]
573. `SQUARE_RETRIEVE_ORDER` - Get full details of a specific order [Optional]
584. `SQUARE_UPDATE_ORDER` - Modify order state or details [Optional]
59
60**Key parameters**:
61- `location_ids`: Array of location IDs to search within (required for search)
62- `query`: Search filter object with date ranges, states, fulfillment types
63- `order_id`: Specific order ID for retrieve/update operations
64- `cursor`: Pagination cursor for search results
65
66**Pitfalls**:
67- `location_ids` is required for SEARCH_ORDERS; get IDs from LIST_LOCATIONS first
68- Order states include: OPEN, COMPLETED, CANCELED, DRAFT
69- UPDATE_ORDER requires the current `version` field to prevent conflicts
70- Search results are paginated; follow `cursor` until absent
71
72### 3. Manage Locations
73
74**When to use**: User wants to view business locations or get location details
75
76**Tool sequence**:
771. `SQUARE_LIST_LOCATIONS` - List all business locations [Required]
78
79**Key parameters**:
80- No required parameters; returns all accessible locations
81- Response includes `id`, `name`, `address`, `status`, `timezone`
82
83**Pitfalls**:
84- Location IDs are required for most other Square operations (orders, payments)
85- Always cache location IDs after first retrieval to avoid redundant calls
86- Inactive locations may still appear in results; check `status` field
87
88### 4. Invoice Management
89
90**When to use**: User wants to list, view, or cancel invoices
91
92**Tool sequence**:
931. `SQUARE_LIST_LOCATIONS` - Get location ID for filtering [Prerequisite]
942. `SQUARE_LIST_INVOICES` - List invoices for a location [Required]
953. `SQUARE_GET_INVOICE` - Get detailed invoice information [Optional]
964. `SQUARE_CANCEL_INVOICE` - Cancel a scheduled or unpaid invoice [Optional]
97
98**Key parameters**:
99- `location_id`: Required for listing invoices
100- `invoice_id`: Required for get/cancel operations
101- `cursor`: Pagination cursor for list results
102- `limit`: Number of results per page
103
104**Pitfalls**:
105- `location_id` is required for LIST_INVOICES; resolve via LIST_LOCATIONS first
106- Only SCHEDULED, UNPAID, or PARTIALLY_PAID invoices can be cancelled
107- CANCEL_INVOICE requires the invoice `version` to prevent race conditions
108- Cancelled invoices cannot be uncancelled
109
110## Common Patterns
111
112### ID Resolution
113
114**Location name -> Location ID**:
115```
1161. Call SQUARE_LIST_LOCATIONS
1172. Find location by name in response
1183. Extract id field (e.g., 'L1234ABCD')
119```
120
121**Order lookup**:
122```
1231. Call SQUARE_SEARCH_ORDERS with location_ids and query filters
1242. Extract order_id from results
1253. Use order_id for RETRIEVE_ORDER or UPDATE_ORDER
126```
127
128### Pagination
129
130- Check response for `cursor` field
131- Pass cursor value in next request's `cursor` parameter
132- Continue until `cursor` is absent or empty
133- Use `limit` to control page size
134
135### Date Range Filtering
136
137- Use RFC 3339 format: `2024-01-01T00:00:00Z`
138- For payments: `begin_time` and `end_time` parameters
139- For orders: Use query filter with date_time_filter
140- All timestamps are in UTC
141
142## Known Pitfalls
143
144**ID Formats**:
145- Location IDs are alphanumeric strings (e.g., 'L1234ABCD')
146- Payment IDs and Order IDs are longer alphanumeric strings
147- Always resolve location names to IDs before other operations
148
149**Versioning**:
150- UPDATE_ORDER and CANCEL_INVOICE require current `version` field
151- Fetch the resource first to get its current version
152- Version mismatch returns a 409 Conflict error
153
154**Rate Limits**:
155- Square API has per-endpoint rate limits
156- Implement backoff for bulk operations
157- Pagination should include brief delays for large datasets
158
159**Response Parsing**:
160- Responses may nest data under `data` key
161- Money amounts are in smallest currency unit (cents for USD)
162- Parse defensively with fallbacks for optional fields
163
164## Quick Reference
165
166| Task | Tool Slug | Key Params |
167|------|-----------|------------|
168| List payments | SQUARE_LIST_PAYMENTS | begin_time, end_time, location_id, cursor |
169| Cancel payment | SQUARE_CANCEL_PAYMENT | payment_id |
170| Search orders | SQUARE_SEARCH_ORDERS | location_ids, query, cursor |
171| Get order | SQUARE_RETRIEVE_ORDER | order_id |
172| Update order | SQUARE_UPDATE_ORDER | order_id, version |
173| List locations | SQUARE_LIST_LOCATIONS | (none) |
174| List invoices | SQUARE_LIST_INVOICES | location_id, cursor |
175| Get invoice | SQUARE_GET_INVOICE | invoice_id |
176| Cancel invoice | SQUARE_CANCEL_INVOICE | invoice_id, version |
177
178---
179*Powered by [Composio](https://composio.dev)*