Skip to main content

Square MCP Server — payments-v1 (payments, refunds, orders, catalog, customers, cards, disputes, webhooks) + billing-v1 (subscriptions, plans, invoices)

Project description

square-blade-mcp

Square MCP server — payments, refunds, orders, catalog, customers, cards, disputes, webhooks (payments-v1) and subscriptions, subscription plans, invoices (billing-v1). Implements both payments-v1 and billing-v1 Stallari contracts.

Token-efficient by default: pipe-delimited list rows, field selection, human-readable money, null-field omission. Write operations gated behind SQUARE_WRITE_ENABLED=true. Destructive operations (cancel, delete, disable, pause, resume, send invoice) require confirm=true.

Why not square/square-mcp-server?

Square's official server uses a "meta-tool" pattern: a single make_request tool that takes a method name and JSON args. That works for breadth but pushes parsing, output trimming, and error formatting onto the model — which burns tokens and removes any chance of structured guardrails.

Concern square/square-mcp-server square-blade-mcp
Tool surface 1 meta-tool 45 typed tools
Output Raw JSON Pipe-delim lists, formatted money, null-omitted
Write gates None SQUARE_WRITE_ENABLED env + confirm=true on destructive
PCI safety Caller's problem Card output limited to last_4/brand/exp/fingerprint
Credential scrubbing None Access tokens, app IDs, app secrets, bearer tokens scrubbed from errors
Webhook verification Multi-step Single square_verify_webhook tool
Idempotency Caller-supplied Auto-injected UUIDv4 if omitted, caller key preserved
Contract compliance N/A payments-v1 + billing-v1 (Stallari)

The two can coexist in the same Stallari catalog — square-mcp-server for breadth/escape-hatch, square-blade-mcp for the typical operator-driven flows.

Install

uv sync --group dev --group test

Configure

export SQUARE_ACCESS_TOKEN=EAAA...           # PAT from Square Developer Dashboard
export SQUARE_ENVIRONMENT=sandbox            # or "production"
export SQUARE_WRITE_ENABLED=true             # opt-in to writes (default: read-only)
export SQUARE_WEBHOOK_SIGNATURE_KEY=...      # optional, for webhook verification

Run

uv run square-blade-mcp                      # stdio (default)
SQUARE_MCP_TRANSPORT=http uv run square-blade-mcp   # HTTP on 127.0.0.1:8770

For HTTP transport, set SQUARE_MCP_API_TOKEN to require bearer auth.

Scope

payments-v1 (Required + Recommended + Optional + most Gated):

  • Payments: list / get / create / cancel / complete
  • Refunds: list / get / create
  • Customers: list / search / get / create / update / delete
  • Cards (on file): list / get / create / disable
  • Locations: list / get
  • Orders: get / search / create / update / pay
  • Catalog: list / get / inventory query
  • Disputes: list / get
  • Webhooks: list subs / create sub / delete sub / event types / single-call verify

billing-v1 (v0.2.0 — Square Subscriptions + Invoices APIs):

  • Subscriptions: list / get / create / update / cancel / pause / resume
  • Subscription plans: list / get / create (via Catalog SUBSCRIPTION_PLAN)
  • Invoices: list / get / create / send / cancel
  • Adjustments: refunds (re-used from payments-v1)
  • Discounts: catalog discount objects (re-used from payments-v1)

Honest gaps (declared via not_supported: in the manifest):

  • credit_balance, events, notifications, reports, preview_transaction, ip_addresses — Square has no equivalent
  • create_discount, replay_notification, simulate — gated ops outside this server's scope
  • payments-v1 gated extras still deferred: card_delete (use card_disable), payment_void, refund_unlinked, inventory_adjust

Deferred (roadmap):

  • v0.3.0 — OAuth (token exchange + refresh, scope mapping per [DD-154])
  • v0.4.0 — Bookings, Loyalty, Gift Cards

Development

make test         # unit tests
make check        # lint + format + type-check
make test-e2e     # requires SQUARE_E2E=1 + live sandbox creds

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

square_blade_mcp-0.2.0.tar.gz (119.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

square_blade_mcp-0.2.0-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file square_blade_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: square_blade_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 119.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for square_blade_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 fcc5b775e808a96ad001cf8442f3e47103b8bc5bd8908eb8febf4ae4d2cd883f
MD5 cca26ff2a36e287e412bff634b248463
BLAKE2b-256 60a7322a186ddf96aa368f5df29628b7e23735ba84227d7198d8ef8165005518

See more details on using hashes here.

Provenance

The following attestation bundles were made for square_blade_mcp-0.2.0.tar.gz:

Publisher: publish.yml on Groupthink-dev/square-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file square_blade_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for square_blade_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7ae27ddd2d81192cd4e221a3a65be57653882bba6e8d6dc43bd11767e298993
MD5 0524fb171da7a7d7e6a1dd1d1b89d9c0
BLAKE2b-256 1af8a90bb49923b584fdadc938f09ee842b70b7883731d70b9713b6e721c6d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for square_blade_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Groupthink-dev/square-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page