MCP tools reference

Momence MCP tools

14 tools for Momence on the Cotlet MCP server. Your agent picks them from tools/list.

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your Momence staff account (permissions for classes, freezes, refunds and the Inbox decide what works)
Integration page
Momence
Momence Endpoints
Endpoint Access Description
momence_list_classes read Scheduled classes in a date range, with teacher, location, bookings and status.
momence_get_class_roster read Customers booked into a class and on its waitlist, with check-in status.
momence_search_customers read Find customers by name, email or phone, optionally by tag.
momence_get_customer read Profile, tags, notes, active subscriptions and packs, and upcoming bookings.
momence_list_customer_payments read Payments from the customer profile (Activity > Payments), newest first.
momence_create_class write One-off class or recurring series from a class template, like Classes > Schedule > New Class.
momence_cancel_class write Cancel one class. It stays on the customer schedule marked as cancelled.
momence_book_customer write Book a customer into a class, or add them to its waitlist.
momence_cancel_booking write Cancel a customer's booking in a class, with credit and notification choices.
momence_check_in_customer write Mark a booking as checked in, or undo the check-in.
momence_freeze_membership write Freeze a customer's subscription now or on a date, with an optional unfreeze date.
momence_cancel_membership_renewal write Cancel Renewal on a subscription now or at a scheduled date, so it expires instead of charging again.
momence_send_message write Message customers from the Momence Inbox by email, SMS or in-app message.
momence_refund_payment write Refund a payment as money or as Momence credits; the original purchase stays on record.

MCP tool momence_list_classes

Returns classes between two dates in start order, with teacher, location, booked count and whether the class is cancelled. Cancelled classes are hidden unless include_cancelled is true. Use class_id from each item in get_class_roster and the write tools.

Parameters

Parameters: list_classes
NameTypeDescription
from date First day. Default: today.
to date Last day. Default: 7 days from today.
teacher string Only classes taught by this teacher.
include_cancelled boolean Also return cancelled classes. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_list_classes",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "classes": [
      {
        "class_id": "9182736",
        "name": "Vinyasa Flow 60",
        "starts_at": "2026-10-15T19:00:00-07:00",
        "teacher": "Maya Lee",
        "location": "Studio A",
        "booked": 14,
        "capacity": 18,
        "status": "scheduled"
      }
    ]
  },
  "isError": false
}

MCP tool momence_get_class_roster

Returns booked customers and the waitlist for one class. Each booking has a booking_id for check_in_customer and cancel_booking, and its check-in status. Waitlisted customers have no booking_id.

Parameters

Parameters: get_class_roster
NameTypeDescription
class_id required string Class (session) ID from list_classes.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_get_class_roster",
    "arguments": {
      "class_id": "class_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "9182736",
    "bookings": [
      {
        "booking_id": "bk_204118",
        "customer_id": "cu_5521",
        "name": "Sam Rivera",
        "checked_in": false
      },
      {
        "booking_id": "bk_204119",
        "customer_id": "cu_5530",
        "name": "Jordan Pike",
        "checked_in": true
      }
    ],
    "waitlist": [
      {
        "customer_id": "cu_5544",
        "name": "Alex Moreau"
      }
    ]
  },
  "isError": false
}

MCP tool momence_search_customers

Returns matching customers with ID, name, email and tags. Use customer_id in get_customer, book_customer and list_customer_payments. Tags are the ones you set in Momence.

Parameters

Parameters: search_customers
NameTypeDescription
query string Name, email or phone.
tag string Only customers with this tag.
limit integer 1 to 100. Default: 25.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_search_customers",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customers": [
      {
        "customer_id": "cu_5530",
        "name": "Jordan Pike",
        "email": "jordan@example.com",
        "tags": [
          "teacher-training"
        ]
      }
    ]
  },
  "isError": false
}

MCP tool momence_get_customer

Returns one customer profile with notes, active subscriptions and packs, and upcoming bookings. Subscription IDs from here go into freeze_membership and cancel_membership_renewal.

Parameters

