Lifestyle MCP Gym
Lifestyle MCP Gym
Lifestyle MCP Gym は、エージェント対応のジムおよびパーソナルトレーナーデータレイヤーです。人間は、レスポンシブなダッシュボードとスコープ付き JSON-RPC MCP ツールを通じて、栄養、ユーザー入力の食事、ワークアウト、身体測定値、および決定的なウェルネス推定値を管理します。
機能
パスワードハッシュ化、セキュアな HTTP のみのセッション Cookie、目標、経験、タイムゾーン、同意を備えた人間の登録とログイン。
スコープ付き機能、オプションの HTTPS Webhook、所有者メタデータ、および一度きりのシークレット応答を備えたエージェント登録。ハッシュのみが保存されます。
ワークアウト追跡: エクササイズ、セット、レップ数、重量、時間、メモ、および最近のアクティビティ。
身体測定値: 体重、体脂肪率、ウエスト、日付、およびメモ。
栄養プロファイルと上限付き食事ログ。栄養値は常にユーザーが入力したものであり、決して捏造されません。
決定的な Mifflin-St Jeor BMR、活動係数に依存しない維持カロリー、明示的な目標調整カロリー、および体重ベースのマクロ推定値。バージョン管理された前提、符号不一致の警告、入力欠落のガイダンス、安全フロア、およびウェルネス免責事項を備えています。
栄養プロファイル、計算された目標、今日の栄養、最近のトレーニング統計、最新の身体測定値、および明示的な次のアクションを含む、ワンコールのコーチングコンテキスト。
initialize、tools/list、tools/callを備えた/api/mcpの MCP JSON-RPC エンドポイント。ワークアウト、測定値、栄養、コーチングコンテキスト、エージェント登録、およびダッシュボードアクセスリンク用のスコープ付き 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チェックインされたマイグレーションは冪等であり、再実行しても安全です。
プロジェクト URL とサービスロールキーを、ローカルの Supabase バックエンドサーバー用に
.env.localにコピーします。Next.js サーバーを再起動し、
/api/statusがストレージモードsupabaseを報告することを確認します。
マイグレーションは、正規化された humans、sessions、agents、workouts、workout exercises/sets、body metrics、nutrition profiles、および nutrition entries を作成します。Row Level Security はすべてのテーブルで有効になっています。パブリックポリシーは意図的にありません。すべてのデータアクセスは、サーバーサイドのサービスロールクライアントを使用します。
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