BailaYa MCP by usefulapi

Read schedules, students and packages; add or change classes, events and students in BailaYa.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
90%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,623Tokens (Tool-Definitionen)
~1.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.61% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

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

Remote-Endpunkte

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

Was es kann

Tool-Inventar

Tools (24)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢bailaya_list_classes(limit, offset)

List the studio's classes (scheduled occurrences) with date, time, instructor, room, capacity and price. Needs scope classes:read. BailaYa API: GET /v1/classes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_class(id)

Get one class by id. Needs scope classes:read. BailaYa API: GET /v1/classes/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_events(limit, offset)

List the studio's events (workshops and special sessions) with date, time, instructor and capacity. Needs scope events:read. BailaYa API: GET /v1/events.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_event(id)

Get one event by id. Needs scope events:read. BailaYa API: GET /v1/events/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_students(limit, offset)

List the studio's students with name, email, phone, level and status. Personal data: use only when the studio owner asks. Needs scope students:read. BailaYa API: GET /v1/students.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_student(id)

Get one student by id. Personal data. Needs scope students:read. BailaYa API: GET /v1/students/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_team_members(role, limit, offset)

List studio team members (staff, instructors, owners, admins), optionally filtered by role. Needs scope team:read. BailaYa API: GET /v1/team.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "role": {
      "description": "Only members with this role.",
      "type": "string",
      "enum": [
        "staff",
        "instructor",
        "owner",
        "admin"
      ]
    },
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_team_member(id)

Get one team member by id. Needs scope team:read. BailaYa API: GET /v1/team/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_instructors(limit, offset)

List the studio's instructors. Needs scope instructors:read. BailaYa API: GET /v1/instructors.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_instructor(id)

Get one instructor by id. Needs scope instructors:read. BailaYa API: GET /v1/instructors/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_packages(is_active, limit, offset)

List class packages (pre-paid bundles of sessions) with price, sessions and validity. Set is_active to filter. Needs scope packages:read. BailaYa API: GET /v1/packages.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "is_active": {
      "description": "true = active packages only; false = inactive only.",
      "type": "boolean"
    },
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_package(id)

Get one class package by id. Needs scope packages:read. BailaYa API: GET /v1/packages/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_rooms(limit, offset)

List the studio's rooms with capacity and location. Needs scope rooms:read. BailaYa API: GET /v1/rooms.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_room(id)

Get one room by id. Needs scope rooms:read. BailaYa API: GET /v1/rooms/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_locations

List the studio's locations (primary first). The API is not paginated: every location is returned. Needs scope locations:read. BailaYa API: GET /v1/locations.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_get_location(id)

Get one location by id. Needs scope locations:read. BailaYa API: GET /v1/locations/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bailaya_list_dance_types(limit, offset)

List the studio's dance types (studio types) used to tag classes. Includes types hidden from the website. Needs scope classes:read. BailaYa API: GET /v1/studio-types.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page (the API default applies if omitted).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Rows to skip, for paging. Stop when a page is shorter than limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_create_class(name, discipline, level, date, start_time, ...)

Create ONE class occurrence on a date. Visible on the studio's booking page. Needs scope classes:write. BailaYa API: POST /v1/classes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "discipline": {
      "type": "string",
      "minLength": 1,
      "description": "Discipline name (free text, e.g. 'Salsa')."
    },
    "level": {
      "type": "string",
      "minLength": 1,
      "description": "Level name (free text, e.g. 'Beginner')."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Studio-local calendar date, yyyy-mm-dd."
    },
    "start_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "end_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "team_member_id": {
      "type": "string",
      "minLength": 1,
      "description": "The instructor's team member id. Must belong to the studio."
    },
    "description": {
      "type": "string"
    },
    "room_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "location": {
      "description": "Location id.",
      "type": [
        "string",
        "null"
      ]
    },
    "capacity": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "studio_type_id": {
      "description": "Dance type id (from bailaya_list_dance_types).",
      "type": [
        "string",
        "null"
      ]
    },
    "allow_packages": {
      "type": "boolean"
    },
    "require_package": {
      "type": "boolean"
    },
    "allowed_package_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "is_virtual": {
      "type": "boolean"
    },
    "virtual_platform": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "ZOOM",
            "GOOGLE_MEET",
            "TEAMS"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "discipline",
    "level",
    "date",
    "start_time",
    "end_time",
    "team_member_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_update_class(id, name, description, discipline, level, ...)

