Skip to main content
Glama
YingsHermes

Lifestyle MCP Gym

by YingsHermes

Lifestyle MCP Gym

Lifestyle MCP Gym ist eine agentenbereite Datenschicht für Fitnessstudio und Personaltrainer: Menschen verwalten Ernährung, benutzereingegebene Lebensmittel, Workouts, Körpermetriken und deterministische Wellness-Schätzwerte über ein responsives Dashboard und eingeschränkte JSON-RPC-MCP-Tools.

Funktionen

  • Registrierung und Anmeldung von Menschen mit Passwort-Hashing, sicheren HTTP-only-Sitzungscookies, Zielen, Erfahrung, Zeitzone und Einwilligung.

  • Agentenregistrierung mit eingeschränkten Fähigkeiten, optionalem HTTPS-Webhook, Besitzer-Metadaten und einer Antwort mit einem einmaligen Geheimnis. Es wird nur ein Hash gespeichert.

  • Workout-Tracking: Übungen, Sätze, Wiederholungen, Gewicht, Dauer, Notizen und letzte Aktivitäten.

  • Körpermetriken: Gewicht, Körperfett, Taillenumfang, Datum und Notizen.

  • Ernährungsprofile und begrenzte Lebensmittelprotokolle. Nährwerte werden immer vom Benutzer eingegeben und niemals erfunden.

  • Deterministischer Mifflin-St Jeor BMR, aktivitätsfaktor-neutrale Erhaltungskalorien, explizite zielangepasste Kalorien und gewichtsbasierte Makro-Schätzungen mit versionierten Annahmen, Warnungen bei Vorzeichenkonflikten, Hinweisen bei fehlenden Eingaben, Sicherheitsuntergrenzen und Wellness-Haftungsausschlüssen.

  • Coaching-Kontext mit einem einzigen Aufruf mit Ernährungsprofil, berechneten Zielen, heutiger Ernährung, letzten Trainingsstatistiken, neuesten Körpermetriken und expliziten nächsten Schritten.

  • MCP-JSON-RPC-Endpunkt unter /api/mcp mit initialize, tools/list und tools/call.

  • Eingeschränkte MCP-Tools für Workouts, Metriken, Ernährung, Coaching-Kontext, Agentenregistrierung und Dashboard-Zugriffslinks.

Related MCP server: wger MCP Server

Lokal ausführen

Voraussetzungen: Node.js 20+ und npm.

npm install
cp .env.example .env.local
npm run dev

Öffnen Sie http://localhost:3000.

Der standardmäßige lokale Speichertreiber ist eine JSON-Datei unter .data/lifestyle-gym.json. Sie ist für die lokale Entwicklung nützlich und wird von Git ignoriert. Um stattdessen einen expliziten Demo-Speicher zu verwenden:

LIFESTYLE_STORAGE_DRIVER=memory npm run dev

Der In-Memory-Speicher wird beim Neustart des Serverprozesses zurückgesetzt.

Umgebung

Siehe .env.example:

  • SUPABASE_URL: Projekt-URL aus den Supabase-API-Einstellungen.

  • SUPABASE_SERVICE_ROLE_KEY: Service-Role-Geheimnis aus den Supabase-API-Einstellungen.

  • LIFESTYLE_STORAGE_DRIVER: Lokaler Fallback, entweder file oder memory.

  • LIFESTYLE_DATA_FILE: Optionaler Pfad für lokalen JSON-Speicher.

Wenn beide Supabase-Variablen vorhanden sind, wählt der Server automatisch SupabaseStorage; andernfalls bleibt das bestehende Datei-/Speicherverhalten erhalten. Auf Vercel ist der Fallback ein prozesslokaler Speicher, sofern nicht explizit der Datei-Treiber ausgewählt wird.

Sicherheit: SUPABASE_SERVICE_ROLE_KEY ist nur für den Server bestimmt. Stellen Sie ihm niemals NEXT_PUBLIC_ voran, importieren Sie den Speicheradapter nicht in Client-Code, geben Sie den Schlüssel nicht aus und committen Sie ihn nicht. Die App speichert Passwort-Hashes, Sitzungs-Token-Hashes und Agent-Geheimnis-Hashes; rohe Agent-Geheimnisse werden nur einmal zurückgegeben.

