Zooza MCP Server

app.zoozaPublished by zooza.appOfficial publisherv0.2.0Updated Oct 24, 2026

MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.

Overview

AI-generated overview

A hosted MCP server that connects an AI assistant to a Zooza account so it can manage class schedules, attendance, bookings, leads and instalment billing by ask

What you can do
Create and edit programmes, classes and sessions, with schedule previews before committing changes and helper-instructor assignment. Find sessions and record attendance, late cancellations and coach notes. Look up enrolments, unpaid registrations and waiting lists, and capture enquiries as leads. Plan and send client emails, read replies, and manage labels and colleague to-dos. Set up payment templates and apply instalment plans to bookings, and pull pre-aggregated business numbers for reports. Look up companies, locations, trainers, rooms and billing periods, plus free domain-knowledge tools that work without an account.
When to use it
Useful for activity businesses already on Zooza — dance, language, swim, music or sports schools and camps — whose staff want to run scheduling, attendance, bookings and reporting conversationally instead of through the dashboard. Also handy for exploring Zooza's data model before connecting live data, since five tools need no account.
Requirements
A remote server at mcp.zooza.app over Streamable HTTP; nothing runs locally. A Zooza account is needed for live data, with sign-in through OAuth 2.0 on first use rather than API keys. Supported clients include Claude Desktop, Claude Code and ChatGPT. Self-hosting from source requires Node.js and the ZOOZA_API_BASE and ZOOZA_API_KEY variables.
Before you install
The assistant can change real records: classes, sessions, attendance, labels, to-dos, payment templates and plans, and it can email audiences of clients. Writes are described as preview-then-confirm, so review each preview before approving. Session edits can notify affected clients. Queries may be processed by the chosen AI provider, and Zooza keeps a server-side audit log of tool calls. Access is limited to what the signed-in Zooza account already permits.

Installation

In SourceWeft

  1. Open Zooza MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/app.zooza%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "zooza": {
      "type": "http",
      "url": "https://mcp.zooza.app/mcp"
    }
  }
}

README

[Zooza]

Zooza MCP Server — AI-Powered Class Management for Activity Businesses

An open-source Model Context Protocol (MCP) server that connects Claude, ChatGPT, and other AI assistants directly to your Zooza account.
Natural language scheduling, attendance tracking, lead follow-up, and class management — no dashboard required.

[Model Context Protocol server] [Open source — MIT License] [Official Zooza integration] [Live MCP endpoint]

Website · Documentation · Quickstart · Tools · Get a Zooza account


See it in action

[Watch the Zooza MCP demo on YouTube]


What this is

Zooza MCP Server is a free, open-source Model Context Protocol (MCP) integration for Zooza — the class management and scheduling software for dance schools, language academies, swim schools, music schools, STEAM programmes, sports clubs, and other activity businesses.

It lets activity managers, school administrators, and franchise operators manage schedules, track attendance, create classes, handle bookings and enquiries, set up instalment billing, and query their data through natural language conversation — using Claude, ChatGPT, or any MCP-compatible AI client — without opening the Zooza dashboard.

Zooza powers 500,000+ learners across Slovakia, the Czech Republic, Germany, the UK, and beyond — from single-location dance schools to international franchise networks. This MCP server brings the same platform to any AI client that speaks the Model Context Protocol.

New to Zooza? Create a free account at signup.zooza.online — it takes under 2 minutes.


What you can do

Take attendance

[Show active programmes in Claude]
"Open the register for tonight's adult ballet class.""Who was absent from Saturday's Spanish beginners session?""Mark everyone present in today's robotics group.""Add a note to this week's yoga class — we covered breathing techniques."

Build a term from scratch

[Create a new class in Claude]
"Create a new Spanish for beginners course for Spring 2026 at the city centre location. Classes every Tuesday 16:00–17:00 for 12 weeks, starting 3 March. Assign trainer Tomáš Novák and preview the full schedule before I confirm."
[Schedule preview before confirming]
"Set up our summer robotics camp — Monday to Friday, 9:00–13:00, for 4 weeks in July. Split into two age groups: 6–9 and 10–14. Preview both before I confirm."