Change fields of one class (time, instructor, room, capacity, price). Only the fields you pass change. Needs scope classes:write. BailaYa API: PATCH /v1/classes/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "discipline": {
      "type": "string",
      "minLength": 1
    },
    "level": {
      "type": "string",
      "minLength": 1
    },
    "start_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "end_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "team_member_id": {
      "type": "string",
      "minLength": 1
    },
    "room_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "capacity": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "price": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "allow_packages": {
      "type": "boolean"
    },
    "require_package": {
      "type": "boolean"
    },
    "allowed_package_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_delete_class(id, apply_to_series)

Delete (cancel) one class. Set apply_to_series to true to delete every occurrence of a repeating series. Irreversible. Needs scope classes:delete. BailaYa API: DELETE /v1/classes/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    },
    "apply_to_series": {
      "description": "true = delete the whole recurring series. Default false: this occurrence only.",
      "type": "boolean"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_create_event(name, discipline, level, date, start_time, ...)

Create ONE event (workshop or special session) on a date. Visible on the studio's booking page. Needs scope events:write. BailaYa API: POST /v1/events.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "discipline": {
      "type": "string",
      "minLength": 1,
      "description": "Discipline name (free text)."
    },
    "level": {
      "type": "string",
      "minLength": 1,
      "description": "Level name (free text)."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Studio-local calendar date, yyyy-mm-dd."
    },
    "start_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "end_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "team_member_id": {
      "type": "string",
      "minLength": 1,
      "description": "The host's team member id. Must belong to the studio."
    },
    "description": {
      "type": "string"
    },
    "room_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "location": {
      "description": "Location id.",
      "type": [
        "string",
        "null"
      ]
    },
    "capacity": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "studio_type_id": {
      "description": "Dance type id (from bailaya_list_dance_types).",
      "type": [
        "string",
        "null"
      ]
    },
    "allow_packages": {
      "type": "boolean"
    },
    "require_package": {
      "type": "boolean"
    },
    "allowed_package_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "is_virtual": {
      "type": "boolean"
    },
    "virtual_platform": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "ZOOM",
            "GOOGLE_MEET",
            "TEAMS"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "discipline",
    "level",
    "date",
    "start_time",
    "end_time",
    "team_member_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_update_event(id, name, description, discipline, level, ...)

Change fields of one event (time, host, room, capacity, price). Only the fields you pass change. Needs scope events:write. BailaYa API: PATCH /v1/events/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "discipline": {
      "type": "string",
      "minLength": 1
    },
    "level": {
      "type": "string",
      "minLength": 1
    },
    "start_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "end_time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Time as HH:MM, 24-hour."
    },
    "team_member_id": {
      "type": "string",
      "minLength": 1
    },
    "room_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "capacity": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "price": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "allow_packages": {
      "type": "boolean"
    },
    "require_package": {
      "type": "boolean"
    },
    "allowed_package_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_create_student(name, lastname, email, level, phone, ...)

Add ONE student record to the studio. Personal data. Needs scope students:write. BailaYa API: POST /v1/students.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "lastname": {
      "type": "string",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "level": {
      "type": "string",
      "minLength": 1,
      "description": "Level name (free text)."
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "description": "Student status. The API default is 'pending'.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "lastname",
    "email",
    "level"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bailaya_update_student(id, name, lastname, email, level, ...)

Change fields of one student record (contact details, level, status). Only the fields you pass change. Personal data. Needs scope students:write. BailaYa API: PATCH /v1/students/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The id from the matching list tool."
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "lastname": {
      "type": "string",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "level": {
      "type": "string",
      "minLength": 1
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet24 Tools