Momence MCP by usefulapi

Look up Momence members, class schedules, bookings and memberships, and handle front-desk actions.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'momence_list_member_session_bookings' name length outside 3-30 rangein momence_list_member_session_bookings
  • LOWTool 'momence_list_member_appointments' name length outside 3-30 rangein momence_list_member_appointments
  • LOWTool 'momence_list_member_memberships' name length outside 3-30 rangein momence_list_member_memberships

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,686Tokens (tool definitions)
~1.9 KBTypical response size
Significant attention impact (4.44% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "momence": {
      "url": "https://momence.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://momence.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (23)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢momence_get_current_user

Return the staff user the API is acting as (userId, email, name). A cheap way to confirm the credentials work. Momence: GET /api/v2/auth/profile.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_members(query, filterPreset, staticSegmentId, sortBy, sortOrder, ...)

List or search the studio's customers (members), with visit counts, custom fields and tags. Search by name, email or phone with `query`; use filterPreset=with-active-membership for current members. Momence: GET /api/v2/host/members.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search customers by name, email or phone.",
      "type": "string"
    },
    "filterPreset": {
      "description": "Only customers with an active membership.",
      "type": "string",
      "enum": [
        "with-active-membership"
      ]
    },
    "staticSegmentId": {
      "description": "Only customers in this static segment.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "lastSeenAt",
        "firstSeenAt",
        "firstName",
        "lastName",
        "email"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_get_member(memberId)

Fetch one customer by id: contact details, first/last seen, visit counts, custom fields and tags. Momence: GET /api/v2/host/members/{memberId}.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_member_session_bookings(memberId, startAfter, startBefore, endAfter, endBefore, ...)

List the class/session bookings of one member, with the session details and check-in state. Momence: GET /api/v2/host/members/{memberId}/sessions.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "startAfter": {
      "description": "Only sessions starting after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "startBefore": {
      "description": "Only sessions starting before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endAfter": {
      "description": "Only sessions ending after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endBefore": {
      "description": "Only sessions ending before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "includeCancelled": {
      "description": "Also include cancelled bookings.",
      "type": "boolean"
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_member_appointments(memberId, startAfter, startBefore, endAfter, endBefore, ...)

List the appointment reservations (1:1 services) of one member. Momence: GET /api/v2/host/members/{memberId}/appointments.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "startAfter": {
      "description": "Only appointments starting after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "startBefore": {
      "description": "Only appointments starting before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endAfter": {
      "description": "Only appointments ending after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endBefore": {
      "description": "Only appointments ending before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "includeCancelled": {
      "description": "Also include cancelled appointments.",
      "type": "boolean"
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-200 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_member_notes(memberId, sortBy, sortOrder, page, pageSize)

List the staff notes (regular and SOAP) recorded on one member. Momence: GET /api/v2/host/members/{memberId}/notes.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "createdAt",
        "modifiedAt"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_member_memberships(memberId, includeFrozen, page, pageSize)

List one member's active subscriptions and class packs (bought memberships): type, dates, credits left, usage limits and freeze state. Momence: GET /api/v2/host/members/{memberId}/bought-memberships/active.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "includeFrozen": {
      "description": "Also include frozen memberships.",
      "type": "boolean"
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-200 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_sessions(startAfter, startBefore, endAfter, endBefore, types, ...)

List the studio's scheduled sessions — classes, events, courses — with time, teacher, location, capacity and booking count. Filter by date window, type, teacher or location. Momence: GET /api/v2/host/sessions.

Input Schema

{
  "type": "object",
  "properties": {
    "startAfter": {
      "description": "Only sessions starting after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "startBefore": {
      "description": "Only sessions starting before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endAfter": {
      "description": "Only sessions ending after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endBefore": {
      "description": "Only sessions ending before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "types": {
      "description": "Only these session types.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "private",
          "special-event",
          "special-event-new",
          "retreat",
          "fitness",
          "course",
          "course-class",
          "semester",
          "recital"
        ]
      }
    },
    "teacherId": {
      "description": "Only sessions taught by this teacher.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "locationId": {
      "description": "Only sessions at this location.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "includeChildLocations": {
      "description": "With locationId, also include its child locations.",
      "type": "boolean"
    },
    "includeCancelled": {
      "description": "Also include cancelled sessions.",
      "type": "boolean"
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "name",
        "startsAt",
        "endsAt"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-200 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_get_session(sessionId)

Fetch one session's detail: times, capacity and booking count, waitlist capacity and count, teachers, location, online stream details and tags. Momence: GET /api/v2/host/sessions/{sessionId}.

Input Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session id."
    }
  },
  "required": [
    "sessionId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_session_bookings(sessionId, includeCancelled, sortBy, sortOrder, page, ...)

List who is booked into one session — the class roster — with each booking's id, member, check-in state and recurring-booking id. Momence: GET /api/v2/host/sessions/{sessionId}/bookings.

Input Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session id."
    },
    "includeCancelled": {
      "description": "Also include cancelled bookings.",
      "type": "boolean"
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "createdAt",
        "firstName",
        "lastName"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "sessionId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_appointments(startAfter, startBefore, endAfter, endBefore, includeCancelled, ...)

List all appointment reservations across the studio (service, teacher, time, price, paid state, attendees). Momence: GET /api/v2/host/appointments/reservations.

Input Schema

{
  "type": "object",
  "properties": {
    "startAfter": {
      "description": "Only appointments starting after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "startBefore": {
      "description": "Only appointments starting before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endAfter": {
      "description": "Only appointments ending after (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "endBefore": {
      "description": "Only appointments ending before (ISO 8601 date-time, e.g. 2026-10-01T00:00:00Z).",
      "type": "string"
    },
    "includeCancelled": {
      "description": "Also include cancelled appointments.",
      "type": "boolean"
    },
    "includeCancelledAttendees": {
      "description": "Also include attendees who cancelled.",
      "type": "boolean"
    },
    "isPaid": {
      "description": "Only paid (true) or unpaid (false) appointments.",
      "type": "boolean"
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-200 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_memberships(includeDisabled, onlyFeatured, compatibleWithSessionId, compatibleWithAppointmentId, sortBy, ...)

List the membership plans the studio sells (subscriptions, class packs, money packs): pricing, duration, credits, usage limits, trial and intro-offer flags. Optionally only plans usable for a given session or appointment. Momence: GET /api/v2/host/memberships.

Input Schema

{
  "type": "object",
  "properties": {
    "includeDisabled": {
      "description": "Also include disabled plans.",
      "type": "boolean"
    },
    "onlyFeatured": {
      "description": "Only featured plans.",
      "type": "boolean"
    },
    "compatibleWithSessionId": {
      "description": "Only plans that can pay for this session.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "compatibleWithAppointmentId": {
      "description": "Only plans that can pay for this appointment.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "name",
        "orderNumber"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-200 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_tags(sortOrder, page, pageSize)

List the customer tags defined for the studio (ids for momence_set_member_tag). Momence: GET /api/v2/host/tags.

Input Schema

{
  "type": "object",
  "properties": {
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_customer_leads(query, sourceId, stageId, sortOrder, page, ...)

List the studio's sales leads, open and converted (a non-null memberId means converted). Filter by search text, lead source or pipeline stage; resolve the ids with momence_list_lead_sources / momence_list_lead_stages. Momence: GET /api/v2/host/customer-leads.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search leads by first name, last name, email or phone.",
      "type": "string"
    },
    "sourceId": {
      "description": "Only leads from this lead source.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "stageId": {
      "description": "Only leads in this lead stage.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_lead_sources(query, sortOrder, page, pageSize)

List lead sources (resolves the sourceId on customer leads). Momence: GET /api/v2/host/customer-lead-sources.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search lead sources by name.",
      "type": "string"
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢momence_list_lead_stages(query, sortBy, sortOrder, page, pageSize)

List lead pipeline stages (resolves the stageId on customer leads). Momence: GET /api/v2/host/customer-lead-stages.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search lead stages by name.",
      "type": "string"
    },
    "sortBy": {
      "description": "Field to sort by.",
      "type": "string",
      "enum": [
        "name",
        "order"
      ]
    },
    "sortOrder": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "page": {
      "description": "Page number, starting at 0 (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Rows per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_create_member(email, firstName, lastName, phoneNumber, homeLocationId)

Add a new customer to the studio. Returns the new memberId. Momence: POST /api/v2/host/members.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The customer's email address."
    },
    "firstName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "First name."
    },
    "lastName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Last name."
    },
    "phoneNumber": {
      "description": "Phone number.",
      "type": "string"
    },
    "homeLocationId": {
      "description": "The customer's home location id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "email",
    "firstName",
    "lastName"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_update_member(memberId, firstName, lastName, email, phoneNumber)

Correct a customer's contact details. Give firstName+lastName together to rename, and/or email, and/or phoneNumber; each is a separate Momence call (PUT /api/v2/host/members/{memberId}/name, /email, /phone-number) and they run in that order, stopping at the first failure.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "firstName": {
      "description": "New first name (requires lastName too).",
      "type": "string",
      "minLength": 1
    },
    "lastName": {
      "description": "New last name (requires firstName too).",
      "type": "string",
      "minLength": 1
    },
    "email": {
      "description": "New email address.",
      "type": "string",
      "minLength": 1
    },
    "phoneNumber": {
      "description": "New phone number.",
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_set_member_tag(memberId, tagId, assigned)

Assign a customer tag to a member (assigned=true) or remove it (assigned=false). Fully reversible. Tag ids come from momence_list_tags. Momence: POST / DELETE /api/v2/host/members/{memberId}/tags/{tagId}.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "tagId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The tag id."
    },
    "assigned": {
      "type": "boolean",
      "description": "true to assign the tag, false to remove it."
    }
  },
  "required": [
    "memberId",
    "tagId",
    "assigned"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_book_member_free(sessionId, memberId, createRecurringBooking)

Add a member to a session at no charge (a comp booking), optionally as a recurring booking for every occurrence of a recurring class. Returns the sessionBookingId. Undo with momence_cancel_session_booking. Momence: POST /api/v2/host/sessions/{sessionId}/bookings/free.

Input Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session id."
    },
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "createRecurringBooking": {
      "description": "Also book every future occurrence (recurring sessions only).",
      "type": "boolean"
    }
  },
  "required": [
    "sessionId",
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_add_member_to_waitlist(sessionId, memberId, useBoughtMembershipIds)

Put a member on a session's waitlist. If a spot opens and they are booked from the waitlist, Momence uses the best matching bought membership unless you name specific ones in useBoughtMembershipIds. Returns the waitlistBookingId. Momence: POST /api/v2/host/sessions/{sessionId}/waitlist/bookings.

Input Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session id."
    },
    "memberId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The member id."
    },
    "useBoughtMembershipIds": {
      "description": "Bought memberships to try when booking from the waitlist.",
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "sessionId",
    "memberId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_set_booking_check_in(bookingId, checkedIn)

Mark a session booking as checked in (checkedIn=true) or undo the check-in (checkedIn=false). Booking ids come from momence_list_session_bookings. Momence: POST / DELETE /api/v2/host/session-bookings/{bookingId}/check-in.

Input Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session booking id."
    },
    "checkedIn": {
      "type": "boolean",
      "description": "true to check in, false to undo the check-in."
    }
  },
  "required": [
    "bookingId",
    "checkedIn"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴momence_cancel_session_booking(bookingId, refund, isLateCancellation, disableNotifications)

Cancel a SINGLE session booking (not a recurring series). By default: NO refund, NOT treated as a late cancellation (no penalty), and the member IS notified. Set refund=true only to return the member's payment or credit; isLateCancellation=true applies the studio's late-cancel policy. Not undoable except by re-booking. Momence: DELETE /api/v2/host/session-bookings/{bookingId}.

Input Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The session booking id."
    },
    "refund": {
      "description": "Refund the member's payment/credit for this booking (default false).",
      "type": "boolean"
    },
    "isLateCancellation": {
      "description": "Treat as a late cancellation under the studio policy (default false).",
      "type": "boolean"
    },
    "disableNotifications": {
      "description": "Suppress the cancellation notification to the member (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "bookingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded23 tools
verifiedversion not recorded23 tools