Turn a photo into a full term — no blank page

Building a season by hand means two days of typing into empty forms. Instead, hand the assistant whatever you already have — a whiteboard photo, a hand-drawn sketch, a spreadsheet screenshot — and it drafts the whole term for you to review before anything goes live.

"Here's a photo of our autumn whiteboard — create these classes in my account, starting Monday the 8th.""Screenshot of our timetable spreadsheet attached. Build the full term, respecting our holiday calendar."

You always see a preview table and calendar first, and nothing is created until you confirm — you bring the intent, you keep the final say. Read how one brand turned a single photo into 68 live classes across venues: From a photo to a full term of live classes.

Get instant answers

"Which programmes are running this billing period?""Who's teaching dance on Monday evenings?""Which STEAM courses still have free capacity this term?""What sessions are scheduled for tomorrow?"

Manage bookings

"Show unpaid registrations from this season.""Which clients are on the waiting list for Saturday gymnastics?""How many spots are left in the beginner English course?"

Work an enquiry from first email to enrolled

An enquiry arrives, gets a reply, and then lives in someone's inbox until it goes cold. The assistant keeps the whole thread as records in Zooza instead — the enquiry becomes a trackable lead, the reply comes back where you can see it, and anything needing a human becomes a to-do with a name on it.

"Log this enquiry from the contact form as a lead and tag it 'spring-open-day'.""Did anyone reply to last week's trial invitations? Show me what they said.""This parent asked about sibling discounts — assign it to Katka, due Friday.""Tag the leads who booked a trial as 'converted' and close out the rest."

Nothing here emails the customer behind your back — capturing a lead sends nothing, and every outbound message still goes through the plan-then-confirm flow.

Set up instalment billing

"Split our €200 term fee into 4 monthly payments and offer it on the ballet programme.""This programme has 14 payment plans attached — clean it up, leave only the two we use.""Put Nováková's booking on the 3-instalment plan starting next month."

Ask for any report — in plain language

No report modules, no spreadsheet formulas. Ask a business question the way you actually think about it, and the assistant pulls the real numbers and lays them out — shaped around your question, not a fixed dashboard.

"Who's at which venue each day this week?""Which instructors are stretched thin, and who has room for more?""What grew and what shrank between the spring and summer terms?""How many seats does my whole operation actually have right now?"

Reporting only ever reads — it never touches bookings, classes, or payments, so you can explore freely. More on how brands use this: Custom reports, just by asking.

No clicking through menus. No switching tabs. No automation scripts. Just ask — Claude handles the lookups, rosters, previews, and confirmations.


Supported clients

ClientHow to connect
Claude DesktopNative MCP over HTTPS
Claude CodePlugin zip or manual .mcp.json
ChatGPTOpenAI Actions — domain verified at mcp.zooza.app
Any MCP-compatible clientStreamable HTTP — https://mcp.zooza.app/mcp

Connect in 2 minutes

Don't have a Zooza account yet? Sign up free at signup.zooza.online

Claude Desktop

Add this to your claude_desktop_config.json:

json
{  "mcpServers": {    "zooza": {      "type": "http",      "url": "https://mcp.zooza.app/mcp"    }  }}

File location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Restart Claude Desktop. On first use, you'll be prompted to sign in to your Zooza account — no API keys, no extra setup, just your existing login.

Claude Code

Download the latest plugin from Releases (file named zooza-plugin-v*.zip) and run:

/install-plugin zooza-plugin-v*.zip

The plugin includes the MCP connection config, guided workflow skills, and automatic session context.

Note: Five of the 35 tools (get_terminology, explain_data_model, comms_list_merge_vars, classes_list_schedule_patterns, negotiate_terminology) work without any Zooza account — useful for exploring how the data model works before connecting live data.


How it works

You → Claude / ChatGPT → Zooza MCP Server → Zooza API → Your data

