Calorie Tracker MCP Server について
Calorie Tracker MCP Serverは、食事や身体指標を記録する人向けのサーバーです。食品の栄養素を管理し、Mifflin-St Jeor式でBMRとTDEEを計算します。
主な機能
- 01栄養素付き食品記録
- 02BMRとTDEEの計算
- 03プロフィールと活動レベルの更新
- 04体重と体組成の履歴管理
- 05PKCE対応OAuth 2.1
活用シーン
- 01毎日の食事記録
- 02プロフィールに基づく必要エネルギーの推定
- 03体重と体組成の推移確認
MCP 対応
MCPクライアントに、食品記録、プロフィール、履歴、ユーザー管理のツールを提供します。PKCE対応のOAuth 2.1認証をサポートします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Calorie Tracker MCP サーバー
正確なBMR/TDEE計算で毎日のカロリー摂取量を記録するMCPサーバーです。Cloudflare WorkersとD1データベースを基盤として構築されています。
特徴
- 食事の記録:栄養素を含む食事記録の追加、更新、削除
- プロフィール管理:Mifflin-St Jeor方程式を使用したBMR/TDEE計算
- 過去のデータ:体重や体組成の経時的な記録
- セキュア:PKCEに対応したOAuth 2.1認証
クイックセットアップ
pnpm install
# Create resources and update wrangler.jsonc with IDs
npx wrangler d1 create calorie-tracker
npx wrangler kv:namespace create OAUTH_KV
# Run migrations and start dev server
npx wrangler d1 migrations apply calorie-tracker --local
pnpm run dev
OAuth クライアントの登録
管理者 API キーを設定します:
# Development: Update wrangler.jsonc vars.ADMIN_API_KEY
# Production: Use secrets
npx wrangler secret put ADMIN_API_KEY
OAuth クライアントを登録して認証情報を取得します:
curl -X POST http://localhost:8787/oauth/register \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_ADMIN_API_KEY" \
-d '{
"client_name": "Claude Desktop",
"redirect_uris": ["http://127.0.0.1/callback", "http://localhost/callback"],
"user_id": "admin"
}'
注:Claude DesktopはOAuthフロー中にコールバックURLを指定します。リダイレクトURIの不一致エラーが発生した場合は、Claude DesktopのOAuthログで、実際に指定されているコールバックURLを確認してください。
レスポンス:
{
"client_id": "uuid-client-id",
"client_secret": "generated-secret",
"client_name": "Claude Desktop"
}
Claude の設定
オプション1:ベアラートークン(Personal/Pro/Max)
クライアントシークレットをベアラートークンとして使用するシンプルな認証方式です:
-
OAuth クライアントを登録:
curl -X POST http://localhost:8787/oauth/register \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_ADMIN_API_KEY" \ -d '{ "client_name": "Claude Desktop", "redirect_uris": ["https://claude.ai/api/mcp/auth_callback"], "user_id": "admin" }'レスポンスの
client_secretを保存します。 -
Claude Desktop の設定(
claude_desktop_config.json):{ "mcpServers": { "calorie-tracker": { "command": "npx", "args": ["mcp-remote", "http://localhost:8787/sse"], "env": { "BEARER_TOKEN": "<client_secret from registration>" } } } }
オプション2:クライアント認証情報を使用したOAuth(Team/Enterpriseのみ)
クライアント ID/シークレットを使用するプライベートコネクターです:
-
コールバックURLを
https://claude.ai/api/mcp/auth_callbackにしてOAuth クライアントを登録します -
Claudeでカスタムコネクターを追加します:
- 名前:Calorie Tracker
- リモート MCP サーバー URL:
https://YOUR-WORKER.workers.dev/sse - OAuth クライアント ID:
<client_id from registration> - OAuth クライアントシークレット:
<client_secret from registration>
本番環境へのデプロイ
モバイル/Webからアクセスできるよう、Cloudflare Workersにデプロイします:
pnpm run deploy
pnpm run migrate
npx wrangler secret put ADMIN_API_KEY
ツール
食事の記録:
list_entries- ページネーション対応で食事記録を一覧表示add_entry- 栄養素を含む食事記録を追加update_entry- 既存の食事記録を更新delete_entry- 食事記録を削除
プロフィール管理:
get_profile- BMR/TDEE計算を含むプロフィールを取得update_profile- プロフィールデータ(身長、体重、活動レベル)を更新get_profile_history- 過去の記録データ
管理者:
register_user- 新規ユーザーを登録revoke_user- ユーザーのアクセス権を取り消す
BMR/TDEEの計算
Mifflin-St Jeor方程式(標準的な計算式)を使用します:
男性: BMR = (10 × weight) + (6.25 × height) - (5 × age) + 5
女性: BMR = (10 × weight) + (6.25 × height) - (5 × age) - 161
TDEE: BMR × Activity Multiplier(1.2 - 1.9)
開発
pnpm test # Run tests
pnpm run type-check # TypeScript validation
pnpm run deploy # Deploy to production
pnpm run migrate # Run migrations on remote
技術スタック
- ランタイム:Cloudflare Workers
- データベース:D1(SQLite)
- 言語:TypeScript
- バリデーション:Zod
- テスト:Vitest
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。