Lifestyle MCP Gym
Lifestyle MCP Gym
Lifestyle MCP Gym은 에이전트 준비형 헬스장 및 개인 트레이너 데이터 계층입니다. 사용자는 반응형 대시보드와 범위가 지정된 JSON-RPC MCP 도구를 통해 영양, 사용자 입력 음식, 운동, 신체 지표, 결정적 웰니스 추정치를 관리합니다.
주요 기능
비밀번호 해싱, 보안 HTTP 전용 세션 쿠키, 목표, 경험, 시간대, 동의를 포함한 사용자 등록 및 로그인.
범위 지정 기능, 선택적 HTTPS 웹훅, 소유자 메타데이터, 일회성 비밀 응답을 포함한 에이전트 등록. 해시만 저장됩니다.
운동 추적: 운동 종목, 세트, 반복 횟수, 중량, 시간, 메모, 최근 활동.
신체 지표: 체중, 체지방, 허리, 날짜, 메모.
영양 프로필 및 제한된 음식 로그. 영양 값은 항상 사용자가 입력하며 임의로 생성되지 않습니다.
결정적 Mifflin-St Jeor BMR, 활동 계수 중립 유지 칼로리, 명시적 목표 조정 칼로리, 버전 관리 가정, 부호 불일치 경고, 누락 입력 안내, 안전 하한, 웰니스 고지가 포함된 체중 기반 매크로 추정치.
영양 프로필, 계산된 목표, 오늘의 영양, 최근 훈련 통계, 최신 신체 지표, 명시적 다음 조치를 포함한 원콜 코칭 컨텍스트.
/api/mcp의 MCP JSON-RPC 엔드포인트와initialize,tools/list,tools/call.운동, 지표, 영양, 코칭 컨텍스트, 에이전트 등록, 대시보드 접근 링크를 위한 범위 지정 MCP 도구.
Related MCP server: wger MCP Server
로컬 실행
요구 사항: Node.js 20+ 및 npm.
npm install
cp .env.example .env.local
npm run devhttp://localhost:3000을 엽니다.
기본 로컬 스토리지 드라이버는 .data/lifestyle-gym.json의 JSON 파일입니다. 로컬 개발에 유용하며 git에서 무시됩니다. 대신 명시적 데모 스토리지를 사용하려면:
LIFESTYLE_STORAGE_DRIVER=memory npm run dev메모리 스토리지는 서버 프로세스가 재시작되면 초기화됩니다.
환경
.env.example을 참조하세요:
SUPABASE_URL: Supabase API 설정의 프로젝트 URL.SUPABASE_SERVICE_ROLE_KEY: Supabase API 설정의 서비스 역할 비밀.LIFESTYLE_STORAGE_DRIVER: 로컬 대체,file또는memory.LIFESTYLE_DATA_FILE: 로컬 JSON 스토리지의 선택적 경로.
두 Supabase 변수가 모두 있으면 서버는 자동으로 SupabaseStorage를 선택합니다. 그렇지 않으면 기존 파일/메모리 동작이 유지됩니다. Vercel에서는 파일 드라이버를 명시적으로 선택하지 않는 한 프로세스 로컬 메모리가 대체입니다.
보안: SUPABASE_SERVICE_ROLE_KEY는 서버 전용입니다. NEXT_PUBLIC_ 접두사를 붙이거나, 스토리지 어댑터를 클라이언트 코드로 가져오거나, 키를 출력하거나 커밋하지 마세요. 앱은 비밀번호 해시, 세션 토큰 해시, 에이전트 비밀 해시를 저장합니다. 원시 에이전트 비밀은 한 번만 반환됩니다.
Supabase 설정
Supabase 프로젝트를 생성합니다.
Supabase CLI를 프로젝트에 연결하고 체크인된 마이그레이션을 적용합니다:
npx supabase@latest link --project-ref YOUR_PROJECT_REF npx supabase@latest db push체크인된 마이그레이션은 멱등이며 다시 실행해도 안전합니다.
로컬 Supabase 기반 서버의 경우 프로젝트 URL과 서비스 역할 키를
.env.local에 복사합니다.Next.js 서버를 재시작하고
/api/status가 스토리지 모드supabase를 보고하는지 확인합니다.
마이그레이션은 정규화된 사용자, 세션, 에이전트, 운동, 운동 종목/세트, 신체 지표, 영양 프로필, 영양 항목을 생성합니다. 모든 테이블에서 행 수준 보안이 활성화됩니다. 의도적으로 공개 정책이 없습니다. 모든 데이터 접근은 서버 측 서비스 역할 클라이언트를 사용합니다.
MCP 빠른 시작
대시보드에서 사용자를 등록한 다음 에이전트를 생성합니다. 에이전트 비밀은 한 번만 표시됩니다. 이를 베어러 토큰으로 보냅니다:
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":{}}'사용자 브라우저 세션은 동일 출처에서 엔드포인트를 호출할 수 있습니다. 에이전트 도구 호출에는 관련 범위가 필요합니다. 기존 운동 및 지표 범위는 변경되지 않습니다. 영양 도구는 nutrition:read 또는 nutrition:write를 사용합니다. get_coaching_context는 coaching:read만 사용하며, 이는 별도 영양, 운동, 지표 도구를 부여하지 않고 집계 읽기를 승인합니다.
LLM 준비 코칭 컨텍스트
coaching:read가 있는 에이전트는 한 번의 호출로 모든 근거 기반 코칭 입력을 검색할 수 있습니다:
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":{}}
}'응답에는 result.content의 간결한 텍스트와 result.structuredContent의 기계 판독 가능 JSON이 포함됩니다. 계산된 목표에는 공식 버전, 정확한 입력 및 가정, 누락 입력, 클램프 설명, 안전 참고 사항, 그리고 다음 명시적 목표 필드가 포함됩니다:
필드 | 의미 |
| 목표 조정 전 중립 TDEE 기준입니다. |
| 선택한 감량, 유지, 증량 목표를 적용한 후의 칼로리 목표입니다. |
|
|
| 선택한 방향: |
| 방향과 조정을 설명하는 사람이 읽을 수 있는 문장입니다. |
| 목표별 코칭 및 다음 단계 제안입니다. |
|
|
lose는 기본적으로 유지 칼로리보다 낮고, gain은 유지 칼로리보다 높으며, maintain은 유지 칼로리와 같습니다. 사용자 지정 targetRateKgPerWeek는 부호가 있습니다: 감량은 음수, 증량은 양수입니다. 부호가 선택한 목표와 모순되면 계산은 부호를 정규화하고 해당 가정을 보고하며 정규화된 비율을 사용합니다. 코칭 컨텍스트는 사람이 읽을 수 있는 텍스트에서 중립 기준과 목표 조정 목표를 모두 반복합니다.
사용자 입력 음식 기록
log_food는 영양 정보를 조회하거나 임의로 생성하지 않습니다. 모든 서빙을 포함한 전체 로그 항목의 합계를 제공하세요:
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"
}
}
}'검증
npm test
npm run lint
npm run buildVercel에 배포
영구 스토리지를 사용할 모든 환경에 다음 Vercel 환경 변수를 설정하세요:
SUPABASE_URLSUPABASE_SERVICE_ROLE_KEY
Vercel 대시보드 또는 vercel env add를 사용하세요. 서비스 역할 값을 명령 기록 및 배포 로그에 남기지 마세요. NEXT_PUBLIC_ 복사본을 만들지 마세요.
그런 다음 미리보기를 배포하세요:
npx vercel@latest --token "$VERCEL_TOKEN" --yes--prod는 의도적인 프로덕션 배포에만 사용하세요. 반환된 배포를 npx vercel@latest inspect <deployment-url> --token "$VERCEL_TOKEN"으로 확인하세요.
아키텍처
src/components/: 클라이언트 대시보드, 인증, 양식, API 가이드.src/app/api/: 인증, 운동, 지표, 통계, 에이전트, 상태, MCP를 위한 Next.js 라우트 핸들러.src/lib/domain.ts: 검증된 도메인 입력 스키마 및 통계 계산.src/lib/service.ts: 인증, 권한 부여, 애플리케이션 작업.src/lib/storage/: 스토리지 인터페이스와 Supabase, 로컬 JSON, 인메모리 어댑터.src/lib/mcp.ts: JSON-RPC/MCP 요청 검증, 도구, 인증, 범위 적용.
LifestyleStorage는 도메인, 서비스, UI, MCP 동작을 선택한 영속성 어댑터와 독립적으로 유지합니다.
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