Skip to main content
Glama
YingsHermes

Lifestyle MCP Gym

by YingsHermes

Lifestyle MCP Gym

Lifestyle MCP Gym es una capa de datos de gimnasio y entrenador personal preparada para agentes: los humanos gestionan nutrición, alimentos introducidos por el usuario, entrenamientos, métricas corporales y estimaciones de bienestar deterministas a través de un panel adaptable y herramientas MCP JSON-RPC con ámbito.

Capacidades

  • Registro e inicio de sesión de humanos con hash de contraseñas, cookies de sesión seguras solo HTTP, objetivos, experiencia, zona horaria y consentimiento.

  • Registro de agentes con capacidades con ámbito, webhook HTTPS opcional, metadatos del propietario y una respuesta de secreto de un solo uso. Solo se almacena un hash.

  • Seguimiento de entrenamientos: ejercicios, series, repeticiones, peso, duración, notas y actividad reciente.

  • Métricas corporales: peso, grasa corporal, cintura, fecha y notas.

  • Perfiles de nutrición y registros de alimentos acotados. Los valores nutricionales siempre los introduce el usuario y nunca se inventan.

  • BMR determinista de Mifflin-St Jeor, calorías de mantenimiento neutras respecto al factor de actividad, calorías ajustadas al objetivo explícitas y estimaciones de macronutrientes basadas en el peso con supuestos versionados, advertencias de discrepancia de signo, orientación sobre entradas faltantes, límites mínimos de seguridad y avisos de bienestar.

  • Contexto de coaching en una sola llamada con el perfil de nutrición, objetivos calculados, nutrición de hoy, estadísticas de entrenamiento recientes, últimas métricas corporales y próximas acciones explícitas.

  • Endpoint MCP JSON-RPC en /api/mcp con initialize, tools/list y tools/call.

  • Herramientas MCP con ámbito para entrenamientos, métricas, nutrición, contexto de coaching, registro de agentes y enlaces de acceso al panel.

Related MCP server: wger MCP Server

Ejecución local

Requisitos: Node.js 20+ y npm.

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

Abre http://localhost:3000.

El controlador de almacenamiento local predeterminado es un archivo JSON en .data/lifestyle-gym.json. Es útil para el desarrollo local y git lo ignora. Para usar en su lugar un almacenamiento de demostración explícito:

LIFESTYLE_STORAGE_DRIVER=memory npm run dev

El almacenamiento en memoria se restablece cuando se reinicia el proceso del servidor.

Entorno

Consulta .env.example:

  • SUPABASE_URL: URL del proyecto de la configuración de la API de Supabase.

  • SUPABASE_SERVICE_ROLE_KEY: secreto de rol de servicio de la configuración de la API de Supabase.

  • LIFESTYLE_STORAGE_DRIVER: respaldo local, ya sea file o memory.

  • LIFESTYLE_DATA_FILE: ruta opcional para el almacenamiento JSON local.

Cuando ambas variables de Supabase están presentes, el servidor selecciona automáticamente SupabaseStorage; de lo contrario, se mantiene el comportamiento existente de archivo/memoria. En Vercel, el respaldo es la memoria local del proceso a menos que se seleccione explícitamente el controlador de archivo.

Seguridad: SUPABASE_SERVICE_ROLE_KEY es solo de servidor. Nunca lo prefijes con NEXT_PUBLIC_, importes el adaptador de almacenamiento en código de cliente, imprimas la clave ni la confirmes en el repositorio. La aplicación almacena hashes de contraseñas, hashes de tokens de sesión y hashes de secretos de agentes; los secretos de agentes en bruto solo se devuelven una vez.

Configuración de Supabase

  1. Crea un proyecto de Supabase.

  2. Vincula la CLI de Supabase al proyecto y aplica la migración incluida en el repositorio:

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

    Las migraciones incluidas en el repositorio son idempotentes y seguras de volver a ejecutar.

  3. Copia la URL del proyecto y la clave de rol de servicio en .env.local para un servidor local respaldado por Supabase.

  4. Reinicia el servidor de Next.js y confirma que /api/status informa el modo de almacenamiento supabase.

