Zooza MCP Server
MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.zooza.app/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.zooza.app/mcp{
"mcpServers": {
"mcp-server": {
"url": "https://mcp.zooza.app/mcp"
}
}
}claude mcp add --transport http mcp-server https://mcp.zooza.app/mcp{
"servers": {
"mcp-server": {
"type": "http",
"url": "https://mcp.zooza.app/mcp"
}
}
}18 tools, verified live
get_terminologyread-onlySearch the Zooza domain glossary. Returns canonical term names, definitions, cross-language synonyms, disambiguation rules, and AI guidance notes. No Zooza API call is made â purely local lookup against the compiled glossary. Use this to resolve ambiguous user input before calling operational tools. Examples: query="hodina" â Session; query="kurz", language="sk" â Programme; category="produc
whoamiread-onlyReturns the connected user's identity, the companies they can operate on, regional context, and the session's token state. Call ONCE at the start of every conversation. How to interpret the response: - 'status: "ok"' â authenticated, at least one company available. Pick a 'company_id' from 'companies' for follow-up calls (ask the user if more than one exists). - 'status: "no_companies"' â au
classes_find_coursesread-onlySearch the company's courses by name (substring match) and optionally by registration_type. Returns a slim list of matches â `{id, name, registration_type, target_audience, price, schedules_count, ...}` â enough to disambiguate, not enough to act. Use this whenever the user names a course in natural language; never demand a raw course_id. Archived courses are excluded by default (pass `include
classes_find_resourceread-onlyResolve a NAME the operator said into an id, for four kinds of company-level records. Pick `kind`: - `place` â venues. Returns `{id, name, city, street, rooms: [{id, name, capacity}]}`. Rooms are inlined because picking a venue is usually followed by picking a room. Filters: name, city. - `billing_period` â term blocks (e.g. "Autumn 2026"). Returns `{id, name, active, period_start, period_end
classes_find_classesread-onlySearch this company's CLASSES â the scheduled groups inside a programme (a "class" / "group" / "skupina"; internally a *schedule*) â by name (substring) and resolve them to a `schedule_id`. Reach for this whenever the user names a specific group rather than a whole programme ("the Nejaké class", "the Monday 5pm group", "her Wednesday ballet class"), or whenever a downstream tool needs a `sche
bookings_findread-onlyFind this company's bookings â a client's enrolment in a class (registration; "prihláška"/"Buchung") â and resolve them to a `registration_id`, or a client to a `user_id`. Use for "is X enrolled?", "who's in this class?", "who hasn't paid?" (set `payment_status:["unpaid","partially_paid"]`), and "find client X". Filter by `search` (loose: name/email/phone) or `name`, by `course_id`/`schedule
sessions_find_eventsread-onlyList **events** (scheduled sessions of classes) in the caller's company. Use this whenever you need to resolve an `event_id` from natural language ("my next class," "Monday's ballet," "all swim sessions this week," "Sarah's classes tomorrow") before chaining into another tool like `sessions_get_attendance` or `sessions_mark_attendance`. With no filters at all, returns the company's **upcoming** sc
sessions_get_attendanceread-onlyRead who's enrolled in **one event** (a single session of a class) and their current attendance, so you can show the list and then mark it. Pass an `event_id`; the tool returns each enrolled attendee, their current attendance value (if already marked), and per-row context the LLM needs to mark attendance correctly: `allowed_statuses[]` (the statuses the **current caller** is permitted to set for T
sessions_mark_attendanceRecord per-attendee attendance for **one event** (a single session of a class â e.g. "Monday Ballet on 2026-06-03 at 09:00"). Pass an `event_id` and a list of attendees, each with their own attendance value (`attended`, `noshow`, `canceled`, `going`, `ignore`). Each value is set on **that one attendee for that one event**, never on the event as a whole. The tool writes each attendee individually
classes_updateEdit one or more existing classes (a "class"/"timetable" is the recurring group within a programme) â name, price, registration fee, capacity, make-up/replacement extra capacity ("poÄet miest navyÅ¡e pre náhradné hodiny" â extra_capacity/extra_capacity_usage, NOT registrations_cap, which caps the NUMBER OF REGISTRATIONS), registration-count cap, billing period, online-registration, trial le
sessions_updateEdit specific individual sessions (events) of a class, OR add new sessions to a class. Two modes, one tool. NOT for a change that holds from a date onward or for every session ("from next week Jana teaches the Monday class", "the class moves to Room B") â that is ONE classes_update call with session_scope ('upcoming' or 'all'), never a per-session edit of each date. EDIT-MODE â pass `event_i
sessions_cancelcan modifyCancel one or more scheduled SESSIONS of a class so they do not take place â "cancel Tuesday's sessions", "the pool is closed on Friday", "Martina is ill all week, cancel her classes". A cancelled session stays visible in Zooza with a cancelled status; it is NOT deleted. Scope the call to exactly ONE entity: `event_ids`, a single `date`, a single `trainer_id` with `from`/`to`, a single `schedul
bookings_copy_bookingCopy or move a client's existing booking into a different class. COPY creates a second booking and leaves the original in place â use it when the client is continuing into a new term or adding a class alongside their current one. MOVE relocates the booking itself, carrying its payment history and debt, and the client is no longer in the old class â use it when they are switching. TWO CALLS. F
comms_send_messageEmail clients of this company. Describe the audience (a course/programme, a class schedule, a specific booking, one client, a saved segment, an ad-hoc cohort, or course-level labels) and the content (an existing template `type` from comms_list_templates, or a custom subject + body which may use *|MERGE_VAR|* tags from comms_list_merge_vars). TWO CALLS. First WITHOUT `token`: sends NOTHING. Return
reports_get_dataread-onlyReturn the REAL, pre-aggregated numbers for ONE business question about an activity brand â and the basis for SHOWING it. This is how you show an operator a report / dashboard / chart of their business numbers (occupancy, unpaid, churn, attendance, trials, retention, revenue, "how are we doing", per programme / venue / instructor): call this, then COMPOSE a focused report as an ARTIFACT in the c
get_skillread-onlyReturns the full markdown playbook for one of the registered skills. Call this BEFORE starting a flow named in the server's instructions â the playbook contains the interview steps, mapping rules, and confirmation pattern for that scenario. Available skills: business-model-validator, class-management, communication, feedback-nudge, negotiate-terminology, report-compose, report-discovery, report-
get_tool_schemaread-onlyReturns the description and exact input schema of a Zooza tool, including tools not in your tool list (call_tool lists them). Call it once per tool before that tool's first call_tool.
call_toolRuns a Zooza tool by name. Use it for every Zooza tool that is NOT in your tool list â these exist and work; never send the user to another app because a Zooza tool isn't listed. Call get_tool_schema(name) first for the arguments. Write tools behave exactly as when called directly: the first call previews and returns a token, the second (token + confirmed:true) applies. Tools reachable this way:
Alternatives in Other
Compare →MCMonday.ComOfficialA
MCP server for monday.com integration.
CLContractor Licence ChangesA
Did this contractor's licence change? Observed lapses and reinstatements, not a snapshot.
JIJitsuA
Manage Jitsu data pipelines: destinations, streams, connections, functions, live events.
NRNew Relic MCP ServerOfficialA
Access New Relic observability data through MCP - query metrics, logs, traces, entities, and more
OSOpenCaseLaw — Swiss Caselaw, Statutes & DoctrineA
1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.
BCBusiness Contact FinderA
Check how to contact a business website, and whether that contact path actually works.