The MCP server is stateless and hosted by Zooza at mcp.zooza.app. You don't run anything locally. Every request is authenticated against your Zooza account — Claude can only see and change what you're already allowed to access in the dashboard.

Every write operation requires explicit confirmation before anything is committed — Claude shows you what it's about to create or change, and only proceeds when you confirm.

Regions: EU (SK/CZ/DE/RO/HU/IT/PL), UK, US, and Asia regions are all supported. Your account is automatically routed to the correct regional infrastructure.

Multi-location and franchise accounts: Claude will ask which location to operate on at the start of each session. You can switch mid-conversation — useful for comparing across sites or managing a network.


Languages & regions

Zooza MCP is designed for multilingual, multi-market operation. It understands regional terminology differences out of the box:

MarketLanguageHow Zooza users say it
SlovakiaSlovakkurzy (programmes), hodiny (sessions), dochádzka (attendance)
Czech RepublicCzechkurzy / lekce (sessions), evidence docházky (attendance)
Germany / AustriaGermanKurse (courses), Stunden (sessions), Stundenplan (schedule)
UKEnglishterms, registers, classes
Romania, Hungary, Italy, PolandLocal + Englishsupported

The negotiate_terminology tool lets Claude learn your business's specific vocabulary once and use it in every future conversation — so if you call programmes "kurzy" and sessions "hodiny," Claude will always respond in your terms.


Available tools

35 tools covering scheduling, attendance, bookings and leads, client communication, payments and instalment billing, reporting, class and session editing, and Zooza domain knowledge.

Scheduling & class management

ToolWhat it does
classes_add_courseCreate a new programme — the container that holds pricing, payment settings, and booking-form config. Only for a genuinely new offering; a new term or time slot is a class inside an existing programme
classes_preview_schedulePreview a recurring class schedule before committing
classes_preview_eventsPreview individual sessions across a date range
classes_commit_classCreate a class with a full recurring session schedule

Editing classes & sessions

Every edit is a two-step preview → confirm — you call the same tool twice, and nothing changes until you approve the diff.

ToolWhat it does
classes_updateEdit a class — name, price, capacity, billing period, instructor, venue, or duration. Call once to preview, again with the token to apply
sessions_updateEdit specific sessions — reschedule a date/time, or change instructor, venue, or duration. Call once to preview, again with the token to apply. Can notify affected clients
classes_update_course_settingsChange programme settings one section at a time — pricing, online booking, make-ups, trial, auto-enrolment, attendance, feedback, or archiving
trainers_add_helpersRegister additional lecturers (second instructor / assistant / helper) on classes and pick which sessions each works — "Martin Mondays, Peter Tuesdays, both Wednesdays". Call once to preview, again with the token to apply

Attendance

ToolWhat it does
sessions_find_eventsFind scheduled sessions by date, trainer, or programme
sessions_get_attendanceGet the attendance list for one session — who is enrolled and their current status
sessions_mark_attendanceRecord attendance for each participant (attended / absent / late-cancel)
sessions_add_summaryAdd a coach note or session summary to a completed event

Bookings

ToolWhat it does
bookings_findFind who is enrolled in a class, resolve a client, or list unpaid registrations
bookings_add_leadCapture an inbound enquiry as a trackable lead record. Does not enrol, charge, or email the customer

Client communication

ToolWhat it does
comms_list_templatesList the automated email templates Zooza sends to this company's clients
comms_send_messageEmail an audience (programme, class, booking, client, or segment). Call once to plan — nothing is sent — then again with the token to send
comms_find_repliesRead what customers replied back to your Zooza emails, and mark a reply todo or resolved so the same one isn't handled twice

Payments & instalment billing

Setting up instalments is three separate objects: the programme carries the price, a template says how to split it, and a plan attaches that split to one client's booking. A programme set to instalment collection produces no payment schedule until a template is attached, and a template on a programme is not inherited — each booking needs the plan applied.