Supabase-Setup

  1. Erstellen Sie ein Supabase-Projekt.

  2. Verbinden Sie die Supabase-CLI mit dem Projekt und wenden Sie die eingecheckte Migration an:

    npx supabase@latest link --project-ref YOUR_PROJECT_REF
    npx supabase@latest db push

    Die eingecheckten Migrationen sind idempotent und können bedenkenlos erneut ausgeführt werden.

  3. Kopieren Sie die Projekt-URL und den Service-Role-Schlüssel in .env.local für einen lokalen Server mit Supabase-Backend.

  4. Starten Sie den Next.js-Server neu und bestätigen Sie, dass /api/status den Speichermodus supabase meldet.

Die Migrationen erstellen normalisierte Menschen, Sitzungen, Agenten, Workouts, Workout-Übungen/-Sätze, Körpermetriken, Ernährungsprofile und Ernährungseinträge. Row Level Security ist auf jeder Tabelle aktiviert. Es gibt bewusst keine öffentlichen Richtlinien: Der gesamte Datenzugriff erfolgt über den serverseitigen Service-Role-Client.

MCP-Schnellstart

Registrieren Sie einen Menschen im Dashboard und erstellen Sie dann einen Agenten. Das Agent-Geheimnis wird einmal angezeigt. Senden Sie es als Bearer-Token:

curl -s https://YOUR_DEPLOYMENT/api/mcp \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer YOUR_AGENT_SECRET' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

curl -s https://YOUR_DEPLOYMENT/api/mcp \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer YOUR_AGENT_SECRET' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Browser-Sitzungen von Menschen können den Endpunkt vom selben Ursprung aus aufrufen. Agent-Tool-Aufrufe erfordern die entsprechenden Scopes. Die vorhandenen Workout- und Metrik-Scopes bleiben unverändert. Ernährungstools verwenden nutrition:read oder nutrition:write; get_coaching_context verwendet nur coaching:read, das den aggregierten Lesezugriff autorisiert, ohne separate Ernährungs-, Workout- oder Metrik-Tools zu gewähren.

LLM-fähiger Coaching-Kontext

Ein Agent mit coaching:read kann alle fundierten Coaching-Eingaben in einem einzigen Aufruf abrufen:

curl -s https://YOUR_DEPLOYMENT/api/mcp \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer YOUR_AGENT_SECRET' \
  --data '{
    "jsonrpc":"2.0",
    "id":"coach-context",
    "method":"tools/call",
    "params":{"name":"get_coaching_context","arguments":{}}
  }'

Die Antwort enthält prägnanten Text in result.content und maschinenlesbares JSON in result.structuredContent. Die berechneten Ziele umfassen die Formelversion, exakte Eingaben und Annahmen, fehlende Eingaben, Erläuterungen zum Clamping, einen Sicherheitshinweis und die folgenden expliziten Zielfelder:

Feld

Bedeutung

maintenanceCalories

Neutrale TDEE-Basislinie vor jeder Zielanpassung.

goalTargetCalories

Kalorienziel nach Anwendung des ausgewählten Ziels „Abnehmen“, „Halten“ oder „Zunehmen“.

goalAdjustmentCalories

Vorzeichenbehaftete Differenz zwischen goalTargetCalories und maintenanceCalories.

goal

Ausgewählte Richtung: lose, maintain, gain oder null, wenn nicht verfügbar.

goalSummary

Für Menschen lesbarer Satz, der Richtung und Anpassung angibt.

suggestions

Zielspezifische Coaching- und Nächste-Schritte-Vorschläge.

targetCalories

Abwärtskompatibler Alias von goalTargetCalories.

lose liegt standardmäßig unter den Erhaltungskalorien, gain darüber und maintain entspricht den Erhaltungskalorien. Ein benutzerdefiniertes targetRateKgPerWeek ist vorzeichenbehaftet: negativ für Gewichtsverlust und positiv für Gewichtszunahme. Wenn sein Vorzeichen dem ausgewählten Ziel widerspricht, normalisiert die Berechnung das Vorzeichen, meldet diese Annahme und verwendet die normalisierte Rate. Der Coaching-Kontext wiederholt sowohl die neutrale Basislinie als auch das zielangepasste Ziel in seinem für Menschen lesbaren Text.

