mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-17 22:24:21 +01:00
253 lines
7.3 KiB
Markdown
253 lines
7.3 KiB
Markdown
---
|
|
title: Square MCP Extension
|
|
description: Add the Square API as a Goose Extension
|
|
---
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
|
|
|
|
<YouTubeShortEmbed videoUrl="https://www.youtube.com/embed/ynoXx8aBP-4" />
|
|
|
|
This tutorial will get you started with the [open-source Square MCP Server](https://github.com/square/square-mcp-server) as a Goose extension to enable interactive work for your Square seller account!
|
|
|
|
|
|
:::tip TLDR
|
|
|
|
**Command**
|
|
```sh
|
|
npx -y square-mcp-server start
|
|
```
|
|
|
|
**Environment Variables**
|
|
```
|
|
ACCESS_TOKEN: <YOUR_API_KEY>
|
|
SANDBOX: <true/false>
|
|
PRODUCTION: <true/false>
|
|
```
|
|
|
|
Note that you'll use `SANDBOX` -or- `PRODUCTION`, not both, and your `ACCESS_TOKEN` will either be a sandbox or production token, depending on which environment you choose.
|
|
:::
|
|
|
|
## Configuration
|
|
|
|
:::info
|
|
Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`.
|
|
:::
|
|
|
|
<Tabs groupId="interface">
|
|
<TabItem value="ui" label="Goose Desktop" default>
|
|
1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=square-mcp-server%20start&id=square-mcp&name=Square%20MCP%20Server&description=Square%20MCP%20Server&env=ACCESS_TOKEN%3DYour%20Access%20Token&env=SANDBOX%3Dtrue)
|
|
2. Press `Yes` to confirm the installation
|
|
3. Get your [Square Access Token](https://developer.squareup.com/apps) and paste it in
|
|
4. Keep `SANDBOX` as the environment variable, or change to `PRODUCTION`, and set its value to `true`
|
|
5. Click `Save Configuration`
|
|
6. Scroll to the top and click `Exit` from the upper left corner
|
|
</TabItem>
|
|
<TabItem value="cli" label="Goose CLI">
|
|
1. Run the `configure` command:
|
|
```sh
|
|
goose configure
|
|
```
|
|
|
|
1. Choose to add a `Command-line Extension`
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◆ What type of extension would you like to add?
|
|
│ ○ Built-in Extension
|
|
// highlight-start
|
|
│ ● Command-line Extension (Run a local command or script)
|
|
// highlight-end
|
|
│ ○ Remote Extension
|
|
└
|
|
```
|
|
|
|
1. Give your extension a name
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◇ What type of extension would you like to add?
|
|
│ Command-line Extension
|
|
│
|
|
// highlight-start
|
|
◆ What would you like to call this extension?
|
|
│ square-mcp
|
|
// highlight-end
|
|
└
|
|
```
|
|
|
|
1. Enter the command
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◇ What type of extension would you like to add?
|
|
│ Command-line Extension
|
|
│
|
|
◇ What would you like to call this extension?
|
|
│ square-mcp
|
|
│
|
|
// highlight-start
|
|
◆ What command should be run?
|
|
│ npx -y square-mcp-server start
|
|
// highlight-end
|
|
└
|
|
```
|
|
|
|
1. Enter the number of seconds Goose should wait for actions to complete before timing out. Default is 300s
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◇ What type of extension would you like to add?
|
|
│ Command-line Extension
|
|
│
|
|
◇ What would you like to call this extension?
|
|
│ square-mcp
|
|
│
|
|
◇ What command should be run?
|
|
│ npx -y square-mcp-server start
|
|
│
|
|
// highlight-start
|
|
◆ Please set the timeout for this tool (in secs):
|
|
│ 300
|
|
// highlight-end
|
|
│
|
|
└
|
|
```
|
|
|
|
1. Choose to add a description. If you select "Yes" here, you will be prompted to enter a description for the extension.
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◇ What type of extension would you like to add?
|
|
│ Command-line Extension
|
|
│
|
|
◇ What would you like to call this extension?
|
|
│ square-mcp
|
|
│
|
|
◇ What command should be run?
|
|
│ npx -y square-mcp-server start
|
|
│
|
|
◆ Please set the timeout for this tool (in secs):
|
|
│ 300
|
|
│
|
|
// highlight-start
|
|
◇ Would you like to add a description?
|
|
│ No
|
|
// highlight-end
|
|
│
|
|
└
|
|
```
|
|
|
|
1. Obtain a [Square Access Token](https://developer.squareup.com/apps) and paste it in.
|
|
```sh
|
|
┌ goose-configure
|
|
│
|
|
◇ What would you like to configure?
|
|
│ Add Extension
|
|
│
|
|
◇ What type of extension would you like to add?
|
|
│ Command-line Extension
|
|
│
|
|
◇ What would you like to call this extension?
|
|
│ square-mcp
|
|
│
|
|
◇ What command should be run?
|
|
│ npx -y square-mcp-server start
|
|
│
|
|
◇ Please set the timeout for this tool (in secs):
|
|
│ 300
|
|
│
|
|
◇ Would you like to add a description?
|
|
│ No
|
|
│
|
|
// highlight-start
|
|
◆ Would you like to add environment variables?
|
|
│ Yes
|
|
│
|
|
◇ Environment variable name:
|
|
│ ACCESS_TOKEN
|
|
│
|
|
◇ Environment variable value:
|
|
│ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
|
|
│
|
|
◇ Add another environment variable?
|
|
│ Yes
|
|
│
|
|
◇ Environment variable name:
|
|
│ SANDBOX
|
|
│
|
|
◇ Environment variable value:
|
|
│ true
|
|
// highlight-end
|
|
└ Added square-mcp extension
|
|
```
|
|
:::info
|
|
Change the `SANDBOX` key to `PRODUCTION` if using a production token
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Example Usage
|
|
|
|
The Square MCP server allows you to interact with Square's connect API with an extensive [service catalog](https://github.com/square/square-mcp-server?tab=readme-ov-file#service-catalog) to access the Square API ecosystem.
|
|
|
|
#### Goose Prompt
|
|
|
|
```
|
|
( O)> Find my food menu from the following image and import these into my Square seller account. "my-burger-menu.png"
|
|
```
|
|
|
|
[Here's the menu image used in the demo.](../assets/guides/square-mcp-goosin-menu.png)
|
|
|
|
#### Goose Output
|
|
|
|
```
|
|
I'll help you import these menu items into your Square catalog. I'll use the Square API to create catalog items for each burger. Let me break this down into steps:
|
|
|
|
1. First, I'll check the catalog API service info and types
|
|
2. Then I'll create catalog items for each burger
|
|
|
|
Now let me check the type info for creating catalog objects
|
|
|
|
Now I'll start creating catalog items for each burger in your menu. I'll create them one by one using the catalog API. Let me process each burger:
|
|
|
|
(output truncated)
|
|
|
|
I've successfully created all the burger items from your menu in your Square catalog. Each burger has been added with:
|
|
|
|
- The exact name from your menu
|
|
- The full description
|
|
- The correct price
|
|
- A standard variation for ordering
|
|
|
|
Here's a summary of what was created:
|
|
- The Classic - $10.00
|
|
- Cheeseburger - $11.00
|
|
- Primetime Burger - $12.00
|
|
- Double Bacon - $14.00
|
|
- Texas Meatlover - $12.50
|
|
- Buffalo Burger - $12.00
|
|
- The Atomic - $12.50
|
|
- Little Bird - $11.00
|
|
- Mushroom Burger - $10.00
|
|
|
|
All items are now available in your Square catalog and ready for use in your point of sale system. Each burger includes its complete description and comes with a "Regular" variation at the specified price. The items are set as both sellable and stockable by default, and they're available at all locations.
|
|
```
|