ToolWhat it does
setup_add_payment_templateCreate a company-level payment plan template — how many instalments, how often, with what discount and rounding. The template never carries the price
setup_update_course_templatesChoose which templates a programme offers clients — attach new ones, and detach the ones Zooza auto-attached that shouldn't be there. Preview, then confirm
payments_add_planPut one booking on a payment plan. Preview returns the total and the instalment dates, then confirm to apply

Leads, labels & follow-up

ToolWhat it does
labels_markAttach or detach a label on a programme, class, or registration — tag a lead converted, flag one todo. Labels on a class can be visible on the public booking widget; the output tells you which
todos_addCreate a to-do for a colleague, optionally linked to the record it's about, with a due date — how you escalate something that needs a human
todos_markChange a to-do's status once it's been handled

Reporting

ToolWhat it does
reports_get_dataReturn real, pre-aggregated business numbers (occupancy, unpaid, attendance, revenue…) to compose a report

Lookups

ToolWhat it does
whoamiIdentify the connected user and list accessible companies/locations
classes_find_coursesSearch programmes by billing period, name, or status
classes_find_classesFind a specific class/group within a programme and resolve its schedule_id
classes_find_resource (kind:"billing_period")List billing periods (seasons/terms) for a company
classes_find_resource (kind:"trainer")List trainers available at a location
classes_find_resource (kind:"trainer_rate_type")List a company's trainer pay-rate types (used when assigning a rate)
classes_find_resource (kind:"place")List rooms and locations for a company

Free tools — Zooza domain knowledge (no API calls, no account needed)

These five tools carry Zooza-specific knowledge and work without credentials — no Zooza account required. Useful for exploring the data model, preparing messages, and setting up vocabulary before connecting live data.

ToolWhat it does
get_terminologyTranslate Zooza terms by region — e.g. "Programme" vs "Course" vs "Kurz"
explain_data_modelExplain how Zooza entities relate (Programme → Class → Session → Registration)
comms_list_merge_varsFull catalogue of merge variables for Zooza message templates
classes_list_schedule_patternsReference for recurrence patterns (weekly, bi-weekly, block, camp)
negotiate_terminologySave your business vocabulary to Claude memory for future sessions

Utilities

ToolWhat it does
get_skillLoad a guided playbook for multi-step workflows
submit_feedbackSubmit a feature request or bug report to the Zooza engineering team

Skills — guided activity workflows

Skills are playbooks that teach Claude how to combine tools correctly for real operational scenarios. Claude loads the right skill automatically when it detects a matching request.

SkillWhat it handles
onboarding-profileGuided first-run setup — identifies the business model, aligns vocabulary, and walks through the full setup checklist.
class-managementFull guided flow for creating a class: interview → schedule preview → confirmation.
schedule-optimizationBuild a whole weekly timetable for a new term — optimise from scratch or roll over the current period.
communicationGuided client email flow: work out the audience, pick a template or compose, preview recipient counts, send after confirmation.
report-discoveryMaps a business symptom ("feels like fewer kids coming") to the right metric and report.
report-composeBuild a focused, single-question report from the operator's real data — no invented numbers.
business-model-validatorCheck whether a proposed programme structure fits Zooza's pricing and billing model before building it.
negotiate-terminologyInterview the operator about their vocabulary and save the profile to Claude memory.
feedback-nudgeDraft and submit a bug report or feature request to the Zooza engineering team.
report-page-newAdd a brand-new page to the client reports app when a question has no existing view but the data exists.

Security & compliance

  • TLS on all traffic between your AI client and mcp.zooza.app
  • OAuth 2.0 — Claude receives a scoped token tied to your Zooza identity, not your password
  • Permission inheritance — Claude can only do what your Zooza account allows
  • Confirmation before write — all operations that create or change records require explicit confirmation
  • Stateless server — the MCP server holds no session state between requests. For security and debugging, Zooza keeps a server-side audit log of tool calls (which tool ran, its arguments, and the result); it stays within Zooza's own infrastructure and is never shared with third parties
  • GDPR-ready — Zooza processes data in accordance with GDPR. See the Privacy Policy and Terms of Personal Data Processing. EU accounts are routed to EU-region infrastructure.
  • Regional data routing — EU, UK, US, and Asia regions each route to their own infrastructure; your JWT determines the region automatically

