Lifestyle MCP Gym
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/mcpconinitialize,tools/listytools/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 devAbre 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 devEl 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 seafileomemory.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
Crea un proyecto de Supabase.
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 pushLas migraciones incluidas en el repositorio son idempotentes y seguras de volver a ejecutar.
Copia la URL del proyecto y la clave de rol de servicio en
.env.localpara un servidor local respaldado por Supabase.Reinicia el servidor de Next.js y confirma que
/api/statusinforma el modo de almacenamientosupabase.
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 |
| Línea base de TDEE neutra antes de cualquier ajuste de objetivo. |
| Objetivo de calorías tras aplicar el objetivo seleccionado de perder, mantener o ganar. |
| Diferencia con signo entre |
| Dirección seleccionada: |
| Frase legible por humanos que indica la dirección y el ajuste. |
| Sugerencias de coaching y próximos pasos específicas del objetivo. |
| Alias compatible con versiones anteriores de |
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 buildImplementación en Vercel
Configura estas variables de entorno de Vercel para cada entorno que deba usar almacenamiento persistente:
SUPABASE_URLSUPABASE_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" --yesUsa --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.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityBmaintenanceConnect 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
- FlicenseNot gradedqualityBmaintenanceMCP 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.
- FlicenseAqualityBmaintenancePersonal 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
- FlicenseNot gradedqualityCmaintenanceA 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
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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