# How to integrate Square MCP with OpenClaw

```json
{
  "title": "How to integrate Square MCP with OpenClaw",
  "toolkit": "Square",
  "toolkit_slug": "square",
  "framework": "OpenClaw",
  "framework_slug": "openclaw",
  "url": "https://composio.dev/toolkits/square/framework/openclaw",
  "markdown_url": "https://composio.dev/toolkits/square/framework/openclaw.md",
  "updated_at": "2026-05-12T10:27:00.524Z"
}
```

## Introduction

OpenClaw is the fastest growing agent harness out there, which can work 24/7 to automate almost any kind of tasks. However, its capabilities are limited to the tools it has access to. Composio allows your OpenClaw to access Square with authentication management handled for you. You can execute actions on Square via your favorite OpenClaw interface (Telegram, WhatsApp, TUI, etc), whichever you prefer.

## Also integrate Square with

- [OpenAI Agents SDK](https://composio.dev/toolkits/square/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/square/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/square/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/square/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/square/framework/codex)
- [Hermes](https://composio.dev/toolkits/square/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/square/framework/cli)
- [Google ADK](https://composio.dev/toolkits/square/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/square/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/square/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/square/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/square/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/square/framework/crew-ai)

## TL;DR

### Why use Composio?
Apart from a managed and hosted MCP server, you will get:
- Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
- Handling Large tool responses out of LLM context to minimize context rot.
- Dynamic just-in-time access to 20,000 tools across 1000+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

## Connect Square to OpenClaw

### How to install Square with OpenClaw
### Using Composio API Key and Setup Prompt
- Go to [dashboard.composio.dev](https://dashboard.composio.dev/login?next=/~/org/connect/clients/openclaw&utm_source=toolkits&utm_medium=framework_template&utm_campaign=openclaw&utm_content=setup_prompt)
- Copy the setup prompt
- Run it in your OpenClaw chat interface.
- Authenticate Square from the [dashboard](https://dashboard.composio.dev/login?next=/~/org/connect/clients/openclaw&utm_source=toolkits&utm_medium=framework_template&utm_campaign=openclaw&utm_content=authenticate)
- Go back to your OpenClaw interface and start asking questions.
### Using OpenClaw/Composio Plugin
1. Install OpenClaw Composio plugin

```bash
openclaw plugins install @composio/openclaw-plugin
```

## What is the Square MCP server, and what's possible with it?

The Square MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Square account. It provides structured and secure access to your Square business tools, so your agent can perform actions like processing payments, managing invoices, tracking orders, handling customers, and managing inventory on your behalf.
- Seamless payment processing: Let your agent accept card payments, issue refunds, and manage transactions across your business locations.
- Automated invoice creation and management: Ask your agent to generate, send, and monitor invoices for your customers, streamlining your billing process.
- Order and fulfillment tracking: Enable your agent to view, update, and manage orders, helping you keep tabs on fulfillment and delivery status with ease.
- Customer profile management: Have your agent create, update, or search customer profiles, making it easier to personalize service and maintain up-to-date records.
- Inventory and item catalog control: Allow your agent to track stock levels, update item details, and organize your catalog for smooth retail operations.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SQUARE_ACCEPT_DISPUTE` | Accept Dispute | Accept a dispute and acknowledge liability, returning funds to the cardholder. When you accept a dispute, Square debits the disputed amount from your account and updates the dispute state to ACCEPTED. This action is irreversible - once accepted, a dispute cannot be challenged. Only use after reviewing all evidence and determining that challenging the dispute is not viable. Note: Requires DISPUTES_WRITE permission scope. |
| `SQUARE_ADD_GROUP_TO_CUSTOMER` | Add Group to Customer | Tool to add a customer to a customer group. Use when you need to associate a customer with a specific group for targeted marketing, loyalty programs, or customer segmentation. |
| `SQUARE_CALCULATE_ORDER` | Calculate Order | Tool to preview order pricing without creating an order. Use when you need to calculate the total cost, taxes, discounts, and other pricing details for an order before finalizing it. Particularly useful for integrating rewards, discounts, and complex pricing scenarios. |
| `SQUARE_CANCEL_INVOICE` | Cancel Invoice | Cancels a Square invoice, preventing further payments from being collected. Requirements: - Invoice must be in SCHEDULED, UNPAID, or PARTIALLY_PAID state - Cannot cancel invoices in DRAFT state or terminal states (PAID, REFUNDED, CANCELED, FAILED) - Requires INVOICES_WRITE and ORDERS_WRITE OAuth scopes - Version number must match the current invoice version to prevent conflicts After cancellation, the associated order status is set to CANCELED and webhook events are triggered. |
| `SQUARE_CANCEL_PAYMENT` | Cancel Payment | Cancels (voids) a payment that is in APPROVED status. This is typically used in delayed capture scenarios where a payment was authorized but not yet captured, allowing you to void the authorization before settlement. Important: Only payments with APPROVED status can be canceled. Attempting to cancel a payment in any other status (COMPLETED, PENDING, CANCELED, FAILED) will result in an error. Once canceled, the payment status changes to CANCELED and the card details status changes to VOIDED. Required permissions: PAYMENTS_WRITE |
| `SQUARE_CREATE_BULK_CUSTOMERS` | Create Bulk Customers | Tool to create multiple customer profiles in a single request. Use when you need to efficiently create up to 100 customers at once. Each customer is identified by a unique idempotency key. |
| `SQUARE_CREATE_CARD` | Create Card | Tool to create a card on file. Use when you need to securely store a customer's card for future payments. Requires a valid nonce or payment ID. |
| `SQUARE_CREATE_CUSTOMER` | Create Customer | Tool to create a new customer profile in Square. Use when you need to add a customer to the Square account. At least one of given_name, family_name, company_name, email_address, or phone_number is required. |
| `SQUARE_CREATE_CUSTOMER_CUSTOM_ATTRIBUTE_DEFINITION` | Create Customer Custom Attribute Definition | Tool to create a customer-related custom attribute definition. Use when you need to define a new custom attribute that can be applied to customer profiles. Custom attributes allow storing additional structured data on customers beyond the standard fields. |
| `SQUARE_CREATE_CUSTOMER_GROUP` | Create Customer Group | Tool to create a new customer group for a business. Use when you need to organize customers into groups for targeted marketing or segmentation. |
| `SQUARE_CREATE_DISPUTE_EVIDENCE_FILE` | Create Dispute Evidence File | Tool to upload a file as dispute evidence. Use when you need to attach supporting documents (PDF, image, etc.) to an existing dispute. Use after creating or retrieving a dispute. |
| `SQUARE_CREATE_DISPUTE_EVIDENCE_TEXT` | Create Dispute Evidence Text | Upload text evidence for a dispute challenge. Use this to submit textual information (up to 500 characters) that supports your case in a payment dispute. After uploading all evidence, you must call SubmitEvidence to finalize the dispute challenge. Endpoint: POST /v2/disputes/{dispute_id}/evidence-text |
| `SQUARE_CREATE_INVOICE_ATTACHMENT` | Create Invoice Attachment | Upload and attach a file to a Square invoice. Use this action to add supplementary documents (receipts, contracts, supporting documentation) to an existing invoice. Attachments can only be added to invoices in DRAFT, SCHEDULED, UNPAID, or PARTIALLY_PAID state. Square supports up to 10 attachments per invoice with a combined maximum size of 25 MB in production (1 KB in Sandbox). Supported file formats: GIF, JPEG, PNG, TIFF, BMP, PDF. Creating an attachment increments the invoice version and triggers an invoice.updated webhook event. |
| `SQUARE_CREATE_LOCATION` | Create Location | Tool to create a new business location in a Square account. Use when you need to add a new physical or mobile location for the merchant. |
| `SQUARE_CREATE_LOCATION_CUSTOM_ATTRIBUTE_DEFINITION` | Create Location Custom Attribute Definition | Tool to create a location-related custom attribute definition. Use when you need to define new custom attributes for Square location objects to store additional business-specific data. |
| `SQUARE_DELETE_CUSTOMER` | Delete Customer | Tool to delete a Square customer profile. Use when you need to permanently remove a customer record from Square. |
| `SQUARE_DELETE_CUSTOMER_CUSTOM_ATTRIBUTE` | Delete Customer Custom Attribute | Tool to delete a custom attribute from a customer profile. Use when you need to remove custom data associated with a specific customer. Requires the CUSTOMERS_WRITE OAuth permission scope. |
| `SQUARE_DELETE_CUSTOMER_CUSTOM_ATTRIBUTE_DEFINITION` | Delete Customer Custom Attribute Definition | Tool to delete a customer-related custom attribute definition. Use when you need to remove a custom attribute definition that is no longer needed. This action requires CUSTOMERS_WRITE permission. |
| `SQUARE_DELETE_CUSTOMER_GROUP` | Delete Customer Group | Tool to delete a customer group by its ID. Use when you need to permanently remove a customer group from Square. |
| `SQUARE_DELETE_CUSTOMERS_BULK` | Bulk Delete Customers | Tool to bulk delete customer profiles from Square. Use when you need to delete multiple customer profiles at once (1-100 customers per request). Each successful deletion returns an empty object; failed deletions include error details. Note that delete events trigger separate webhook notifications per customer. |
| `SQUARE_DELETE_DISPUTE_EVIDENCE` | Delete Dispute Evidence | Removes a specific piece of evidence from a dispute. Evidence that is removed will NOT be sent to the bank. This action requires the DISPUTES_WRITE permission scope. Important: You CANNOT remove evidence after it has been submitted to the bank using the SubmitEvidence endpoint. The deletion is permanent and cannot be undone. Use this when: - You need to remove evidence that was uploaded by mistake - You want to replace evidence with a better version (delete old, upload new) - The evidence is no longer relevant to the dispute case Prerequisites: - A valid dispute_id (obtain from list/retrieve disputes) - A valid evidence_id (obtain from list evidence or create evidence response) - The evidence must not have been submitted to the bank yet |
| `SQUARE_DELETE_INVOICE` | Delete Invoice | Tool to delete a Square invoice (only DRAFT invoices can be deleted). |
| `SQUARE_DELETE_INVOICE_ATTACHMENT` | Delete Invoice Attachment | Tool to delete an attachment from a Square invoice. Endpoint: DELETE /v2/invoices/{invoice_id}/attachments/{attachment_id} |
| `SQUARE_DELETE_LOCATION_CUSTOM_ATTRIBUTE` | Delete Location Custom Attribute | Tool to delete a custom attribute from a location. Use when you need to remove custom data associated with a specific business location. Requires the MERCHANT_PROFILE_WRITE OAuth permission scope. |
| `SQUARE_DELETE_LOCATION_CUSTOM_ATTRIBUTE_DEFINITION` | Delete Location Custom Attribute Definition | Tool to delete a location-related custom attribute definition. Once deleted, the custom attribute definition cannot be used to add custom attributes to locations. Use when you need to remove obsolete or incorrect custom attribute definitions from your Square account. |
| `SQUARE_DELETE_LOCATIONS_CUSTOM_ATTRIBUTES_BATCH` | Delete Locations Custom Attributes (Batch) | Tool to delete custom attributes from multiple locations in a single batch request. Use when you need to remove custom metadata from multiple business locations efficiently. To delete custom attributes owned by other applications, the attribute's visibility must be set to VISIBILITY_READ_WRITE_VALUES. |
| `SQUARE_DELETE_MERCHANT_CUSTOM_ATTRIBUTE` | Delete Merchant Custom Attribute | Tool to delete a custom attribute from a merchant profile. Use when you need to remove custom data associated with a specific merchant. Requires the MERCHANT_PROFILE_WRITE OAuth permission scope. |
| `SQUARE_DELETE_MERCHANT_CUSTOM_ATTRIBUTE_DEFINITION` | Delete Merchant Custom Attribute Definition | Tool to delete a merchant-related custom attribute definition. Once deleted, the custom attribute definition cannot be used to add custom attributes to merchants. Use when you need to remove obsolete or incorrect custom attribute definitions from your Square account. |
| `SQUARE_DELETE_MERCHANTS_CUSTOM_ATTRIBUTES_BATCH` | Delete Merchants Custom Attributes (Batch) | Tool to delete custom attributes from multiple merchants in a single batch request. Use when you need to remove custom metadata from merchant profiles efficiently. To delete custom attributes owned by other applications, the attribute's visibility must be set to VISIBILITY_READ_WRITE_VALUES. |
| `SQUARE_DELETE_WEBHOOK_SUBSCRIPTION` | Delete Webhook Subscription | Permanently deletes a webhook subscription by its ID. Once deleted, the subscription will no longer receive event notifications. This action cannot be undone. Note: Webhook subscriptions are application-level resources and require personal access token authentication (not OAuth tokens). |
| `SQUARE_GET_BUSINESS_BOOKING_PROFILE` | Get Business Booking Profile | Tool to retrieve the business booking profile for a Square merchant via GraphQL. Use when you need to check if bookings are enabled, view cancellation policies, or access booking configuration settings. This is an alpha feature. |
| `SQUARE_GET_CURRENT_MERCHANT` | Get Current Merchant | Tool to retrieve merchant information associated with the access token using Square's GraphQL API. Use when you need to obtain the merchant ID required for other GraphQL queries, or to get merchant details like business name, status, currency, and main location. |
| `SQUARE_GET_CUSTOMER_CUSTOM_ATTRIBUTE` | Get Customer Custom Attribute | Retrieves a custom attribute from a customer profile in Square. Use this when you need to access specific custom data associated with a customer, such as preferences, external IDs, or other merchant-defined information. Requires CUSTOMERS_READ permission. |
| `SQUARE_GET_CUSTOMERS_CUSTOM_ATTRIBUTE_DEFINITIONS` | Get Customer Custom Attribute Definition | Tool to retrieve a customer-related custom attribute definition from Square. Use when you need to fetch the schema, visibility, or metadata of a specific custom attribute definition by its key. |
| `SQUARE_GET_CUSTOMERS_GRAPHQL` | Get Customers via GraphQL | Tool to retrieve customer profiles from Square Customer Directory using GraphQL API. Use when you need to fetch customer information including name, contact details, and profile data for a specific merchant. Requires merchant ID filter. |
| `SQUARE_GET_DISPUTE_EVIDENCE` | Get Dispute Evidence | Retrieves detailed information about a specific piece of evidence that was uploaded for a dispute. Use this action to: - Get metadata about evidence (file details, upload time, evidence type) - Verify evidence was uploaded successfully - Review evidence details before submitting a dispute response Note: This returns metadata only, not the actual file content. To upload evidence, use the Create Dispute Evidence File or Create Dispute Evidence Text actions. Endpoint: GET /v2/disputes/{dispute_id}/evidence/{evidence_id} |
| `SQUARE_GET_INVOICE` | Get Invoice | Retrieves detailed information about a specific Square invoice by its ID. Returns the complete invoice object including payment requests, recipient details, accepted payment methods, custom fields, attachments, and current status. Use this when you need to view or verify invoice details for a known invoice ID. Required permission: INVOICES_READ |
| `SQUARE_GET_MERCHANT` | Get Merchant | Tool to retrieve detailed information about a specific Square merchant by ID. Use when you need to fetch merchant profile data including business name, country, currency, and main location ID. Use 'me' as the merchant_id to retrieve the currently authenticated merchant. |
| `SQUARE_GET_ONLINE_CHECKOUT_LOCATION_SETTINGS` | Get Online Checkout Location Settings | Tool to retrieve location-level settings for Square online checkout. Use when you need to get checkout configuration including customer notes, policies, branding, and tipping options for a specific location. |
| `SQUARE_LIST_CHANNELS` | List Channels | Tool to list requested channels from Square. Use when you need to retrieve channel information for a specific reference type, reference ID, or status. |
| `SQUARE_LIST_CUSTOMER_CUSTOM_ATTRIBUTE_DEFINITIONS` | List Customer Custom Attribute Definitions | Tool to list customer-related custom attribute definitions from Square. Use when you need to discover available custom attributes that can be attached to customer profiles. |
| `SQUARE_LIST_CUSTOMER_CUSTOM_ATTRIBUTE_DEFINITIONS_GRAPH_QL` | List Customer Custom Attribute Definitions (GraphQL) | Tool to retrieve customer custom attribute definitions via Square's GraphQL API. Use when you need to discover available custom attributes and their metadata for customer profiles. Alpha feature. |
| `SQUARE_LIST_CUSTOMER_CUSTOM_ATTRIBUTES` | List Customer Custom Attributes | Tool to list custom attributes for a customer profile. Use when you need to retrieve all custom data associated with a specific customer, including optional definitions that provide metadata about each attribute. |
| `SQUARE_LIST_CUSTOMER_GROUPS` | List Customer Groups | Tool to retrieve the list of customer groups of a business. Use when you need to discover customer group IDs or list all customer groups for segmentation and targeting purposes. |
| `SQUARE_LIST_CUSTOMERS` | List Customers | Tool to retrieve customer profiles associated with a Square account. Use when you need to list customers for CRM, reporting, or customer management purposes. Only returns profiles with public information (given_name, family_name, company_name, email_address, or phone_number). |
| `SQUARE_LIST_CUSTOMER_SEGMENTS` | List Customer Segments | Tool to retrieve the list of customer segments of a business. Use when you need to discover customer segment IDs for targeting or filtering customer groups in Square. |
| `SQUARE_LIST_DISPUTE_EVIDENCE` | List Dispute Evidence | Tool to list evidence items associated with a given dispute. Endpoint: GET /v2/disputes/{dispute_id}/evidence |
| `SQUARE_LIST_INVOICES` | List Invoices | Tool to list invoices for a Square location. |
| `SQUARE_LIST_LOCATION_CUSTOM_ATTRIBUTE_DEFINITIONS` | List Location Custom Attribute Definitions | Tool to list location-related custom attribute definitions from Square. Use when you need to discover available custom attributes that can be attached to location profiles. |
| `SQUARE_LIST_LOCATIONS` | List Locations | Tool to retrieve all business locations from a Square account. Use when you need to discover available location IDs for other Square API calls that require location_id parameter (like listing invoices or payments). |
| `SQUARE_LIST_LOCATIONS_CUSTOM_ATTRIBUTES` | List Locations Custom Attributes | Tool to list custom attributes for a specific location in Square. Use when you need to retrieve all custom attribute values associated with a particular location. |
| `SQUARE_LIST_MERCHANT_CUSTOM_ATTRIBUTE_DEFINITIONS` | List Merchant Custom Attribute Definitions | Tool to list merchant-related custom attribute definitions from Square. Use when you need to discover available custom attributes that can be attached to merchant profiles. |
| `SQUARE_LIST_MERCHANTS` | List Merchants | Tool to retrieve merchant account information associated with the access token. Use when you need to get merchant profile details including business name, country, currency, and main location ID. |
| `SQUARE_LIST_MERCHANTS_CUSTOM_ATTRIBUTES` | List Merchants Custom Attributes | Tool to list custom attributes for a specific merchant in Square. Use when you need to retrieve all custom attribute values associated with a particular merchant. |
| `SQUARE_LIST_PAYMENTS` | List Payments | Tool to list payments by location and time range to enable reconciliation and net sales reporting from Square POS. Use when you need to retrieve payment records for reporting, analytics, or reconciliation purposes. |
| `SQUARE_LIST_WEBHOOK_EVENT_TYPES` | List Webhook Event Types | Tool to list available webhook event types. Use when you need to discover event types before creating or updating a webhook subscription. |
| `SQUARE_LIST_WEBHOOK_SUBSCRIPTIONS` | List Webhook Subscriptions | List all webhook subscriptions owned by your application. Returns webhook subscriptions with their event types, notification URLs, and status. Supports filtering by enabled/disabled status, sorting by creation date, and pagination for large result sets. Note: Webhook subscriptions are application-level resources and require personal access token authentication (not OAuth tokens). |
| `SQUARE_REMOVE_GROUP_FROM_CUSTOMER` | Remove Group From Customer | Removes a customer from a customer group. Use this when you need to disassociate a customer from a specific group. Once removed, the customer will no longer be part of the group and won't receive group-specific benefits or targeting. |
| `SQUARE_RETRIEVE_BULK_CUSTOMERS` | Retrieve Bulk Customers | Tool to retrieve multiple customer profiles in a single request. Use when you need to efficiently fetch up to 100 customer profiles by their IDs. |
| `SQUARE_RETRIEVE_CHANNEL` | Retrieve Channel | Retrieve a Square channel by its ID. Channels represent different distribution points for catalog content, including physical locations and online platforms. Use this to get detailed information about a specific channel, including its status, associated references, and metadata. |
| `SQUARE_RETRIEVE_CHANNELS_BULK` | Bulk Retrieve Channels | Tool to bulk retrieve multiple Square channels by their IDs in a single request. Use when you need to fetch specific channels by their unique identifiers rather than listing all channels. |
| `SQUARE_RETRIEVE_CUSTOMER` | Retrieve Customer | Tool to retrieve detailed information about a specific Square customer by ID. Use when you need to fetch customer profile data including contact information, preferences, and group memberships. |
| `SQUARE_RETRIEVE_CUSTOMER_GROUP` | Retrieve Customer Group | Tool to retrieve a specific Square customer group by ID. Use when you need to fetch details about a customer group including its name and timestamps. |
| `SQUARE_RETRIEVE_CUSTOMER_SEGMENT` | Retrieve Customer Segment | Tool to retrieve a specific customer segment by its ID. Use when you need to get details about a customer segment including its name and timestamps. |
| `SQUARE_RETRIEVE_DISPUTE` | Retrieve Dispute | Tool to retrieve a Square dispute by ID. Endpoint: GET /v2/disputes/{dispute_id} |
| `SQUARE_RETRIEVE_LOCATION` | Retrieve Location | Tool to retrieve detailed information about a specific Square location by ID. Use when you need to get complete details about a specific location, including address, business hours, contact information, and capabilities. |
| `SQUARE_RETRIEVE_LOCATION_CUSTOM_ATTRIBUTE` | Retrieve Location Custom Attribute | Retrieves a custom attribute associated with a location in Square. Use this when you need to access specific custom data associated with a location, such as metadata, external IDs, or other merchant-defined information. |
| `SQUARE_RETRIEVE_LOCATION_CUSTOM_ATTRIBUTE_DEFINITION` | Retrieve Location Custom Attribute Definition | Tool to retrieve a location-related custom attribute definition. Use when you need to get the schema, visibility, and metadata for a custom attribute associated with locations. |
| `SQUARE_RETRIEVE_MERCHANT_CUSTOM_ATTRIBUTE` | Retrieve Merchant Custom Attribute | Retrieves a custom attribute associated with a merchant in Square. Use this when you need to access specific custom data associated with a merchant, such as metadata, external IDs, or other merchant-defined information. |
| `SQUARE_RETRIEVE_MERCHANT_CUSTOM_ATTRIBUTE_DEFINITION` | Retrieve Merchant Custom Attribute Definition | Tool to retrieve a merchant-related custom attribute definition from Square. Use when you need to fetch the schema, visibility, or metadata of a specific custom attribute definition by its key. |
| `SQUARE_RETRIEVE_MERCHANTS` | Retrieve Merchants | Tool to retrieve merchant information including status, main location details, and capabilities using Square's GraphQL API. Use when you need to fetch merchant profile data for specific merchant IDs. |
| `SQUARE_RETRIEVE_ORDER` | Retrieve Order | Retrieves detailed information about a specific Square order by its ID. Use this tool when you need to: - Fetch complete details of an order including line items, pricing, taxes, and discounts - Check order status and fulfillment information - View payment tenders and refunds associated with an order - Access order metadata and timestamps Requires: ORDERS_READ permission scope. |
| `SQUARE_RETRIEVE_PAYMENT_LINK` | Retrieve Payment Link | Retrieves a Square-hosted payment link by ID. Returns complete payment link details including the checkout URL, associated order ID, checkout options, pre-populated buyer data, and creation timestamps. Requires ORDERS_READ permission. |
| `SQUARE_RETRIEVE_TOKEN_STATUS` | Retrieve Token Status | Tool to retrieve information about an OAuth access token or personal access token. Use when you need to verify token validity, check token expiration, inspect authorized scopes, or validate merchant association before making API calls. |
| `SQUARE_RETRIEVE_WEBHOOK_SUBSCRIPTION` | Retrieve Webhook Subscription | Retrieve a Square webhook subscription by its ID. Returns subscription details including name, enabled status, event types, notification URL, and signature key. Note: Requires personal access token authentication with DEVELOPER_APPLICATION_WEBHOOKS_READ scope (OAuth tokens are not supported for webhook subscriptions). |
| `SQUARE_SEARCH_CUSTOMERS` | Search Customers | Tool to search customer profiles in Square Customer Directory. Use when you need to find customers by email, phone, creation date, or other filters. Returns paginated results with optional total count. |
| `SQUARE_SEARCH_ORDERS` | Search Orders | Tool to search orders across one or more Square locations with filters. Use when you need to find orders within a date range, by state, by customer, or other criteria. This is the primary way Square exposes 'list orders for a date range' functionality. |
| `SQUARE_SUBMIT_DISPUTE_EVIDENCE` | Submit Dispute Evidence | Submits evidence for a dispute to the cardholder's bank. IMPORTANT: You must upload evidence FIRST using CreateDisputeEvidenceText or CreateDisputeEvidenceFile before calling this endpoint. Once evidence is submitted, it cannot be modified or removed. The dispute state will change to PROCESSING after successful submission. Use this when: (1) You have uploaded all evidence files/text, (2) The dispute is in EVIDENCE_REQUIRED state, and (3) You are ready to finalize and send evidence to the bank before the due date. |
| `SQUARE_TEST_WEBHOOK_SUBSCRIPTION` | Test Webhook Subscription | Tests a webhook subscription by sending a test event to the configured notification URL. Use this to verify that your webhook endpoint is correctly receiving and processing Square events. The response includes the HTTP status code returned by your endpoint and the test payload that was sent. Useful after creating or updating a subscription to confirm proper integration. |
| `SQUARE_UPDATE_CUSTOMER` | Update Customer | Tool to update an existing Square customer profile. Use when you need to modify customer details like name, email, address, or phone number. Supports sparse updates: only include fields you want to change, null values will remove fields. Include the version field for optimistic concurrency control. |
| `SQUARE_UPDATE_CUSTOMER_CUSTOM_ATTRIBUTE_DEFINITION` | Update Customer Custom Attribute Definition | Tool to update a customer-related custom attribute definition in Square. Use when you need to modify the name, description, visibility, or schema of an existing custom attribute definition. Supports sparse updates: only include fields you want to change. Use the version parameter for optimistic concurrency control to prevent conflicting updates. |
| `SQUARE_UPDATE_CUSTOMER_GROUP` | Update Customer Group | Tool to update a customer group's information by its ID. Use when you need to modify the name or other attributes of an existing customer group in Square. |
| `SQUARE_UPDATE_CUSTOMERS_BULK` | Bulk Update Customers | Tool to update multiple customer profiles in a single batch operation. Use when you need to efficiently update 1-100 customer profiles at once. Each update request includes the customer ID as a key and the customer data to update as the value. Only modified fields need to be provided, and fields can be removed by setting them to null. Requires version number for optimistic concurrency control. |
| `SQUARE_UPDATE_LOCATION` | Update Location | Tool to update an existing business location in a Square account. Use when you need to modify location details like name, description, address, business hours, contact information, or social media profiles. |
| `SQUARE_UPDATE_LOCATION_CUSTOM_ATTRIBUTE_DEFINITION` | Update Location Custom Attribute Definition | Tool to update a location-related custom attribute definition in Square. Use when you need to modify the description, name, visibility, or schema of an existing location custom attribute definition. |
| `SQUARE_UPDATE_MERCHANT_CUSTOM_ATTRIBUTE_DEFINITION` | Update Merchant Custom Attribute Definition | Tool to update a merchant-related custom attribute definition in Square. Use when you need to modify the description, name, visibility, or schema of an existing merchant custom attribute definition. |
| `SQUARE_UPDATE_ONLINE_CHECKOUT_LOCATION_SETTINGS` | Update Online Checkout Location Settings | Tool to update location-level settings for Square online checkout. Use when you need to modify checkout configuration including customer notes, policies, branding, and tipping options for a specific location. Supports sparse updates: only include fields you want to change. |
| `SQUARE_UPDATE_ORDER` | Update Order | Updates an existing Square order by adding, modifying, or removing fields. Use for OPEN or DRAFT orders only (COMPLETED/CANCELED orders cannot be updated). Requires the current order version number for optimistic concurrency control - get this from retrieve/search order first. Supports sparse updates: only include fields you want to change. To remove fields, use fields_to_clear array with dot notation paths. Common use cases: adding line items, updating quantities, applying discounts/taxes, modifying fulfillment details, updating metadata. |
| `SQUARE_UPDATE_WEBHOOK_SUBSCRIPTION` | Update Webhook Subscription | Tool to update a Square webhook subscription. Use when you need to modify subscription settings such as name, enabled state, event types, notification URL, or API version of an existing webhook subscription. |
| `SQUARE_UPDATE_WEBHOOK_SUBSCRIPTION_SIGNATURE_KEY` | Update Webhook Subscription Signature Key | Tool to rotate the signature key for a webhook subscription. Use when you need to replace the current signature key for security purposes. |
| `SQUARE_UPSERT_CUSTOMER_CUSTOM_ATTRIBUTE` | Upsert Customer Custom Attribute | Tool to create or update a custom attribute for a customer profile. Use when you need to store custom data on a customer record, such as preferences, loyalty tiers, or external system IDs. The custom attribute key must match an existing custom attribute definition in the Square account. |
| `SQUARE_UPSERT_CUSTOMER_CUSTOM_ATTRIBUTES_BATCH` | Batch Upsert Customer Custom Attributes | Tool to create or update custom attributes for multiple customers in a single batch request. Use when you need to set custom data on customer profiles (e.g., preferences, loyalty tiers, tags). Supports 1 to 25 upsert operations per request. Before using this action, ensure the custom attribute definitions exist in your Square seller account. The custom attribute keys must match existing definitions. Use optimistic concurrency (version field) to prevent overwriting concurrent updates. Required permissions: CUSTOMERS_WRITE |
| `SQUARE_UPSERT_LOCATION_CUSTOM_ATTRIBUTE` | Upsert Location Custom Attribute | Tool to create or update a custom attribute for a location. Use when you need to store custom data on a location record, such as capacity limits, special features, or external system IDs. The custom attribute key must match an existing custom attribute definition in the Square account. |
| `SQUARE_UPSERT_LOCATIONS_CUSTOM_ATTRIBUTES_BATCH` | Batch Upsert Locations Custom Attributes | Tool to create or update custom attributes for multiple locations in a single batch request. Use when you need to set custom data on location records (e.g., store ratings, delivery zones, tags). Supports 1 to 25 upsert operations per request. Before using this action, ensure the custom attribute definitions exist in your Square seller account. The custom attribute keys must match existing definitions. Use optimistic concurrency (version field) to prevent overwriting concurrent updates. Required permissions: MERCHANT_PROFILE_WRITE |
| `SQUARE_UPSERT_MERCHANT_CUSTOM_ATTRIBUTE` | Upsert Merchant Custom Attribute | Tool to create or update a custom attribute for a merchant profile. Use when you need to store custom data on a merchant record, such as business notes, external system IDs, or configuration values. The custom attribute key must match an existing custom attribute definition in the Square account. |
| `SQUARE_UPSERT_MERCHANTS_CUSTOM_ATTRIBUTES_BATCH` | Batch Upsert Merchants Custom Attributes | Tool to create or update custom attributes for multiple merchants in a single batch request. Use when you need to set custom data on merchant profiles (e.g., business types, establishment dates, merchant categories). Supports 1 to 25 upsert operations per request. Before using this action, ensure the custom attribute definitions exist in your Square seller account. The custom attribute keys must match existing definitions. Use optimistic concurrency (version field) to prevent overwriting concurrent updates. Required permissions: MERCHANT_PROFILE_WRITE |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Square MCP server provides comprehensive access to Square operations through Composio. Once connected, you can perform all major Square actions directly from OpenClaw using natural language commands.

## Complete Code

None listed.

## Conclusion

### Conclusion
You've successfully integrated Square with OpenClaw using Composio plugin. Now interact with Square directly from your terminal, Web UI, or any messenger app using natural language commands.
Key benefits of this setup:
- Seamless integration across TUI, Web UIs, and Messenger apps like Telegram, WhatsApp, Slack, etc.
- Natural language commands for Square operations
- Managed authentication through Composio
- Access to 20,000+ tools across 1000+ apps for cross-app workflows
- Programmatic tool calling for complex tool chaining
Next steps:
- Try asking OpenClaw to perform various Square operations
- Explore cross-app workflows by connecting more toolkits like Calendar, Slack, Notion, etc.
- Build complex automation scripts that leverage OpenClaw's 24/7 running capabilities

## How to build Square MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/square/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/square/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/square/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/square/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/square/framework/codex)
- [Hermes](https://composio.dev/toolkits/square/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/square/framework/cli)
- [Google ADK](https://composio.dev/toolkits/square/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/square/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/square/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/square/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/square/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/square/framework/crew-ai)

## Related Toolkits

- [Addresszen](https://composio.dev/toolkits/addresszen) - Addresszen is a real-time address autocomplete and verification service. It helps capture accurate, deliverable addresses with instant suggestions and validation.
- [Asin data api](https://composio.dev/toolkits/asin_data_api) - Asin data api gives you detailed, real-time product data from Amazon, including price, rank, and reviews. Perfect for e-commerce pros and data-driven marketers who need instant marketplace insights.
- [Baselinker](https://composio.dev/toolkits/baselinker) - BaseLinker is an all-in-one e-commerce management platform connecting stores, marketplaces, carriers, and more. It streamlines order processing, inventory control, and automates your sales operations.
- [Bestbuy](https://composio.dev/toolkits/bestbuy) - Best Buy is a leading retailer offering APIs for product, store, and recommendation data. Instantly access up-to-date retail insights for smarter shopping and decision-making.
- [Btcpay server](https://composio.dev/toolkits/btcpay_server) - BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor. It lets merchants accept Bitcoin payments directly, cutting out middlemen and boosting privacy.
- [Cdr platform](https://composio.dev/toolkits/cdr_platform) - Cdr platform is an API for purchasing carbon dioxide removal services. It enables businesses to offset emissions by accessing verified carbon removal projects.
- [Cloudcart](https://composio.dev/toolkits/cloudcart) - CloudCart is an e-commerce platform for building and managing online stores. It helps businesses streamline product listings, orders, and customer engagement.
- [Countdown api](https://composio.dev/toolkits/countdown_api) - Countdown API gives you real-time, structured eBay product data, reviews, and seller feedback. Perfect for powering price monitoring, product research, or marketplace analytics workflows.
- [Dpd2](https://composio.dev/toolkits/dpd2) - Dpd2 is a robust email management platform for handling, sorting, and automating email workflows. Streamline your communications and boost productivity with advanced sorting, labeling, and response tools.
- [Finerworks](https://composio.dev/toolkits/finerworks) - FinerWorks is an online platform for fine art and photo printing services. Artists and photographers use it to order custom prints and manage print inventory efficiently.
- [Fingertip](https://composio.dev/toolkits/fingertip) - Fingertip is a business management platform for selling, booking, and customer engagement—all from a single link. It helps businesses streamline operations and connect with customers across social channels.
- [Fraudlabs pro](https://composio.dev/toolkits/fraudlabs_pro) - FraudLabs Pro is an online payment fraud detection service for e-commerce and merchants. It helps minimize chargebacks and revenue loss by detecting and preventing fraudulent transactions.
- [Gift up](https://composio.dev/toolkits/gift_up) - Gift Up! is a digital platform for selling, managing, and redeeming gift cards online. It streamlines promotions and gift card transactions for businesses and their customers.
- [Goody](https://composio.dev/toolkits/goody) - Goody is a gifting platform that lets users send gifts and physical products without handling logistics. It streamlines gifting by managing delivery, fulfillment, and recipient experience.
- [Gumroad](https://composio.dev/toolkits/gumroad) - Gumroad is a platform for selling digital products, physical goods, and memberships with a simple checkout and marketing tools. It streamlines creator payouts and helps you grow your audience effortlessly.
- [Instacart](https://composio.dev/toolkits/instacart) - Instacart is an online grocery delivery and pickup service platform. It lets you discover local retailers and create shoppable lists and recipes with ease.
- [Junglescout](https://composio.dev/toolkits/junglescout) - Junglescout is an Amazon product research and analytics platform for sellers. It delivers sales estimates, competitive insights, and optimization tools to boost your Amazon business.
- [Ko fi](https://composio.dev/toolkits/ko_fi) - Ko-fi is a platform that lets creators receive donations, memberships, and sales from fans. It helps creators monetize their work and grow their audience with minimal friction.
- [Lemon squeezy](https://composio.dev/toolkits/lemon_squeezy) - Lemon Squeezy is a payments and subscription platform built for software companies. It makes managing payments, taxes, and customer subscriptions effortless.
- [Loyverse](https://composio.dev/toolkits/loyverse) - Loyverse is a point-of-sale (POS) platform for small businesses, offering tools for sales, inventory, and customer loyalty. It helps streamline retail operations and boost customer engagement.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Square MCP?

With a standalone Square MCP server, the agents and LLMs can only access a fixed set of Square tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Square and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with OpenClaw?

Yes, you can. OpenClaw fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Square tools.

### Can I manage the permissions and scopes for Square while using Tool Router?

Yes, absolutely. You can configure which Square scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Square data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