Queries to Zooza MCP may be processed by your chosen AI provider (Anthropic, OpenAI, etc.). Review their data policies alongside Zooza's when evaluating compliance requirements. All write operations require explicit confirmation before execution.


What Zooza is

Zooza is an end-to-end class management and scheduling software platform for activity brands:

Dance & movement — dance academies, gymnastics, baby movement classes, yoga
Language & education — language schools, tutoring centres, STEAM / robotics / coding
Sports — martial arts, swim schools, tennis academies, sports clubs and franchises
Camps & seasonal — summer camps, holiday programmes, weekend workshops
Music — music schools, instrument lessons, group and individual programmes
Fitness & wellness — fitness studios, pilates, baby & toddler classes

All running on one platform, from a single location to an international franchise network.

Zooza handles the full operational lifecycle: programme setup, class scheduling, client bookings and registrations, attendance tracking, payment management, parent communication, and multi-location reporting — designed to automate the manual work that currently lives in spreadsheets, WhatsApp groups, and six different dashboard tabs.

Zooza MCP extends this platform to AI. Instead of clicking through dashboards, your team — from activity managers to franchise operators — can operate Zooza through natural language conversation using Claude, ChatGPT, or any AI client that speaks the Model Context Protocol.


Roadmap

ToolWhat it will do
cancel_dayCancel all classes on a date with optional parent notifications
transfer_bookingMove a client from one class to another
initiate_refundPrepare and confirm a credit or refund

For developers

Local development setup

Run locally

bash
git clone https://github.com/zooza-dev/zooza-mcp-servercd zooza-mcp-servernpm installcp .env.example .env   # fill in credentialsnpm run dev            # http://localhost:3001/mcp

Want to self-host, contribute, or build on top of this? The setup takes under 5 minutes — see the architecture section below.

Environment variables

VariableRequiredDescription
ZOOZA_API_BASEyesZooza API base URL (e.g. http://php-server/v1)
ZOOZA_API_KEYyesServer-wide API key for the MCP integration
MCP_RESOURCE_URLprodPublic URL of this MCP server
MCP_AUTH_SERVER_URLprodZooza OAuth server base URL
PORTnoHTTP port (default 3001)
ZOOZA_SERVER_REGIONnoeu (default) / uk / us / asia
ZOOZA_ALLOW_HARDCODED_AUTHdev onlySet true to skip JWT validation locally
ZOOZA_API_TOKENdev onlyDev-fallback token (only with hardcoded auth enabled)
AUDIT_LOG_PATHnoPer-tool-call JSONL audit log path (default logs/audit.log)

Smoke test

bash
curl -sS http://localhost:3001/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Debug bookend workflow

Every tool call appends one JSON line to logs/audit.log. Each entry carries request_id, tool, args, outcome, result-or-error, and duration_ms.

Bookend pattern for debugging:

  1. "I'm about to call sessions_find_events." → Claude records the log line count
  2. Run the tool from your MCP client
  3. "done." → Claude reads the new lines and reports what the server saw

Architecture

Claude / ChatGPT (any MCP client)    │  Streamable HTTP over TLS    ▼mcp.zooza.app  (Node.js / TypeScript — stateless)    │  OAuth 2.0 JWT validation + regional routing    ▼Zooza API  (your data, your permissions)

The skills layer is a differentiator worth noting: skills are .md playbooks delivered as MCP prompts resources. An operator installs them locally (/install-plugin) and Claude loads the relevant one automatically. If you're building a vertical MCP server for another domain, the skills architecture is reusable — it separates "what tools do" from "how to use them together."


Support

help.zooza.online — Full documentation
zooza.online — Platform website
[email protected] — Get in touch
signup.zooza.online — Create a Zooza account

If this saves you time, a ⭐ helps others find it.


Built by Zooza — class management and scheduling software for activity brands.

Source: README.md at commit e0dce26

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts