PushPress MCP Server
Members, classes, reservations and check-ins for your PushPress gym.
Hosted MCP Server
npx add-mcp 'https://cotlet.dev/mcp/v1/pushpress'Installs into Claude Code, Codex, Cursor and more
Documentation
Cotlet · Integrations · How it works · Security · For developers · For automation agencies · Blog · API docs · Help center · Changelog · Contact · Pricing · Sign up
PushPress API and MCP server: Let your AI agent handle the gym desk in PushPress.
PushPress has a Platform API and an SDK that runs as a local MCP server with an API key from Core, but neither can book, check in, switch or pause a plan, or cancel a class (SDK 1.15.0, checked 27 Oct 2026). Cotlet runs 14 PushPress tools hosted, over MCP for agents and REST for scripts, in your own Core staff login.
Members, classes, reservations and check-ins for your PushPress gym. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.
- Free 7-day trial, no card
- Unofficial, not affiliated with PushPress
- Page: https://cotlet.dev/integrations/pushpress-api-mcp-server
What can you automate in PushPress?
- Check in a class from the roster
- Book a member into a class
- Upgrade or downgrade a plan
- Pause a membership for injury or travel
- Review no-shows and late cancels
- Text the roster, then cancel the class
Does PushPress have an MCP server or an API?
- The SDK has 49 methods. Its writes create customers, invitations, webhooks and API keys; its email and SMS tools say "only first party apps can send".
- PushPress's own AI Assistant in Core (Pro and Max) books, checks in, pauses and cancels plans after a confirm, but it lives inside Core, has no MCP or API, and "cannot send emails, texts, or push notifications".
- Zapier has 8 triggers and 2 actions (Create a Person, Find Person); n8n has no PushPress node.
| What you need | API and SDK MCP | AI Assistant | Cotlet |
|---|---|---|---|
| Read members, classes, rosters | Yes, with an API key | Yes, in chat | Yes |
| Book, check in, remove from class | No | Yes, after a confirm | Yes |
| Switch, pause or cancel a plan | No | Yes, after a confirm | Yes, after your OK |
| Text a class, then cancel it | No, first party apps only | No | Yes, after your OK |
| Your own agent, on a schedule | Local server you run | Only inside Core | Hosted, any MCP client |
| PushPress plan | Any, key from Settings | Pro or Max | Any, Free included |
Checked 27 Oct 2026. Sources: PushPress SDK and MCP server (npm), PushPress AI Assistant, The 4 ways gym owners use the AI Assistant (PushPress blog, 19 May 2026), Zapier: PushPress triggers and actions
How does Cotlet connect to PushPress?
- Sign in to PushPress. Use your own account in its Cotlet Cloud Browser.
- Choose MCP or REST. Connect your agent or create a Cotlet API key.
- Run your workflow. Ask your agent or send an HTTP request.
We never keep your PushPress password, and no plan change, removed spot, class text or cancelled class goes through until you approve it.
Connect PushPress to your agent or workflow
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
- Enable PushPress for agents. Sign up, sign in to PushPress Core with your staff login in its Cloud Browser, then press Enable for agents.
- Add the Cotlet address. Paste https://cotlet.dev/mcp/v1 into your agent as an MCP server or connector.
- Approve the connection. Chat apps open a Cotlet sign-in. Editors, n8n and scripts take an API key from the console.
PushPress rides on the shared address https://cotlet.dev/mcp/v1 together with your other apps. If you enabled PushPress after connecting, refresh the connector to see its tools.
Claude:
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-pushpress \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT:
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor:
// ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-pushpress": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
}
Codex:
# ~/.codex/config.toml
[mcp_servers.cotlet-pushpress]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n:
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: pushpress_read
Make, Zapier:
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: pushpress_write
How to use the PushPress REST API
Create your Cotlet API key
Create a Cotlet API key with access to PushPress and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
Connect PushPress in Cotlet and enable it for agents. Account access: Your PushPress Core staff account (admin for plan changes and the No Show / Late Cancel report).
Make your first PushPress API request
REST:
curl "https://cotlet.dev/api/v1/pushpress/members?limit=5" \
-H "Authorization: Bearer $COTLET_API_KEY"
Read members and apply the operation limits
A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
Illustrative response excerpt:
{
"status": "success",
"app": "pushpress",
"tool": "list_members",
"result": {
"members": [
{
"member_id": "usr_8f2k41",
"name": "Jordan Reyes",
"plans": [
{
"plan_id": "pln_30917",
"name": "3x Week",
"status": "active",
"next_bill_date": "2026-11-01"
}
]
},
{
"member_id": "usr_2c77d9",
"name": "Alex Kim",
"plans": [
{
"plan_id": "pln_30455",
"name": "Unlimited",
"status": "alert",
"next_bill_date": "2026-10-15"
}
]
}
],
"next_cursor": null
}
}
Lists people in Core with the status of each plan: Active, Alert, Pending Active, Pending Cancel, Cancelled, Paused or Completed. Alert means a billing issue; class reservations are restricted for that plan.
Pages hold up to 100 people; pass next_cursor back as cursor for the next page.
limit: 1 to 100. Default: 50.
cursor: Next page cursor from the previous call.
Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.
PushPress workflows for agents and automations
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Classes on the calendar for a date range, with coach and reservation counts. Use list_classes in your configured private activity report. |
| Make | HTTP > Make a request | Members of one class grouped by status. Use get_class_roster in your configured private activity report. |
| Python or Node.js | REST API | Rows of the No Show / Late Cancel report for a date range. Use list_no_shows_late_cancels in your configured private activity report. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads PushPress; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
PushPress API endpoints and MCP tools
Classes, rosters and check-ins
Plan access rules apply to bookings and check-ins as they do at the desk. A check-in override lets a member in without charging them.
- List classes (
list_classes, read): Classes on the calendar for a date range, with coach and reservation counts. - Get class roster (
get_class_roster, read): Members of one class grouped by status. - Book class reservation (
book_class_reservation, write): Reserve a spot in a class for a member. - Check in member (
check_in_member, write): Check a member into a class, with or without a reservation. - Remove reservation (
remove_reservation, write, asks first): Remove a member's reservation or check-in from a class.
Members and plans
Switch Plan takes recurring plans only. No tool adds a new plan to a profile, so a class pack or hold fee stays a job in Core. Use an admin login for plan changes.
- List members (
list_members, read): People in your gym with their plans and plan status. - Get member (
get_member, read): Profile, plans with status and next bill date, and recent class activity. - List plan templates (
list_plan_templates, read): Plans you sell, with price and whether they are recurring. - Switch member plan (
switch_member_plan, write, asks first): Move a member from one recurring plan to another, now or at the next bill date. - Pause member plan (
pause_member_plan, write, asks first): Pause a member's plan and its billing. - Cancel member plan (
cancel_member_plan, write, asks first): Cancel a member's plan now or on a future date.
No-show report
The report can change for 24 to 48 hours after a class. Reading it charges nobody.
- List no-shows and late cancels (
list_no_shows_late_cancels, read): Rows of the No Show / Late Cancel report for a date range.
Class messages and cancels
PushPress tells nobody when a class is deleted, so the message goes out first. Core texts reach US and Canadian numbers only.
- Message class registrants (
message_class_registrants, write, asks first): Email or text the members registered in a class. - Cancel class (
cancel_class, write, asks first): Cancel one class, or this and future classes in its series.
Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/pushpress-api-mcp-server#tools
Who can see my PushPress session, and how do I revoke it?
- What we store. The signed-in Core profile, AES-256-GCM encrypted, kept in Finland. Never your password.
- What your agent gets. The 14 PushPress tools, not the session cookie.
- What the session sees. Whatever your Core role sees: members, plans, billing status, rosters, reports.
- What no tool touches. Charges, refunds, invoices, Stripe payouts, waivers, staff accounts.
- If you are signed out. You sign in to Core again yourself, in the same Cloud Browser.
- How to cut access. Disable for agents, reset the browser, or remove the staff login in Core.
Give the agent its own staff login if you want its check-ins and plan changes apart from yours in Core. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results); we have no SOC 2 report or third-party pentest yet.
Is it against PushPress's terms? Account safety
You shall not (and shall not authorize any third party to): ... access the Service by any means other than through the means provided by PushPress ... using any automated means (such as robots, botnets or scrapers) except with PushPress's prior written permission
PushPress Terms of Service, Permissions and Restrictions, effective 31 Jul 2025
PushPress may suspend or terminate an account that breaches the terms "in our sole discretion", and gives 30 days to get data out after notice. Cotlet works in Core with your own login, and PushPress could still call that automated means. The routes PushPress provides are the Platform API and its own AI Assistant. We found no public case of a gym account closed for automation (checked 27 Oct 2026).
How we keep your Core looking like your desk:
- Your gym's own Core staff account, signed in by you
- One Cloud Browser with a steady IP and cookies
- Plan changes, removed spots, class texts and cancels wait for your OK (6 tools)
- No tool charges, refunds or invoices a member
- If PushPress objects, we pause the PushPress tools for everyone within 24 h
A class text goes from your gym to every member booked, cannot be called back, and members cannot reply to a Core text. Read it before you approve.
What happens when PushPress changes?
- 12 h between tests of the PushPress reads
- 24 h between tests of writes a member would notice
- $0 for a call to a PushPress tool paused for repair
PushPress is reworking Core around AI in 2026 (the AI Assistant in Pro and Max, Member Intel in the Staff App in July). When a Core screen moves, we fix the tool and your agent keeps calling it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.
Approvals, undo and mistakes
- Finds the plan. A member with two live plans, or a plan in Alert, comes back to you first.
- Matches the target. Only a recurring plan can be switched to; a class pack is refused.
- Waits for your OK. The switch sits in your Cotlet console with timing, setup fee and discount.
- Reads it back. Pending Cancel and Pending Active, and the date the new price starts.
| Action | Undo |
|---|---|
| Book a reservation | Remove the reservation; billing is not touched |
| Check in a member | Remove the check-in from the class |
| Switch a plan | Switch back in Core; a used setup fee or restarted discount count stays |
| Pause a plan | Resume it in Core; unused days come back as credit |
| Cancel a plan | Fix it in Core by hand; a plan cancelled today ends access at once |
| Text the class | No, the message is out |
| Cancel a class | No, recreate it; reservations do not come back |
6 of 14 tools ask first. Booking and check-in run without asking, because no one else sees them and remove_reservation undoes both. You can turn the wait off per tool, or on for those two.
A switch with Now ends the current plan at once and puts prorated fees on the first new bill. A discount limited to a set number of payments restarts at 0.
MCP call:
{
"name": "switch_member_plan",
"arguments": {
"member_id": "usr_8f2k41",
"current_plan_id": "pln_30917",
"new_plan_template_id": "tpl_unlimited",
"when": "next_bill_date",
"waive_setup_fee": true
}
}
REST:
curl -X POST https://cotlet.dev/api/v1/pushpress/current-plans/pln_30917/members/usr_8f2k41/plan/switch \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"new_plan_template_id":"tpl_unlimited","when":"next_bill_date","waive_setup_fee":true}'
Response:
{
"member_id": "usr_8f2k41",
"current_plan": {
"plan_id": "pln_30917",
"name": "3x Week",
"status": "pending_cancel",
"ends_on": "2026-11-01"
},
"new_plan": {
"name": "Unlimited",
"status": "pending_active",
"starts_on": "2026-11-01",
"setup_fee": "0.00 USD"
},
"confirmation_email": "sent to member and admin"
}
A cron job or script calls the same tools over REST at /api/v1/pushpress, with the same key and the same price per call, for example a 5:45 roster pull before the first class. A switch Core refuses fails, and a failed call is free. Each tool in the table above shows its REST path.
How much does the PushPress MCP server cost?
About $24 a month for one gym's desk work in Core, 4,070 credits. Your PushPress plan stays as it is, Free included.
| Job | Calls | Credits |
|---|---|---|
| Check in the 6:00 class from the roster | 8 × 20 | 1,600 |
| Book a member from a text or DM | 3 × 12 | 360 |
| Weekly no-show and late cancel review | 7 × 4 | 280 |
| Switch a member to another plan | 4 × 4 | 160 |
| Pause a membership | 3 × 3 | 90 |
| Cancel a class and text the roster | 4 × 2 | 80 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 4,070 |
- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- Works on PushPress Free; the AI Assistant needs Pro ($159) or Max ($229)
PushPress blog posts put a group training gym at 100 to 200 members and 18 to 25 per class, so the month is our example: one morning class checked in each weekday, 12 bookings from texts, a weekly no-show pass, 4 switches, 3 pauses, 2 cancelled classes. Dollars at the $29 pack rate.
PushPress MCP server on GitHub, Zapier or hosted: which to use
| Option | What it does | Where it stops |
|---|---|---|
| 1nfernet/pushpress-mcp | A local MCP server for a member's own workouts, scores and leaderboards, 0 stars, pushed 12 Oct 2026. | Member login, read only, nothing for staff. |
| Roelzz/domcity_wrapper | Self-hosted wrapper for the member app that books when registration opens. | Member side, built for one gym. |
| ianjkaplan/pp-code-agent | A proof of concept agent that writes code against the PushPress API. | Same read-only API, last push 18 Jan 2026. |
| Zapier MCP for PushPress | Create a Person and Find Person as MCP tools. | Two actions, no classes or plans. |
We found no GitHub MCP server for gym staff. On Pro or Max, PushPress's own AI Assistant does most single desk jobs in a chat inside Core and is the official route. Cotlet is for the agent you already use, scheduled runs, the Free plan, and the class text and cancel the Assistant leaves to you.
Who runs Cotlet
Take Group sp. z o.o. runs Cotlet, a software company registered in Poland, EU (VAT PL6342984273), working since 2019 and founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the PushPress tools go to contact@cotlet.dev.
PushPress API and MCP: questions
How do I get access?
Create a free account at https://cotlet.dev, open PushPress under Integrations in the console and sign in to Core in its Cloud Browser. The trial starts when you sign up, no card asked.
How do I connect PushPress to ChatGPT or Claude?
Sign up at cotlet.dev, log in to PushPress once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your PushPress account through Cotlet, in their phone apps too.
What can ChatGPT do in PushPress?
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in PushPress: cancel a class and notify booked members; upgrade or downgrade a member plan; review no-shows and late cancels. You ask in plain words, and anything that reaches other people waits for your OK first.
Do I need an API key or a certain PushPress plan?
No. Cotlet works in your own Core staff account and does not use the Platform API key from Settings > Security & Access. Plan changes and the No Show / Late Cancel report are admin tasks in Core, so use an admin account for them.
Can it charge a no-show or late cancel fee?
No. PushPress does not charge no-show or late cancel fees automatically, and these tools do not either. list_no_shows_late_cancels only reads the report, so you or your agent can decide whom to follow up with.
Why not just use the PushPress AI Assistant?
Use it if you are on Pro or Max and happy to work inside Core. It cannot text members or cancel a class, and no outside agent or schedule can call it. Cotlet tools run from your own agent, n8n or a cron job, on any PushPress plan.
Does it work for members booking their own classes?
No. These tools work in the staff side of Core. Members keep booking in the PushPress member app.
Can the agent react to a new check-in or sign-up?
Cotlet has no PushPress trigger. Run your agent on a schedule, or use PushPress's Zapier triggers (New Check-In, Paused Subscription and others) to start it.
Is the MCP server different from the REST API?
Only in how you call it. Both have the same 14 tools, inputs, answers, API key and price. Agents speak MCP; scripts and HTTP steps call REST.
Is Cotlet affiliated with PushPress?
No. Cotlet is independent and not affiliated with PushPress, Inc.
Can I use the PushPress API without an AI agent?
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Give your AI agents your signed-in browser.
Product: Integrations · How it works · Pricing · Security
Resources: Blog · API docs · Help center · Changelog · GitHub
Solutions: For developers · For automation agencies
Company: About · AI info: company facts · Contact
Legal: Terms of service · Privacy policy · Refund policy · Acceptable use · Cookie policy · DPA · Subprocessors
Elsewhere: Status page · Cotlet on GitHub · Cotlet on X · Cotlet on LinkedIn · Cotlet on Product Hunt · Cotlet on Crunchbase · Cotlet on SaaSHub
Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. About us
Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.