Squadeal MCP server
Squadeal exposes a remote Model Context Protocol (MCP) server so an AI assistant — Claude, ChatGPT, or any MCP-compatible client — can create, update, and delete a deal on a user's behalf, without leaving the chat.
1. Get a token
Log in to Squadeal, go to your profile, and generate a token under "Connect Claude, ChatGPT & other AI tools." It's shown once — copy it somewhere safe. Anything created with the token is created as you.
2. Connect your client
Endpoint (Streamable HTTP, stateless — no session or SSE stream required):
https://www.squadeal.com/api/mcp
Authorization: Bearer YOUR_TOKENClaude Code
claude mcp add --transport http squadeal https://www.squadeal.com/api/mcp \
--header "Authorization: Bearer YOUR_TOKEN"Claude Desktop
Add an entry under mcpServers in your config:
{
"mcpServers": {
"squadeal": {
"url": "https://www.squadeal.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}For a stdio-only client, proxy through mcp-remote:
npx -y mcp-remote https://www.squadeal.com/api/mcp \
--header "Authorization: Bearer YOUR_TOKEN"Tools
list_deals — Lists deals the authenticated user owns or has joined, with their publicId, name, end date, and status.
No parameters.
create_deal — Creates a new deal owned by the authenticated user and returns its shareable URL.
| Field | Type | Description |
|---|---|---|
| name* | string | The name of the deal. |
| description | string | Optional description of the deal. Rendered as sanitized HTML, not plain text — use markup for a well-formatted result instead of one dense paragraph. Supported tags: <h2> for section headings, <p> for paragraphs, <ul>/<ol>/<li> for lists, <a href> for links, <strong>/<em> for emphasis, <br> for line breaks. |
| maxPeople* | integer > 0 | Maximum number of participants. |
| endDate* | string (ISO 8601 datetime) | When the deal closes. Must be in the future. |
| pricingTiers* | array of { people: integer >= 2, price: number > 0 } | At least one tier, at most 10. `people` (minimum 2 — a group discount needs more than one person) is the group size needed to unlock `price` per person. Prices must strictly decrease as `people` increases. When computing `price` from a fixed total cost, divide the total by `people` for each tier. |
| requireManualApproval | boolean | If true, new participants require manual approval before becoming active. Defaults to true. |
| venmoHandle | string | Venmo handle participants should pay. |
| zelleContact | string | Zelle contact participants should pay. |
update_deal — Updates an existing deal owned by the authenticated user. Only the fields you provide are changed. maxPeople and pricingTiers can't be changed after creation — that keeps pricing fair for people who already committed at a given tier; create a new deal instead if those need to change.
| Field | Type | Description |
|---|---|---|
| publicId* | string | The deal's publicId, from its shareable URL (e.g. squadeal.com/squad/<publicId>). |
| name | string | New name for the deal. |
| description | string | New description. Rendered as sanitized HTML, not plain text — use markup for a well-formatted result instead of one dense paragraph. Supported tags: <h2> for section headings, <p> for paragraphs, <ul>/<ol>/<li> for lists, <a href> for links, <strong>/<em> for emphasis, <br> for line breaks. |
| endDate | string (ISO 8601 datetime) | New end datetime. Must be in the future. |
| visibility | "PUBLIC" | "PRIVATE" | New visibility. |
| requireManualApproval | boolean | Whether new participants require manual approval before becoming active. |
| venmoHandle | string | New Venmo handle. |
| zelleContact | string | New Zelle contact. |
delete_deal — Permanently deletes a deal owned by the authenticated user. This cannot be undone and removes the deal for every participant.
| Field | Type | Description |
|---|---|---|
| publicId* | string | The deal's publicId, from its shareable URL (e.g. squadeal.com/squad/<publicId>). |
* required
Notes
- A token authenticates as the user who generated it — deals are created under their account.
- Revoke a token any time from your profile page; it takes effect immediately.
- The server is stateless — every request is independent, no session to keep alive.
- Each token is limited to 20 requests/minute and 300/day. Your profile page shows how many times a token has been used.
- You can have at most 25 active deals at once; delete one or wait for one to end before creating another.