# GymFlexa Gym Management

> See your gym's open slots, services, how busy each day is and your payment totals.

- name: com.gymflexa/gymflexa
- version: 0.1.1
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.gymflexa%2Fgymflexa
- tools: https://api.protogrid.dev/v1/servers/com.gymflexa%2Fgymflexa/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "gymflexa": {
      "type": "http",
      "url": "https://mcp.gymflexa.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-23d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,546 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- fail `stability.rug_pull`: 7 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,546 tokens to load them all
- tool set hash: 0eb075bce32ec7585785e47b5771ab1e
- tools last changed: 2026-09-29T05:00:22.379Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.gymflexa/gymflexa.svg)](https://protogrid.dev/servers/com.gymflexa/gymflexa)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-09-29 `get_gym_payment_summary` changed (outputSchema)
- 2026-09-28 `show_gym_overview` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone wants a quick overview or dashboard of one gym. Returns an overview card with the gym's details, booking counts for the next 7 days, open online-booking slots across up to 14 days with openings and up to 12 services with prices (no member, trainer or payment data). Not for a single member or booking.
- 2026-09-28 `list_services` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks what their gym charges for a class, personal training session or other service. Returns catalog service names with price and last edit time for one gym, alphabetical, 25 per page by default. Not for what a particular member bought or attended.
- 2026-09-28 `get_gym_payment_summary` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks how much their gym took in, or how many payments succeeded, failed or were canceled. Returns payment counts by status and totals by currency; totals include every status. Covers up to 31 days and 100 payments and defaults to the next 7 days, which hold no payments yet. Not for moving money: it cannot charge, refund or transfer.
- 2026-09-28 `get_gym_schedule_summary` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks how busy their gym is or how many appointments or sessions are booked each day, past or upcoming. Returns booking counts per UTC day for one gym, whatever their status, for any window of at most 31 days (the next 7 by default); counting stops at 100. Not for counting cancellations or seeing which members are booked.
- 2026-09-28 `get_gym_availability` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks when their gym has free slots or openings for a class or session, or which coming days are fully booked. Returns, per day, how many online-booking slots are open plus the first start and last end time, for the next 14 days that have openings, so a skipped day has none (no member or trainer names). Not for booking a session.
- 2026-09-28 `get_gym` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks for one gym's opening hours, timezone, currency or default session length. Returns the gym's scheduling settings with up to 14 opening-hour rows, Monday first; an id outside the organization returns not-found. Not for free session slots.
- 2026-09-28 `list_gyms` changed (title, description, inputSchema, outputSchema, annotations) **meaning changed**
  - before: 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.
  - after: Use this when someone asks which gyms or studios they run in GymFlexa, or a gym's id is needed. Returns gyms with id, name, currency, default language and last edit time, alphabetical, 25 per page by default. Not for finding a member.

Full history: https://api.protogrid.dev/v1/servers/com.gymflexa%2Fgymflexa/changes

## Remotes

- https://mcp.gymflexa.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `get_gym`: Use this when someone asks for one gym's opening hours, timezone, currency or default session length. Returns the gym's scheduling settings with up to 14 opening-hour rows, Monday first; an id outside the organization returns not-found. Not for free session slots.
- `get_gym_availability`: Use this when someone asks when their gym has free slots or openings for a class or session, or which coming days are fully booked. Returns, per day, how many online-booking slots are open plus the first start and last end time, for the next 14 days that have openings, so a skipped day has none (no member or trainer names). Not for booking a session.
- `get_gym_payment_summary`: Use this when someone asks how much their gym took in, or how many payments succeeded, failed or were canceled. Returns payment counts by status and totals by currency; totals include every status. Covers up to 31 days and 100 payments and defaults to the next 7 days, which hold no payments yet. Not for moving money: it cannot charge, refund or transfer.
- `get_gym_schedule_summary`: Use this when someone asks how busy their gym is or how many appointments or sessions are booked each day, past or upcoming. Returns booking counts per UTC day for one gym, whatever their status, for any window of at most 31 days (the next 7 by default); counting stops at 100. Not for counting cancellations or seeing which members are booked.
- `list_gyms`: Use this when someone asks which gyms or studios they run in GymFlexa, or a gym's id is needed. Returns gyms with id, name, currency, default language and last edit time, alphabetical, 25 per page by default. Not for finding a member.
- `list_services`: Use this when someone asks what their gym charges for a class, personal training session or other service. Returns catalog service names with price and last edit time for one gym, alphabetical, 25 per page by default. Not for what a particular member bought or attended.
- `show_gym_overview`: Use this when someone wants a quick overview or dashboard of one gym. Returns an overview card with the gym's details, booking counts for the next 7 days, open online-booking slots across up to 14 days with openings and up to 12 services with prices (no member, trainer or payment data). Not for a single member or booking.
