motimate-mcp
# motimate-mcp
MCP Server für [Motimate](https://www.motimateapp.com/) – ermöglicht Claude for Mac direkten Zugriff auf Schulungsinhalte eurer Organisation.
## Was ist Motimate?
[Motimate](https://www.motimateapp.com/) ist eine mobile Lernplattform (LMS) für Unternehmen. Mitarbeitende erhalten Schulungen, Onboardings und Trainings direkt auf ihr Smartphone – ideal für Teams im Außendienst, Einzelhandel oder Produktion. Inhalte werden als sogenannte **Motis** (kurze, interaktive Lerneinheiten) bereitgestellt und können zu **Lernpfaden** kombiniert werden.
### Was macht dieses Paket?
Dieses MCP-Paket (Model Context Protocol) verbindet die Motimate-API mit Claude. Damit kann Claude direkt auf Schulungsinhalte, Lernpfade und Fortschrittsdaten zugreifen – ohne Umweg über das Motimate-Dashboard. Nützlich für:
- **HR & L&D-Teams**: Schulungsinhalte per Chat durchsuchen und verwalten
- **Admins**: Neue Schulungen erstellen und bestehende aktualisieren
- **Manager**: Lernfortschritte von Teams abfragen
## Was kann Claude damit?
| Befehl | Beispiel-Prompt |
|--------|-----------------|
| Schulungen suchen | *„Zeig mir alle Schulungen zum Thema Onboarding"* |
| Schulungsdetails & Kapitel | *„Was sind die Kapitel in der Schulung ‚Onboarding Grundlagen'?"* |
| Lernpfade anzeigen | *„Welche Lernpfade gibt es bei uns?"* |
| Fortschritt abfragen | *„Wer hat die Sicherheitsschulung noch nicht abgeschlossen?"* |
| Neue Schulung erstellen | *„Erstelle eine neue Schulung mit dem Titel ‚Neue Feature Release Q2'"* |
| Schulung aktualisieren | *„Füge der Schulung ID 123 die Tags 'pflicht' und 'neu' hinzu"* |
## Voraussetzungen
- Node.js ≥ 18 ([nodejs.org](https://nodejs.org))
- Claude for Mac ([claude.ai/download](https://claude.ai/download))
- Motimate API-Zugangsdaten (`client_id` + `client_secret`) – beim Motimate-Support anfragen
## Installation (einmalig pro MacBook)
```bash
# 1. Repo klonen
git clone https://github.com/SkHCrusher/motimate-mcp.git
cd motimate-mcp
# 2. Abhängigkeiten installieren & bauen
npm install
npm run build
# 3. .env anlegen
cp .env.example .env
```
Jetzt `.env` mit einem Editor öffnen und die Werte eintragen:
```env
MOTIMATE_CLIENT_ID=dein_client_id
MOTIMATE_CLIENT_SECRET=dein_client_secret
MOTIMATE_API_BASE_URL=https://YOUR-ORG.motimateapp.com/public_api
MOTIMATE_APP_URL=https://motimate.app/your-org
```
## Claude for Mac konfigurieren
Die Konfigurationsdatei von Claude for Mac öffnen:
```bash
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
Folgenden Block einfügen (Pfad anpassen!):
```json
{
"mcpServers": {
"motimate": {
"command": "node",
"args": ["/ABSOLUTER/PFAD/ZU/motimate-mcp/dist/index.js"],
"env": {
"MOTIMATE_CLIENT_ID": "dein_client_id",
"MOTIMATE_CLIENT_SECRET": "dein_client_secret",
"MOTIMATE_API_BASE_URL": "https://YOUR-ORG.motimateapp.com/public_api",
"MOTIMATE_APP_URL": "https://motimate.app/your-org"
}
}
}
}
```
> **Tipp:** Den absoluten Pfad ermitteln mit `pwd` im Projektordner.
Claude for Mac neu starten – das Hammer-Symbol in der Eingabeleiste zeigt an, dass der Server verbunden ist.
## Rollout im Team
Für jedes MacBook im Team:
1. Repo klonen (oder ZIP herunterladen)
2. `npm install && npm run build`
3. `claude_desktop_config.json` mit den API-Credentials ergänzen
4. Claude for Mac neu starten
Die API-Credentials sind für alle gleich (Organisation-Level) – kein individueller Login nötig.
## API-Hinweise
- Rate Limit: 1.200 Requests pro 10 Minuten
- Auth: OAuth2 `client_credentials` – Token wird automatisch erneuert
- Die Basis-URL der API (`YOUR-ORG.motimateapp.com/public_api`) unterscheidet sich von der App-URL (`motimate.app/your-org`) – beide müssen in der `.env` gesetzt sein
## Remote Server (Claude Desktop Connector)
Statt den Server lokal zu installieren, kann er auch als HTTP-Server gehostet und über den Claude Desktop Connector-Dialog eingebunden werden.
### Server starten
```bash
# .env mit Credentials anlegen (siehe oben), dann:
npm run start:http
```
Der Server läuft dann auf `http://localhost:3000/mcp` (Port über `PORT`-Env-Variable änderbar).
### In Claude Desktop einbinden
1. In Claude Desktop: **Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen**
2. Name: `Motimate`
3. URL: `https://dein-server.example.com/mcp`
4. **Hinzufügen** klicken
> **Hinweis:** Claude Desktop erwartet HTTPS. Für Produktivbetrieb den Server hinter einem Reverse-Proxy (z.B. Caddy, nginx) oder auf einem Hosting-Dienst (Railway, Render, Fly.io) mit HTTPS betreiben.
## Verfügbare Tools
| Tool | Beschreibung |
|------|-------------|
| `motimate_search_motis` | Schulungen suchen & filtern |
| `motimate_get_moti_chapters` | Kapitel einer Schulung abrufen (inkl. Inhaltsblöcke) |
| `motimate_search_moti_content` | Inhalte aller Schulungen durchsuchen (Texte, Quizze) |
| `motimate_get_moti_progress` | Lernfortschritt abfragen |
| `motimate_search_learning_paths` | Lernpfade suchen |
| `motimate_get_learning_path_sections` | Abschnitte eines Lernpfads |
| `motimate_list_categories` | Alle Kategorien |
| `motimate_list_folders` | Alle Ordner |
| `motimate_create_moti` | Neue Schulung erstellen |
| `motimate_update_moti` | Schulung aktualisieren |
## Entwicklung
```bash
npm run dev # TypeScript watch mode
npm run build # Einmaliger Build
```
TDQS
Scored across 10 tools
The tools are mostly distinct, each targeting a clear resource-action pair such as searching trainings, retrieving chapters, checking progress, or managing learning paths. The only mild ambiguity is between search_motis and search_moti_content, but the descriptions clarify that one filters training metadata and the other searches inside training content.
All tools follow the same motimate_<verb>_<noun> pattern with search, get, list, create, and update verbs. The naming is predictable and consistent, making it easy for an agent to infer what each tool does.
Ten tools is well-scoped for a learning-platform MCP server. The set covers the main entity types without redundancy or unnecessary bloat.
Read and search coverage is strong, and basic create/update for trainings exists. However, there is no delete operation, no chapter management, and learning paths are read-only, so the lifecycle is incomplete and creating a Moti leaves content authoring as an external manual step.