Benutzereingegebene Lebensmittel protokollieren

log_food sucht niemals Nährwerte nach und erfindet keine. Geben Sie die Gesamtwerte für den vollständigen Protokolleintrag an, einschließlich aller Portionen:

curl -s https://YOUR_DEPLOYMENT/api/mcp \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer YOUR_AGENT_SECRET' \
  --data '{
    "jsonrpc":"2.0",
    "id":"food-1",
    "method":"tools/call",
    "params":{
      "name":"log_food",
      "arguments":{
        "eatenAt":"2026-08-20T12:30:00Z",
        "mealType":"lunch",
        "foodName":"Tofu rice bowl",
        "servingSize":"1 bowl",
        "servings":1,
        "caloriesKcal":640,
        "proteinG":31,
        "carbohydratesG":82,
        "fatG":19,
        "fiberG":11,
        "notes":"Totals entered from the recipe"
      }
    }
  }'

Validieren

npm test
npm run lint
npm run build

Auf Vercel bereitstellen

Legen Sie diese Vercel-Umgebungsvariablen für jede Umgebung fest, die persistenten Speicher verwenden soll:

  • SUPABASE_URL

  • SUPABASE_SERVICE_ROLE_KEY

Verwenden Sie das Vercel-Dashboard oder vercel env add; halten Sie den Service-Role-Wert aus dem Befehlsverlauf und den Deployment-Protokollen heraus. Erstellen Sie keine NEXT_PUBLIC_-Kopie.

Stellen Sie dann eine Vorschau bereit:

npx vercel@latest --token "$VERCEL_TOKEN" --yes

Verwenden Sie --prod nur für eine beabsichtigte Produktionsbereitstellung. Überprüfen Sie das zurückgegebene Deployment mit npx vercel@latest inspect <deployment-url> --token "$VERCEL_TOKEN".

Architektur

  • src/components/: Client-Dashboard, Authentifizierung, Formulare und API-Leitfaden.

  • src/app/api/: Next.js-Route-Handler für Authentifizierung, Workouts, Metriken, Statistiken, Agenten, Status und MCP.

  • src/lib/domain.ts: Validierte Domäneneingabe-Schemas und Statistikberechnungen.

  • src/lib/service.ts: Authentifizierung, Autorisierung und Anwendungsoperationen.

  • src/lib/storage/: Speicherschnittstelle plus Adapter für Supabase, lokales JSON und In-Memory.

  • src/lib/mcp.ts: JSON-RPC/MCP-Anfragevalidierung, Tools, Authentifizierung und Durchsetzung der Scopes.

LifestyleStorage hält Domäne, Service, UI und MCP-Verhalten unabhängig vom gewählten Persistenzadapter.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Connect Pelaris to any MCP-compatible AI assistant for personalised fitness coaching. Plan training programs, log workouts, track benchmarks, manage goals, and get data-driven coaching insights. Supports science-based methodologies including 5/3/1, Pfitzinger, polarised training, and more. OAuth 2.0 authentication with Streamable HTTP transport. Documentation: https://pelaris.io/integrations Web
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that wraps wger fitness/nutrition management platform, providing 15 tools for exercise search, ingredient nutrition lookup, weight tracking, and more, accessible to any MCP-compatible AI agent.
  • F
    license
    A
    quality
    B
    maintenance
    Personal workout coach MCP server that logs exercises in natural language, tracks progress with SQLite, and provides coaching signals like estimated 1RM and volume trends.
    6
  • F
    license
    Not graded
    quality
    C
    maintenance
    A personal health and fitness MCP server that provides tools for managing profile data, goals, body measurements, nutrition, workouts, sleep, check-ins, life events, analytics, and coach memories via Supabase Postgres.
    1

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for AI SDK benchmark dashboard, built to return verdicts, receipts, usage logs, an

  • A paid remote MCP for AI SDK eval dashboard, built to return verdicts, receipts, usage logs, and aud

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YingsHermes/lifestyle-mcp-gym'

If you have feedback or need assistance with the MCP directory API, please join our Discord server