Skip to main content
Glama
aidoo-mcp-server

aidoo-mcp-server

by ratho13

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

  1. Aidoo API-Zugang: Sie benötigen einen API-Key von Aidoo. Kontaktieren Sie dafür Burkhard Westermann (westermann@aidoo.de).

  2. Node.js: Version 18 oder höher

Related MCP server: fitness-mcp-server

Installation

cd "/Users/rthode/projects/AIDOO MCP"
npm install
npm run build

Konfiguration

Umgebungsvariablen

Variable

Erforderlich

Beschreibung

AIDOO_API_KEY

Ja

Ihr Aidoo API Bearer Token

AIDOO_BASE_URL

Nein

API URL (Standard: https://api.aidoo-online.de:10015)

AIDOO_GYM_ID

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

aidoo_list_members

Mitglieder auflisten/suchen

aidoo_get_member

Einzelnes Mitglied abrufen

aidoo_create_member

Neues Mitglied erstellen

aidoo_update_member

Mitglied aktualisieren

Verträge (Contracts)

Tool

Beschreibung

aidoo_list_contracts

Verträge auflisten/suchen

aidoo_get_contract

Einzelnen Vertrag abrufen

aidoo_get_expiring_contracts

Auslaufende Verträge finden

Kurse (Classes)

Tool

Beschreibung

aidoo_list_classes

Kurse auflisten

aidoo_get_class

Einzelnen Kurs abrufen

aidoo_get_schedule

Kursplan für Zeitraum

Buchungen (Bookings)

Tool

Beschreibung

aidoo_list_bookings

Buchungen auflisten

aidoo_get_member_bookings

Buchungen eines Mitglieds

aidoo_create_booking

Kursbuchung erstellen

aidoo_cancel_booking

Buchung stornieren

Studios (Gyms)

Tool

Beschreibung

aidoo_list_gyms

Studios auflisten

aidoo_get_gym

Studio-Details abrufen

Trainer

Tool

Beschreibung

aidoo_list_trainers

Trainer auflisten

aidoo_get_trainer

Trainer-Details abrufen

Check-Ins

Tool

Beschreibung

aidoo_list_checkins

Check-ins auflisten

aidoo_create_checkin

Check-in durchführen

Webhooks

Tool

Beschreibung

aidoo_list_webhooks

Webhooks auflisten

aidoo_create_webhook

Webhook erstellen

aidoo_delete_webhook

Webhook löschen

Statistiken

Tool

Beschreibung

aidoo_get_member_statistics

Mitglieder-Statistiken

aidoo_get_gym_statistics

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_contracts

Kursplan abrufen

"Zeige mir den Kursplan für diese Woche"
→ Nutzt aidoo_get_schedule

Webhook 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 Buchungen

Mögliche Extensions je nach Entität:

  • members: contracts, bookings, checkins

  • contracts: member

  • classes: trainer, room, bookings

  • bookings: member, class

Entwicklung

# Development-Modus mit Hot-Reload
npm run dev

# Mit MCP Inspector testen
npm run inspect

Hinweise

  • Die API ist auf maximal 100 Ergebnisse pro Anfrage begrenzt. Nutzen Sie limit und offset fü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 tools
aidoo_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

    B3.2/5.0

    Scored across 25 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count3/5

    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.

    Completeness3/5

    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

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server that connects Whoop fitness data to Claude, enabling natural language queries about recovery, sleep, workouts, and more.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides 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
      -
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for integrating with the EVO gym management API, enabling access control, member management, activity scheduling, sales, and workout management through natural language.
      12
      MIT