Parameters: get_customer
NameTypeDescription
customer_id required string Customer ID from search_customers.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_get_customer",
    "arguments": {
      "customer_id": "customer_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customer_id": "cu_5530",
    "name": "Jordan Pike",
    "email": "jordan@example.com",
    "tags": [
      "teacher-training"
    ],
    "notes": [
      "Prefers the back row."
    ],
    "memberships": [
      {
        "membership_id": "sub_77120",
        "name": "Unlimited Monthly",
        "status": "active",
        "renews_on": "2026-11-05"
      }
    ],
    "upcoming_bookings": [
      {
        "booking_id": "bk_204119",
        "class_id": "9182736",
        "starts_at": "2026-10-15T19:00:00-07:00"
      }
    ]
  },
  "isError": false
}

MCP tool momence_list_customer_payments

Returns the payments listed under Activity > Payments on the customer profile, newest first. Use payment_id in refund_payment.

Parameters

Parameters: list_customer_payments
NameTypeDescription
customer_id required string Customer ID from search_customers.
since date Only payments on or after this date.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_list_customer_payments",
    "arguments": {
      "customer_id": "customer_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "payments": [
      {
        "payment_id": "pay_330917",
        "date": "2026-10-04",
        "description": "Drop-in: Vinyasa Flow 60",
        "amount": 25,
        "currency": "USD",
        "refunded": false
      }
    ]
  },
  "isError": false
}

Create class

write

MCP tool momence_create_class

Creates one class, or a series when repeat_every_days is set, from an existing class template. Returns the new class IDs and the first dates. With as_draft the classes stay hidden from customers. It reaches no one until published and is undone with cancel_class, so it runs without asking.

Parameters

Parameters: create_class
NameTypeDescription
template required string Class template name; holds the class name and description.
teacher required string Teacher name.
location required string Location name, in person or online.
starts_at required datetime First class, ISO 8601 with time zone.
duration_minutes required integer Length of each class.
repeat_every_days integer Days between classes for a recurring series, e.g. 7. Omit for a one-off class.
end_date date Last date of the series. Without it the series keeps scheduling itself.
as_draft boolean Save unpublished, hidden from customers. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_create_class",
    "arguments": {
      "template": "Vinyasa Flow 60",
      "teacher": "Maya Lee",
      "location": "Studio A",
      "starts_at": "2026-10-15T19:00:00-07:00",
      "duration_minutes": 60,
      "repeat_every_days": 7,
      "end_date": "2026-12-31"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "series_id": "ser_48213",
    "classes_created": 12,
    "first_class_id": "9182736",
    "status": "published",
    "next_classes": [
      "2026-10-15T19:00:00-07:00",
      "2026-10-22T19:00:00-07:00"
    ]
  },
  "isError": false
}

Cancel class

write Confirm

MCP tool momence_cancel_class

Cancels one class. It stays on the schedule marked as cancelled, and Momence emails every registered customer its cancellation template, with your optional note in it. Returns how many customers were notified. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_class
NameTypeDescription
class_id required string Class (session) ID from list_classes.
note string Optional note added to the cancellation email.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_cancel_class",
    "arguments": {
      "class_id": "9182736",
      "note": "Maya is unwell today. Your credit is back on your account, and the 9am Vinyasa has spots."
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "9182736",
    "status": "cancelled",
    "customers_notified": 14
  },
  "isError": false
}

Book customer

write Confirm

MCP tool momence_book_customer

Adds a customer to a class, or to its waitlist when waitlist is true. Returns the booking_id, or the waitlist position. The customer gets Momence's usual booking notice. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: book_customer
NameTypeDescription
class_id required string Class (session) ID from list_classes.
customer_id required string Customer ID from search_customers.
waitlist boolean Add to the waitlist instead of booking. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_book_customer",
    "arguments": {
      "class_id": "class_8c41d2",
      "customer_id": "customer_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "9182736",
    "customer_id": "cu_5544",
    "status": "booked",
    "booking_id": "bk_204130"
  },
  "isError": false
}

Cancel booking

write Confirm

MCP tool momence_cancel_booking