Las migraciones crean humanos normalizados, sesiones, agentes, entrenamientos, ejercicios/series de entrenamiento, métricas corporales, perfiles de nutrición y entradas de nutrición. La seguridad a nivel de fila está habilitada en todas las tablas. Intencionalmente no hay políticas públicas: todo el acceso a datos utiliza el cliente de rol de servicio del lado del servidor.

Inicio rápido de MCP

Registra un humano en el panel y luego crea un agente. El secreto del agente se muestra una sola vez. Envíalo como token de portador:

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":{}}'

Las sesiones de navegador de humanos pueden llamar al endpoint desde el mismo origen. Las llamadas a herramientas de agentes requieren los ámbitos correspondientes. Los ámbitos existentes de entrenamiento y métricas no cambian. Las herramientas de nutrición usan nutrition:read o nutrition:write; get_coaching_context usa solo coaching:read, que autoriza la lectura agregada sin conceder herramientas separadas de nutrición, entrenamiento o métricas.

Contexto de coaching listo para LLM

Un agente con coaching:read puede recuperar todas las entradas de coaching fundamentadas en una sola llamada:

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":{}}
  }'

La respuesta incluye texto conciso en result.content y JSON legible por máquina en result.structuredContent. Los objetivos calculados incluyen la versión de la fórmula, entradas y supuestos exactos, entradas faltantes, explicaciones de límites, una nota de seguridad y estos campos de objetivo explícitos:

Field

Meaning

maintenanceCalories

Línea base de TDEE neutra antes de cualquier ajuste de objetivo.

goalTargetCalories

Objetivo de calorías tras aplicar el objetivo seleccionado de perder, mantener o ganar.

goalAdjustmentCalories

Diferencia con signo entre goalTargetCalories y maintenanceCalories.

goal

Dirección seleccionada: lose, maintain, gain o null cuando no está disponible.

goalSummary

Frase legible por humanos que indica la dirección y el ajuste.

suggestions

Sugerencias de coaching y próximos pasos específicas del objetivo.

targetCalories

Alias compatible con versiones anteriores de goalTargetCalories.

lose se establece por defecto por debajo del mantenimiento, gain por encima del mantenimiento y maintain equivale al mantenimiento. Un targetRateKgPerWeek personalizado tiene signo: negativo para pérdida y positivo para ganancia. Si su signo contradice el objetivo seleccionado, el cálculo normaliza el signo, informa de ese supuesto y usa la tasa normalizada. El contexto de coaching repite tanto la línea base neutra como el objetivo ajustado al objetivo en su texto legible por humanos.

Registrar alimentos introducidos por el usuario

log_food nunca busca ni inventa nutrientes. Proporciona los totales de la entrada de registro completa, incluidas todas las porciones:

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"
      }
    }
  }'

Validación

npm test
npm run lint
npm run build

Implementación en Vercel

Configura estas variables de entorno de Vercel para cada entorno que deba usar almacenamiento persistente:

  • SUPABASE_URL

  • SUPABASE_SERVICE_ROLE_KEY

Usa el panel de Vercel o vercel env add; mantén el valor de rol de servicio fuera del historial de comandos y de los registros de implementación. No crees una copia NEXT_PUBLIC_.

Luego implementa una vista previa:

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

Usa --prod solo para una implementación de producción intencional. Verifica la implementación devuelta con npx vercel@latest inspect <deployment-url> --token "$VERCEL_TOKEN".

Arquitectura

  • src/components/: panel de cliente, autenticación, formularios y guía de API.

  • src/app/api/: controladores de rutas de Next.js para autenticación, entrenamientos, métricas, estadísticas, agentes, estado y MCP.

  • src/lib/domain.ts: esquemas de entrada de dominio validados y cálculos de estadísticas.

  • src/lib/service.ts: autenticación, autorización y operaciones de aplicación.

  • src/lib/storage/: interfaz de almacenamiento más adaptadores de Supabase, JSON local y en memoria.

  • src/lib/mcp.ts: validación de solicitudes JSON-RPC/MCP, herramientas, autenticación y aplicación de ámbitos.

LifestyleStorage mantiene el dominio, el servicio, la interfaz de usuario y el comportamiento de MCP independientes del adaptador de persistencia seleccionado.

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