gymflexa
Review tenant-scoped gym configuration, capacity, catalogs, schedules, and payment aggregates.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"gymflexa": {
"url": "https://mcp.gymflexa.com/mcp"
}
}
}Remote endpoints
https://mcp.gymflexa.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
π’list_gyms(limit, cursor)
List a bounded page of gyms in the authenticated user's GymFlexa organization. Returns only the gym id needed for follow-up reads plus name, currency, locale, and edit time; no organization, address, contact, billing, integration, or member data.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100,
"description": "Maximum number of gyms to return (default 25, maximum 100)"
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque pagination cursor from a previous call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"gyms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"type": "string",
"maxLength": 200
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 16
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"currency",
"defaultLocale",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"gyms",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_gym(gymId)
Get safe scheduling configuration for one tenant-owned GymFlexa gym. Returns locale, currency, timezone, appointment duration, and at most fourteen opening-hour rows. It excludes address, phone, website, organization, billing, integrations, reminders, members, and arbitrary metadata.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id"
}
},
"required": [
"gymId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"gym": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"type": "string",
"maxLength": 200
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 16
},
{
"type": "null"
}
]
},
"timezone": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
},
"firstDayOfTheWeek": {
"anyOf": [
{
"type": "string",
"enum": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
]
},
{
"type": "null"
}
]
},
"appointmentDuration": {
"type": [
"number",
"null"
]
},
"openingHours": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"enum": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
]
},
"open": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
{
"type": "null"
}
]
},
"close": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"day",
"open",
"close"
],
"additionalProperties": false
},
"maxItems": 14
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"currency",
"defaultLocale",
"timezone",
"countryCode",
"firstDayOfTheWeek",
"appointmentDuration",
"openingHours",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"gym"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_gym_availability(gymId)
Summarize bookable capacity for one tenant-owned GymFlexa gym over the product's fixed window from tomorrow through fourteen days out. Returns only daily slot counts and first/last bookable times; it never identifies members, appointments, trainers, or reasons a slot is unavailable.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id"
}
},
"required": [
"gymId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"timezone": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"availableDayCount": {
"type": "integer",
"minimum": 0
},
"availableSlotCount": {
"type": "integer",
"minimum": 0
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"slotCount": {
"type": "integer",
"minimum": 0
},
"firstStartTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"lastEndTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
}
},
"required": [
"day",
"slotCount",
"firstStartTime",
"lastEndTime"
],
"additionalProperties": false
},
"maxItems": 14
}
},
"required": [
"timezone",
"availableDayCount",
"availableSlotCount",
"days"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_gym_schedule_summary(gymId, startTime, endTime)
Count scheduled records by UTC day for one tenant-owned GymFlexa gym over a range of at most 31 days. Returns aggregate administrative counts onlyβnever appointment ids or times, member information, services, notes, trainer data, attendance history, or other fitness-participation details.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id"
},
"startTime": {
"type": "string",
"maxLength": 32,
"description": "Range start as an ISO 8601 value; defaults to now"
},
"endTime": {
"type": "string",
"maxLength": 32,
"description": "Range end as an ISO 8601 value; defaults to seven days later"
}
},
"required": [
"gymId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"range": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"maxLength": 32
},
"endTime": {
"type": "string",
"maxLength": 32
}
},
"required": [
"startTime",
"endTime"
],
"additionalProperties": false
},
"recordCount": {
"type": "integer",
"minimum": 0
},
"recordCountIsLowerBound": {
"type": "boolean"
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"day",
"count"
],
"additionalProperties": false
},
"maxItems": 100
}
},
"required": [
"range",
"recordCount",
"recordCountIsLowerBound",
"days"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_gym_payment_summary(gymId, startTime, endTime)
Summarize recorded payment counts, status counts, and amount totals by currency for one tenant-owned GymFlexa gym over at most 31 days. It is read-only and cannot charge, refund, retry, settle, transfer, or move funds. It excludes payment/member ids, processor or card data, contacts, notes, discounts, decline reasons, services, and individual transactions.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id"
},
"startTime": {
"type": "string",
"maxLength": 32,
"description": "Range start as an ISO 8601 value; defaults to now"
},
"endTime": {
"type": "string",
"maxLength": 32,
"description": "Range end as an ISO 8601 value; defaults to seven days later"
}
},
"required": [
"gymId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"range": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"maxLength": 32
},
"endTime": {
"type": "string",
"maxLength": 32
}
},
"required": [
"startTime",
"endTime"
],
"additionalProperties": false
},
"recordCount": {
"type": "integer",
"minimum": 0
},
"recordCountIsLowerBound": {
"type": "boolean"
},
"totalsArePartial": {
"type": "boolean"
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"pattern": "^(?:[A-Z]{3}|UNSPECIFIED)$"
},
"amount": {
"type": "number"
}
},
"required": [
"currency",
"amount"
],
"additionalProperties": false
},
"maxItems": 100
},
"statuses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"type": "string",
"pattern": "^[A-Z0-9_-]{1,48}$"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"status",
"count"
],
"additionalProperties": false
},
"maxItems": 100
}
},
"required": [
"range",
"recordCount",
"recordCountIsLowerBound",
"totalsArePartial",
"totals",
"statuses"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_services(gymId, limit, cursor)
List a bounded page of service-catalog names, prices, and edit times for one tenant-owned GymFlexa gym. It excludes service ids, member history, notes, staff commissions, organization ids, and arbitrary metadata.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100,
"description": "Maximum services to return (default 25, maximum 100)"
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque pagination cursor from a previous call"
}
},
"required": [
"gymId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"price": {
"type": [
"number",
"null"
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"price",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"services",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’show_gym_overview(gymId)
Render a bounded administrative overview for one tenant-owned GymFlexa gym. It combines safe gym metadata, aggregate seven-day schedule counts, service-catalog previews, and bookable-capacity counts. It never reads or returns member records, individual appointments or payments, attendance/service history, trainers, notes, health or fitness details, or re-identifying record linkages.
Input Schema
{
"type": "object",
"properties": {
"gymId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Owned GymFlexa gym id to render"
}
},
"required": [
"gymId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"gym": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"type": "string",
"maxLength": 200
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 16
},
{
"type": "null"
}
]
},
"timezone": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"currency",
"defaultLocale",
"timezone"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"scheduleRange": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"maxLength": 32
},
"endTime": {
"type": "string",
"maxLength": 32
}
},
"required": [
"startTime",
"endTime"
],
"additionalProperties": false
},
"appointmentCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"appointmentCountIsLowerBound": {
"type": "boolean"
},
"scheduleDays": {
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"day",
"count"
],
"additionalProperties": false
}
},
"serviceCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"serviceCountIsLowerBound": {
"type": "boolean"
},
"services": {
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"price",
"lastEditTime"
],
"additionalProperties": false
}
},
"availableDayCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"availableSlotCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"availabilityDays": {
"maxItems": 14,
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"day",
"count"
],
"additionalProperties": false
}
}
},
"required": [
"gym",
"scheduleRange",
"appointmentCount",
"appointmentCountIsLowerBound",
"scheduleDays",
"serviceCount",
"serviceCountIsLowerBound",
"services",
"availableDayCount",
"availableSlotCount",
"availabilityDays"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence