Square

Approved for client workInterns may use it on client work, through the gateway.

What it is

Card payments and point of sale for cafés, shops, salons and food trucks. Square also holds the customer list, the item catalogue, stock counts, bookings and invoices.

How an agent connects

  1. Through the gateway (the default for client work). The owner presses "Connect Square" on their agents page, ticks what the agent may do, and signs in with Square. Square is asked only for the permissions those ticks need. We keep the sign-in in our vault; the agent gets a token and calls the square.* actions below.
  2. Square's own MCP server (Beta). Block hosts a remote server at https://mcp.squareup.com/mcp; the owner signs in to Square with OAuth. The same server runs locally from GitHub with an access token. Locally, DISALLOW_WRITES=true makes it read-only and SANDBOX=true points it at Square's sandbox. Use it for building and testing in the sandbox.
  3. Exports of sales, items and customers from the Square Dashboard.
  4. Zapier has a Square connector.

What agents may do

agent_access: write-with-approval. Our workflows read sales, orders, items, stock, customers and invoices. Some propose changes: a new price after a cost change, a counted stock level or a waste entry, a draft invoice from an approved list. Each change waits for the owner's approval. Payments, refunds, sending or publishing invoices, and customer deletions are done by a person.

Through the gateway

ActionWhat it doesHeld?
square.list_locationsLocations with their ids (other calls need them)No (read, logged)
square.list_paymentsPayments with amounts, times and status; no card detailsNo
square.list_ordersOrders for up to 10 locations, by date and state, with line itemsNo
square.list_catalogItems, their variations and pricesNo
square.inventory_countsStock counts for up to 100 variationsNo
square.list_customersCustomers with name, email and phoneNo
square.list_invoicesInvoices of one locationNo
square.update_item_priceChanges one variation's price, nothing elseAlways
square.adjust_inventoryRecords a physical count, or moves stock to wasteAlways
square.draft_invoiceCreates an order and a DRAFT invoice; Square sends nothing until the owner publishes itAlways

Reads are on when the owner connects; each change is off until the owner ticks it. Refunds, payments, publishing or cancelling invoices and deleting customers are refused by name (403 never_automated). Customer messages still go through gmail.draft and the held gmail.send. Examples are in docs/GATEWAY.md, "Business systems".

Watch out for

  • The server is in Beta. Test every tool in the sandbox before a live account.
  • We could not confirm which permissions the remote MCP server asks for at sign-in. Through the gateway, Square is asked only for what the owner ticked.
  • A physical count replaces Square's number. Square warns that a count you calculate yourself can miss sales made while a register was offline: send a count only when someone counted the shelf.
  • Customer phone numbers and emails are personal data; marketing messages need the customer's consent.
  • A wrong inventory adjustment changes stock counts and reorder decisions. A person checks each one before it is sent.

Used in workflows

Log in to see every workflow and skill linked to it.

Sources