zooza-mcp-server

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Uyari
  • network request — Outbound network request in src/auth/branding.ts
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

MCP server for Zooza — natural language class scheduling, attendance tracking, and booking management for dance schools, language academies, swim schools, sports clubs, and activity franchises. Works with Claude and ChatGPT.

README.md

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, 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 studio managers, school administrators, and franchise operators manage schedules, track attendance, create classes, handle bookings, 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."

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?"

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


Supported clients

Client How to connect
Claude Desktop Native MCP over HTTPS
Claude Code Plugin zip or manual .mcp.json
ChatGPT OpenAI Actions — domain verified at mcp.zooza.app
Any MCP-compatible client Streamable 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:

{
  "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 19 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:

Market Language How Zooza users say it
Slovakia Slovak kurzy (programmes), hodiny (sessions), dochádzka (attendance)
Czech Republic Czech kurzy / lekce (sessions), evidence docházky (attendance)
Germany / Austria German Kurse (courses), Stunden (sessions), Stundenplan (schedule)
UK English terms, registers, classes
Romania, Hungary, Italy, Poland Local + English supported

The negotiate_terminology tool lets Claude learn your studio'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

19 tools covering scheduling, attendance tracking, class management, and Zooza domain knowledge.

Scheduling & class management

Tool What it does
classes_preview_schedule Preview a recurring class schedule before committing
classes_preview_events Preview individual sessions across a date range
classes_commit_class Create a class with a full recurring session schedule

Attendance

Tool What it does
sessions_find_events Find scheduled sessions by date, trainer, or programme
get_attendance_roster Get the full register for one session — who is enrolled and their current status
sessions_mark_attendance Record attendance for each participant (attended / absent / late-cancel)
sessions_add_summary Add a coach note or session summary to a completed event

Lookups

Tool What it does
whoami Identify the connected user and list accessible companies/locations
classes_find_courses Search programmes by billing period, name, or status
classes_find_billing_periods List billing periods (seasons/terms) for a company
trainers_find List trainers available at a location
classes_find_places 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.

Tool What it does
get_terminology Translate Zooza terms by region — e.g. "Programme" vs "Course" vs "Kurz"
explain_data_model Explain how Zooza entities relate (Programme → Class → Session → Registration)
comms_list_merge_vars Full catalogue of merge variables for Zooza message templates
classes_list_schedule_patterns Reference for recurrence patterns (weekly, bi-weekly, block, camp)
negotiate_terminology Save your studio's vocabulary to Claude memory for future sessions

Utilities

Tool What it does
get_skill Load a guided playbook for multi-step workflows
submit_feedback Submit 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.

Skill What it handles
class-management Full guided flow: interview → schedule preview → confirmation. Use when creating any class with recurring sessions.
business-model-validator Validate a proposed programme structure against Zooza's pricing and billing model before building it.
negotiate-terminology Interview the operator about their vocabulary and save the profile to Claude memory.

Coming next: cancel_day · transfer_booking · initiate_refund


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
  • No conversation storage — the MCP server is stateless; your prompts are not logged by the MCP layer
  • 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 schools and studios:

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

Tool What it will do
cancel_day Cancel all classes on a date with optional parent notifications
transfer_booking Move a client from one class to another
initiate_refund Prepare and confirm a credit or refund
Reporting tools Revenue summaries, attendance rates, capacity utilisation
Communication tools Send templated messages to parents and registered clients

For developers

Local development setup

Run locally

git clone https://github.com/zooza-dev/zooza-mcp-server
cd zooza-mcp-server
npm install
cp .env.example .env   # fill in credentials
npm 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

Variable Required Description
ZOOZA_API_BASE yes Zooza API base URL (e.g. http://php-server/v1)
ZOOZA_API_KEY yes Server-wide API key for the MCP integration
MCP_RESOURCE_URL prod Public URL of this MCP server
MCP_AUTH_SERVER_URL prod Zooza OAuth server base URL
PORT no HTTP port (default 3001)
ZOOZA_SERVER_REGION no eu (default) / uk / us / asia
ZOOZA_ALLOW_HARDCODED_AUTH dev only Set true to skip JWT validation locally
ZOOZA_API_TOKEN dev only Dev-fallback token (only with hardcoded auth enabled)
AUDIT_LOG_PATH no Per-tool-call JSONL audit log path (default logs/audit.log)

Smoke test

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 schools and studios.

Yorumlar (0)

Sonuc bulunamadi