Square Model Context Protocol Server
Enables integration with Apple Pay through Square's connect API, allowing for Apple Pay payment processing.
Provides comprehensive access to Square's API ecosystem, allowing for catalog management, order processing, payment handling, customer management, inventory tracking, subscription management, and other commerce operations through Square's platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Square Model Context Protocol Serverlist my recent orders from the last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Square Model Context Protocol Server (Beta)
This project follows the Model Context Protocol standard, allowing AI assistants to interact with Square's connect API.
Quick Start
Get up and running with the Square MCP server using npx:
# Basic startup
npx square-mcp-server start
# With environment configuration
ACCESS_TOKEN=YOUR_SQUARE_ACCESS_TOKEN SANDBOX=true npx square-mcp-server start
# local runs
npx /path/to/project/square-mcp-serverReplace YOUR_SQUARE_ACCESS_TOKEN with your actual Square access token. You can obtain your access token by following the guide at Square Access Tokens. You can also set environment variables before running the command.
Related MCP server: paystack-mcp-server
Remote MCP Server
Square now offers a hosted remote MCP server at:
https://mcp.squareup.com/sseThe remote MCP is recommended as it uses OAuth authentication, allowing you to log in with your Square account directly without having to create or manage access tokens manually.
Configuration Options
Environment Variable | Purpose | Example |
| Your Square API access token |
|
| Use Square sandbox environment |
|
| Use Square production environment |
|
| Restrict to read-only operations |
|
| Specify Square API version |
|
Integration with AI Assistants
Goose Integration
To configure the Square MCP Server with Goose:
Remote MCP
To install the Square remote MCP in Goose, click this URL on a computer where Goose is installed:
Or copy and paste the URL into your browser's address bar.
# Automatic installation
npx square-mcp-server install
# Get URL for manual installation
npx square-mcp-server get-goose-urlThe install command automatically updates your Goose configuration.
Claude Desktop Integration
For Claude Desktop integration, see the Model Context Protocol Quickstart Guide. Add this configuration to your claude_desktop_config.json:
Remote MCP
{
"mcpServers": {
"mcp_square_api": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.squareup.com/sse"]
}
}
}This approach allows you to authenticate directly with your Square account credentials without needing to manage access tokens.
Local MCP
{
"mcpServers": {
"mcp_square_api": {
"command": "npx",
"args": ["square-mcp-server", "start"],
"env": {
"ACCESS_TOKEN": "YOUR_SQUARE_ACCESS_TOKEN",
"SANDBOX": "true"
}
}
}
}Tool Reference
The Square MCP Server provides a streamlined set of tools for interacting with Square APIs:
Tool | Description | Primary Use |
| Discover methods available for a service | Exploration and discovery |
| Get detailed parameter requirements | Request preparation |
| Execute API calls to Square | Performing operations |
Service Catalog
Square MCP Server provides access to Square's complete API ecosystem. Check out the Square API Documentation for detailed information about each service:
Service | Description |
| Apple Pay integration |
| Bank account management |
| Custom attributes for bookings |
| Appointment booking management |
| Payment card management |
| Cash drawer management |
| Catalog management (items, categories, etc.) |
| Checkout and payment processing |
| Custom attributes for customers |
| Customer grouping |
| Customer segmentation |
| Customer management |
| Square device management |
| Payment dispute handling |
| Event tracking |
| Gift card activity tracking |
| Gift card management |
| Inventory tracking |
| Invoice management |
| Workforce management |
| Custom attributes for locations |
| Location management |
| Loyalty program management |
| Custom attributes for merchants |
| Merchant account management |
| Authentication |
| Custom attributes for orders |
| Order management |
| Payment processing |
| Payout management |
| Refund management |
| Website integration |
| Square Online Code integration |
| Subscription management |
| Staff management |
| Square Terminal management |
| Supplier management |
| Event notifications |
Usage Pattern
For optimal interaction with the Square API through MCP:
Discover: Use
get_service_infoto explore available methodsget_service_info(service: "catalog")Understand: Use
get_type_infoto learn parameter requirementsget_type_info(service: "catalog", method: "list")Execute: Use
make_api_requestto perform the operationmake_api_request(service: "catalog", method: "list", request: {})
Development and Debugging
Using MCP Inspector
The MCP Inspector provides a visual interface for testing:
# Build the project
npm run build
# Start the inspector with the Square MCP Server
npx @modelcontextprotocol/inspector node dist/index.js startDevelopment Workflow
Clone the repository
Install dependencies:
npm installStart development mode:
npm run watchRun the server:
node dist/index.js startTest your changes using the MCP Inspector
Contributing
This repository is auto-generated from Square's OpenAPI Specification. While contributions are welcome, please note that changes will need to be incorporated into the generator that produces this code. Please open an issue to discuss proposed changes before submitting a pull request.
Available Tools
3 toolsget_service_infoA
Get information about a Square API service. Call me before trying to get type info
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | The Square API service category (e.g., 'catalog', 'payments') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states this is a 'Get' operation (implying read-only) and establishes a prerequisite relationship with 'get_type_info'. However, it doesn't disclose other behavioral traits like authentication requirements, rate limits, error conditions, or what format the information returns. The description adds some context but leaves significant behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences. The first sentence states the core purpose, and the second provides crucial usage guidance. Every word earns its place with zero wasted text, making it front-loaded and efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage but no annotations and no output schema, the description provides adequate purpose and usage guidance. However, it doesn't explain what information is returned or address behavioral aspects like error handling. For a simple read operation, it's minimally complete but lacks details about the return format that would be helpful without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'service' parameter with its type and description. The description adds no additional parameter semantics beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'information about a Square API service', making the purpose evident. It distinguishes itself from 'get_type_info' by focusing on service-level information rather than type details. However, it doesn't specify what kind of information is retrieved (e.g., capabilities, endpoints, status), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: 'Call me before trying to get type info', indicating this tool should be used as a prerequisite for the sibling tool 'get_type_info'. This creates a clear workflow relationship and distinguishes it from 'make_api_request' by focusing on metadata rather than actual API calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_type_infoA
Get type information for a Square API method. You must call this before calling the make_api_request tool.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | The Square API service category (e.g., 'catalog', 'payments') | |
| method | Yes | The API method to call (e.g., 'list', 'create') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool's prerequisite nature, which is valuable context, but doesn't describe what 'type information' includes, potential error conditions, or response format. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences, both of which earn their place by stating the purpose and critical usage guideline. It's front-loaded with the core function and wastes no words, making it highly efficient for agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (prerequisite for API calls), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'type information' entails, how it's used with make_api_request, or what the return values look like. While it covers purpose and usage well, it leaves too many contextual gaps for a tool in this role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific details beyond what the schema provides, such as examples of valid service/method combinations or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get type information') and resource ('for a Square API method'), and distinguishes it from sibling tools by explicitly mentioning its prerequisite role before calling make_api_request. It uses precise language that leaves no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by stating 'You must call this before calling the make_api_request tool,' which clearly defines when to use this tool versus its sibling. It establishes a clear workflow dependency, making it easy for an agent to understand its contextual role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_api_requestC
Unified tool for all Square API operations. Be sure to get types before calling. Available services: applepay, bankaccounts, bookingcustomattributes, bookings, cards, cashdrawers, catalog, checkout, customercustomattributes, customergroups, customersegments, customers, devices, disputes, events, giftcardactivities, giftcards, inventory, invoices, labor, locationcustomattributes, locations, loyalty, merchantcustomattributes, merchants, oauth, ordercustomattributes, orders, payments, payouts, refunds, sites, snippets, subscriptions, team, terminal, vendors, webhooksubscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | The Square API service category (e.g., 'catalog', 'payments') | |
| method | Yes | The API method to call (e.g., 'list', 'create') | |
| request | No | The request object for the API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions getting types first but doesn't disclose critical behavioral traits like authentication needs, rate limits, error handling, or what the tool returns. For a general API tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise with two sentences, but the long list of services feels cluttered and could be structured better. It's front-loaded with the main purpose, but the list doesn't earn its place efficiently, reducing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a unified API tool with no annotations, no output schema, and nested objects, the description is incomplete. It lacks details on return values, error cases, and operational constraints, making it inadequate for such a broad-scope tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the three parameters (service, method, request). The description lists available services, adding some context beyond the schema, but doesn't explain parameter interactions or provide deeper semantics. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states this is a 'unified tool for all Square API operations' which provides a general purpose, but it's vague about what specific actions it performs. It lists available services but doesn't specify the verb (make requests) or distinguish it from sibling tools like get_service_info or get_type_info beyond being the main API caller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Be sure to get types before calling' which implies a prerequisite, but it doesn't explain when to use this tool versus alternatives or provide explicit guidance on context. No exclusions or clear alternatives are mentioned, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
get_service_info - First observed
get_type_info - First observed
make_api_request
TDQS
Each tool has a clearly distinct purpose with no overlap: get_service_info provides service metadata, get_type_info supplies method type details, and make_api_request handles all actual API calls. The descriptions explicitly state the sequential dependency between them, eliminating any confusion about when to use each tool.
All tools follow a consistent verb_noun pattern (get_service_info, get_type_info, make_api_request) with clear, descriptive names that reflect their specific functions. The naming is uniform and predictable across the entire set.
With only 3 tools, the count feels thin for covering the extensive Square API surface listed (over 40 services). While the tools are well-designed, the minimal number may force agents to rely heavily on a single make_api_request tool for all operations, which could be cumbersome for complex workflows.
The tool set provides complete coverage for the Square API domain through a unified request tool, with preparatory tools for service and type information. However, the reliance on a single generic API call tool may lack the granularity and error handling that dedicated tools for common operations (like create_order or get_payment) would offer, creating minor gaps in usability.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Directory of APIs, merchants, and tools AI agents can actually use.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to manage consignment and retail business operations through the ConsignCloud API, including inventory management, sales tracking, vendor accounts, and analytics.261GPL 3.0

paystack-mcp-serverofficial
AlicenseAqualityBmaintenanceEnables AI assistants to interact with the full range of Paystack APIs, allowing operations like transaction management, customer creation, and payments through natural language.23853MIT
Spreedly MCP Serverofficial
AlicenseAqualityAmaintenanceEnables AI assistants to manage payments via Spreedly API, including gateways, transactions, and payment method tokenization.3242610Apache 2.0- AlicenseBqualityDmaintenanceEnables AI agents to manage Paystack payments, products, customers, and transactions through natural language.28159MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ampcome-mcps/square-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server