Cancels one customer's booking, the same as Cancel booking next to the customer in the class. You choose whether to credit the customer, whether to notify them and whether it counts as a late cancellation. Late-cancellation charges follow your Cancellation Policy setting. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_booking
NameTypeDescription
booking_id required string Booking ID from get_class_roster.
credit_customer boolean Return the class credit to the customer.
notify_customer boolean Send the customer a cancellation notice.
late_cancel boolean Mark it as a late cancellation.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_cancel_booking",
    "arguments": {
      "booking_id": "booking_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_id": "bk_204118",
    "status": "cancelled",
    "credited": true,
    "notified": true,
    "late_cancel": false
  },
  "isError": false
}

MCP tool momence_check_in_customer

Marks one booking as checked in, or not checked in when checked_in is false. It reaches no one and is undone in one call, so it runs without asking.

Parameters

Parameters: check_in_customer
NameTypeDescription
booking_id required string Booking ID from get_class_roster.
checked_in boolean false undoes the check-in. Default: true.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_check_in_customer",
    "arguments": {
      "booking_id": "booking_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_id": "bk_204118",
    "checked_in": true
  },
  "isError": false
}

Freeze membership

write Confirm

MCP tool momence_freeze_membership

Freezes a subscription now or from a date, and unfreezes it on unfreeze_on if set. Momence cancels all the customer's future bookings made with that subscription. The renewal date moves forward by the frozen days unless Preserve Payment Schedule is on. Needs a staff account allowed to freeze. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: freeze_membership
NameTypeDescription
membership_id required string Membership (subscription) ID from get_customer.
freeze_from date Start of the freeze. Default: now.
unfreeze_on date Scheduled unfreeze date.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_freeze_membership",
    "arguments": {
      "membership_id": "sub_77120",
      "freeze_from": "2026-11-01",
      "unfreeze_on": "2026-11-30"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "membership_id": "sub_77120",
    "status": "freeze_scheduled",
    "freeze_from": "2026-11-01",
    "unfreeze_on": "2026-11-30",
    "future_bookings_cancelled": 2
  },
  "isError": false
}

MCP tool momence_cancel_membership_renewal

Stops a subscription from renewing now or at cancel_at. Some memberships need a minimum number of renewals first, and cancelling a main membership also cancels the renewals of its linked membership. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_membership_renewal
NameTypeDescription
membership_id required string Membership (subscription) ID from get_customer.
cancel_at datetime Scheduled cancellation. Default: now.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_cancel_membership_renewal",
    "arguments": {
      "membership_id": "membership_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "membership_id": "sub_77120",
    "status": "renewal_cancelled",
    "cancels_at": "2026-11-05T00:00:00-08:00"
  },
  "isError": false
}

Send message

write Confirm

MCP tool momence_send_message

Sends one message from Home > Inbox to one or more customers by email, SMS or in-app. A message to several customers does not reach those who unsubscribed; a one-to-one message does. Sending to 75 or more email recipients needs the Marketing Suite, and SMS is billed in segments. In-app messages show only if the customer enabled notifications. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: send_message
NameTypeDescription
customer_ids required string[] Customer IDs from search_customers or get_class_roster.
channel required enum email, sms or in_app.
body required string Message text.
subject string Email subject. Email only.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_send_message",
    "arguments": {
      "customer_ids": [
        "customer ids"
      ],
      "channel": "email",
      "body": "body"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "channel": "sms",
    "recipients": 14,
    "delivered_to_provider": 14,
    "skipped_unsubscribed": 0
  },
  "isError": false
}

Refund payment

write Confirm

MCP tool momence_refund_payment

Refunds one payment from the customer profile, as money back to the card or as Momence credits. The original purchase stays on record with a separate refund entry. Needs a staff account allowed to refund. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: refund_payment
NameTypeDescription
payment_id required string Payment ID from list_customer_payments.
refund_to required enum money or credits.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "momence_refund_payment",
    "arguments": {
      "payment_id": "payment_8c41d2",
      "refund_to": "money"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "payment_id": "pay_330917",
    "refunded_to": "credits",
    "amount": 25,
    "currency": "USD",
    "status": "refunded"
  },
  "isError": false
}