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_CONNECTIONSwith toolkitsquare - •Always call
RUBE_SEARCH_TOOLSfirst 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_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitsquare - •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
cursoruntil absent - •Only pending payments can be cancelled; completed payments require refunds
- •
SQUARE_CANCEL_PAYMENTrequires exactpayment_idfrom 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_idsis required for SEARCH_ORDERS; get IDs from LIST_LOCATIONS first - •Order states include: OPEN, COMPLETED, CANCELED, DRAFT
- •UPDATE_ORDER requires the current
versionfield to prevent conflicts - •Search results are paginated; follow
cursoruntil 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
statusfield
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_idis required for LIST_INVOICES; resolve via LIST_LOCATIONS first - •Only SCHEDULED, UNPAID, or PARTIALLY_PAID invoices can be cancelled
- •CANCEL_INVOICE requires the invoice
versionto 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
cursorfield - •Pass cursor value in next request's
cursorparameter - •Continue until
cursoris absent or empty - •Use
limitto control page size
Date Range Filtering
- •Use RFC 3339 format:
2024-01-01T00:00:00Z - •For payments:
begin_timeandend_timeparameters - •For orders: Use query filter with date_time_filter
- •All timestamps