aidoo-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aidoo-mcp-server What contracts are expiring next month?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aidoo MCP Server
MCP Server für die Aidoo Fitnessstudio-Verwaltungssoftware. Ermöglicht den Zugriff auf Mitglieder, Verträge, Kurse, Buchungen und mehr direkt aus Claude heraus.
Voraussetzungen
Aidoo API-Zugang: Sie benötigen einen API-Key von Aidoo. Kontaktieren Sie dafür Burkhard Westermann (westermann@aidoo.de).
Node.js: Version 18 oder höher
Related MCP server: fitness-mcp-server
Installation
cd "/Users/rthode/projects/AIDOO MCP"
npm install
npm run buildKonfiguration
Umgebungsvariablen
Variable | Erforderlich | Beschreibung |
| Ja | Ihr Aidoo API Bearer Token |
| Nein | API URL (Standard: |
| Nein | Standard Studio-ID für Abfragen |
Claude Desktop Konfiguration
Fügen Sie folgendes zu Ihrer Claude Desktop Konfiguration hinzu (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"aidoo": {
"command": "node",
"args": ["/Users/rthode/projects/AIDOO MCP/dist/index.js"],
"env": {
"AIDOO_API_KEY": "ihr-api-key-hier",
"AIDOO_GYM_ID": "ihre-gym-id"
}
}
}
}Claude Code Konfiguration
Für Claude Code fügen Sie den Server in Ihre .mcp.json ein:
{
"mcpServers": {
"aidoo": {
"command": "node",
"args": ["/Users/rthode/projects/AIDOO MCP/dist/index.js"],
"env": {
"AIDOO_API_KEY": "ihr-api-key-hier",
"AIDOO_GYM_ID": "ihre-gym-id"
}
}
}
}Verfügbare Tools
Mitglieder (Members)
Tool | Beschreibung |
| Mitglieder auflisten/suchen |
| Einzelnes Mitglied abrufen |
| Neues Mitglied erstellen |
| Mitglied aktualisieren |
Verträge (Contracts)
Tool | Beschreibung |
| Verträge auflisten/suchen |
| Einzelnen Vertrag abrufen |
| Auslaufende Verträge finden |
Kurse (Classes)
Tool | Beschreibung |
| Kurse auflisten |
| Einzelnen Kurs abrufen |
| Kursplan für Zeitraum |
Buchungen (Bookings)
Tool | Beschreibung |
| Buchungen auflisten |
| Buchungen eines Mitglieds |
| Kursbuchung erstellen |
| Buchung stornieren |
Studios (Gyms)
Tool | Beschreibung |
| Studios auflisten |
| Studio-Details abrufen |
Trainer
Tool | Beschreibung |
| Trainer auflisten |
| Trainer-Details abrufen |
Check-Ins
Tool | Beschreibung |
| Check-ins auflisten |
| Check-in durchführen |
Webhooks
Tool | Beschreibung |
| Webhooks auflisten |
| Webhook erstellen |
| Webhook löschen |
Statistiken
Tool | Beschreibung |
| Mitglieder-Statistiken |
| Studio-Statistiken |
Beispiel-Anfragen
Mitglieder suchen
"Zeige mir alle Mitglieder mit Nachname Müller"
→ Nutzt aidoo_list_members mit lastname="Müller"Auslaufende Verträge
"Welche Verträge laufen im nächsten Monat aus?"
→ Nutzt aidoo_get_expiring_contractsKursplan abrufen
"Zeige mir den Kursplan für diese Woche"
→ Nutzt aidoo_get_scheduleWebhook für Kündigungen
"Benachrichtige mich bei Vertragsänderungen"
→ Nutzt aidoo_create_webhook mit entity_name="contract"Extensions (Verknüpfte Daten)
Die Aidoo API unterstützt das Laden verknüpfter Daten über den extensions Parameter:
aidoo_list_members mit extensions=["contracts", "bookings"]
→ Lädt Mitglieder inkl. deren Verträge und BuchungenMögliche Extensions je nach Entität:
members:
contracts,bookings,checkinscontracts:
memberclasses:
trainer,room,bookingsbookings:
member,class
Entwicklung
# Development-Modus mit Hot-Reload
npm run dev
# Mit MCP Inspector testen
npm run inspectHinweise
Die API ist auf maximal 100 Ergebnisse pro Anfrage begrenzt. Nutzen Sie
limitundoffsetfür Paging.Nach dem Erstellen eines Webhooks kann es bis zu 1 Minute dauern, bis er aktiv ist.
Der API-Zugang erfordert eine Partnerschaftsvereinbarung mit Aidoo.
Lizenz
MIT
Available Tools
25 toolsaidoo_cancel_bookingA
Storniere eine bestehende Buchung.
Inputs: booking_id (required).
aidoo_create_bookingB
Erstelle eine neue Kursbuchung für ein Mitglied.
Inputs: class_id (required), member_id (required).
aidoo_create_checkinB
Erstelle einen Check-in für ein Mitglied.
Inputs: member_id (required).
aidoo_create_memberB
Erstelle ein neues Mitglied im System.
Inputs: lastname (required), firstname (required), zip, city, +5 more.
aidoo_create_webhookA
Erstelle einen neuen Webhook um über Änderungen benachrichtigt zu werden.
Inputs: entity_name (required), webhook_url (required), observer_name (required), extensions, +2 more.
aidoo_delete_webhookB
Lösche einen registrierten Webhook.
Inputs: webhook_id (required).
aidoo_get_classA
Rufe Details eines einzelnen Kurses ab.
Inputs: class_id (required), extensions.
aidoo_get_contractA
Rufe Details eines einzelnen Vertrags ab.
Inputs: contract_id (required), extensions.
aidoo_get_expiring_contractsA
Finde alle Verträge die in einem bestimmten Zeitraum auslaufen.
Inputs: max_end_date (required), min_end_date (required), limit, offset.
aidoo_get_gymB
Rufe Details eines Studios ab.
Inputs: gym_id (required).
aidoo_get_gym_statisticsC
Rufe Statistiken für ein Studio ab.
Inputs: gym_id.
aidoo_get_memberB
Rufe Details eines einzelnen Mitglieds ab.
Inputs: member_id (required), extensions.
aidoo_get_member_bookingsB
Rufe alle Buchungen eines bestimmten Mitglieds ab.
Inputs: member_id (required), limit, offset.
aidoo_get_member_statisticsB
Rufe Statistiken für ein Mitglied ab (Besuche, Kurse, etc.).
Inputs: member_id (required).
aidoo_get_scheduleB
Rufe den Kursplan für einen bestimmten Zeitraum ab.
Inputs: end_date (required), start_date (required), limit, offset.
aidoo_get_trainerB
Rufe Details eines Trainers ab.
Inputs: trainer_id (required).
aidoo_list_bookingsB
Liste alle Buchungen auf oder filtere nach Kriterien.
Inputs: id, limit, offset, class_id, +4 more.
aidoo_list_checkinsC
Liste alle Check-ins auf oder filtere nach Kriterien.
Inputs: limit, offset, max_date, min_date, +1 more.
aidoo_list_classesB
Liste alle Kurse auf oder filtere nach Kriterien.
Inputs: id, limit, offset, room_id, +4 more.
aidoo_list_contractsB
Liste alle Verträge auf oder filtere nach Kriterien.
Inputs: id, limit, offset, status, +4 more.
aidoo_list_gymsB
Liste alle Studios auf.
Inputs: limit, offset.
aidoo_list_membersA
Liste alle Mitglieder auf oder filtere nach Kriterien. Kann mit Extensions erweitert werden um verknüpfte Daten (Verträge, etc.) einzuschließen.
Inputs: id, email, limit, offset, +4 more.
aidoo_list_trainersC
Liste alle Trainer auf.
Inputs: limit, offset, class_attendee_id.
aidoo_list_webhooksB
Liste alle registrierten Webhooks auf.
Inputs: no named parameters.
aidoo_update_memberC
Aktualisiere ein bestehendes Mitglied.
Inputs: member_id (required), zip, city, email, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 25 tools
Each tool targets a distinct resource and action, with clear separation between list/get/create/update/cancel/delete operations. Even the convenience get_member_bookings and get_expiring_contracts are clearly distinct from their list counterparts by specific filtering intent.
Tools follow a consistent aidoo_verb_noun pattern, but get is used for both single-item fetches and list-returning queries (e.g., get_expiring_contracts, get_member_bookings), while list is reserved for standard collection listings. This is a minor deviation from the ideal verb-per-action style.
With 25 tools, the server is on the heavier side, covering multiple domain areas (members, contracts, bookings, checkins, etc.). While each tool has a purpose, the count feels large for a single server and might benefit from splitting into focused services.
The surface provides solid read coverage for all major resources and write operations for members, bookings, checkins, and webhooks. However, there is no create/update/delete for contracts, classes, trainers, or gyms, leaving notable lifecycle gaps for core domain objects.
Related MCP Connectors
Stop manually creating generic reports that don't match your gym! Ask your AI about your studio's sales, classes and clients. Mindbody MCP server for Claude and ChatGPT. Connect your studio once, then ask about sales, classes, clients and memberships. Not affiliated with Mindbody.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that connects Whoop fitness data to Claude, enabling natural language queries about recovery, sleep, workouts, and more.-
- FlicenseNot gradedqualityDmaintenanceProvides MCP servers for Claude to access fitness data from Strava and intervals.icu, enabling natural language queries for activity analysis, advanced training metrics, and wellness tracking.1-
- FlicenseNot gradedqualityDmaintenanceMCP server that gives Claude access to real-time Garmin Connect and Strava data for analyzing training and suggesting sessions.-
- AlicenseBqualityDmaintenanceMCP server for integrating with the EVO gym management API, enabling access control, member management, activity scheduling, sales, and workout management through natural language.12MIT