pp-myfitnesspal
MyFitnessPalに記録したすべての食事データを取得できます。食品ごとのCSV形式、エージェント形式のトレンド分析、ローカルSQLiteストアでのデータ保存に対応しています。「先週何を食べたか」「食事日記をエクスポートしたい」「X を記録した全ての日時を探して」「タンパク質摂取量の多い食品トップ」「カロリー目標達成中か確認」などのフレーズで起動します。
description の原文を見る
Pull every meal you ever logged out of MyFitnessPal — per-food CSV, agent-shaped trends, and a local SQLite store. Trigger phrases: `what did I eat this week`, `export my food diary`, `find every time I logged X`, `top foods driving my protein`, `am I hitting my calorie streak`, `use myfitnesspal`, `run myfitnesspal`.
SKILL.md 本文
MyFitnessPal — Printing Press CLI
前提条件: CLI のインストール
このスキルは myfitnesspal-pp-cli バイナリを使用します。このスキルからコマンドを実行する前に、CLI がインストールされていることを確認する必要があります。 見つからない場合は、まず以下の手順でインストールしてください:
- Printing Press インストーラー経由でインストール:
npx -y @mvanhorn/printing-press install myfitnesspal --cli-only - 確認:
myfitnesspal-pp-cli --version $GOPATH/bin(または$HOME/go/bin) が$PATHに含まれていることを確認してください。
npx インストールに失敗した場合 (Node がない、オフライン状態など)、Go 1.26.3 以上が必要な直接的な Go インストールにフォールバックしてください:
go install github.com/mvanhorn/printing-press-library/library/other/myfitnesspal/cmd/myfitnesspal-pp-cli@latest
インストール後に --version が「command not found」を報告する場合は、インストール手順がバイナリを $PATH に配置していません。確認が成功するまでスキルコマンドを進めないでください。
MyFitnessPal は API をクローズし、食品別エクスポートをプレミアム機能の背後に制限し、そこでも食事単位の行を配信しています。この CLI はブラウザセッションをインポートし、食事日誌をローカル SQLite に同期し、公式 UI では答えられない質問に応じます: この四半期、どの 5 つの食品があなたのタンパク質の 80% を占めるのか、あなたの週単位の体重傾斜対赤字は何か、最後の同期以来何が変わったのか。エージェント対応の出力 (--json, --select, context) で構築されているため、Claude は 1 つのツール呼び出しで過去 14 日間について推論できます。
このCLI を使用する時期
エージェントがユーザーの実際の食事、運動、または体重履歴について推論する必要がある場合、特に今日より長い期間で、このCLI を活用してください。ローカル SQLite ストア + エージェント対応 context コマンドは、昨日の食事日誌をチャットに貼り付ける行き来を 1 つのツール呼び出しで置き換えます。栄養コーチング、赤字の調整、マクロ分析、回想質問 ('X をログしたすべての時間')、および公式 MFP UI の食事単位ロールアップが質問をブロックするところで使用してください。
ユニークな機能
これらの機能は、このAPI の他のツールでは利用できません。
複合的なローカルステート
-
export csv— 食事日誌を CSV にエクスポートします。食事単位ではなく、ログされた食品ごとに 1 行です。プレミアム MFP は食事単位の CSV のみを配信します。エージェントがユーザーの完全な食事履歴を食品粒度で分析、トレーニング、または長期コーチングメモリのために必要な場合、これに頼ってください。
myfitnesspal-pp-cli export csv --from 2026-01-01 --to 2026-05-08 --out diary.csv -
analytics top-foods— パレート分析: 期間内にあなたのタンパク質/炭水化物/脂肪/食物繊維/砂糖/カロリーの X% を占める N 個の食品はどれですか?エージェントがユーザーのマクロターゲットを実際に何が推進しているのか、ユーザーが思っていることではなく理解するのに役立つ場合に使用してください。
myfitnesspal-pp-cli analytics top-foods --nutrient protein --days 60 --cumulative-percent 80 --json -
find— ローカルストア内のすべての食事日誌エントリと食品全体にわたるフルテキスト検索。一致ごとに日付、食事、サービング数、カロリーを返します。エージェントが、数か月の食事日誌をスクロールすることなく、ユーザーが特定の食品をログしたすべての時間を思い出す必要がある場合に使用してください。
myfitnesspal-pp-cli find --food "Chipotle Bowl" --from 2026-01-01 --json -
analytics streak— カロリー合計があなたの目標の ±許容範囲内に収まる連続日数の最長実行。ユーザーがアドヒアランスがどのようにトレンドしているか尋ねるとき、主観的な解釈なしで答えが到着します。
myfitnesspal-pp-cli analytics streak --days 60 --tolerance 0.05 --json
エージェント対応の配管
-
context— 最後の N 日間のシングルコール スナップショット: 食事日誌合計、体重トレンド、現在の目標、最近の食品、マクロデルタ — エージェントコンテキストウィンドウに合わせたサイズです。ユーザーの栄養について推論する前にエージェントが実行する最初のコマンド — ワンショットで全体像を提供します。
myfitnesspal-pp-cli context --days 14 --json
コマンドリファレンス
api-user — v2 API 上の認証済みユーザーレコード (設定、有料購読、プロファイル)。
myfitnesspal-pp-cli api-user— v2 ユーザーレコードを取得 (単位、目標設定、有料購読、プロファイル)。
diary — 日食食事日誌 (完全な栄養パネル付きの食事単位のエントリ)。
myfitnesspal-pp-cli diary get-day— 1 日の食事日誌をスクレイプ HTML として取得 (レガシーサーフェス python-myfitnesspal が使用)。myfitnesspal-pp-cli diary load-recent— 食事の最近の食品クイックピックリストを読み込みます。
exercise — 特定の日にログされたカーディオと筋力運動。
myfitnesspal-pp-cli exercise— 1 日の運動ログ (カーディオ + 筋力) をスクレイプ HTML として取得。
food — 公開食品データベースを検索し、食品の詳細を表示し、カスタム食品をログします。
myfitnesspal-pp-cli food details— MFP 食品 ID で単一食品の完全な栄養パネルを取得します。myfitnesspal-pp-cli food search— 食品データベースを検索します。myfitnesspal-pp-cli food suggested-servings— 食品の一般的なサービングサイズ提案を取得 ('1 カップ / 100g / 中程度' ピッカーの機能)。
goals — 日単位のカロリー / マクロ / 水 / 体重目標。
myfitnesspal-pp-cli goals— 現在の日単位の目標 (カロリーターゲット、マクロ分割、水ターゲット) をスクレイプ HTML として取得。
measurement — 体重、体脂肪、およびその他の身体測定 (時系列)。
myfitnesspal-pp-cli measurement get-range— 1 つの測定タイプのスクレイプ HTML として日付範囲の値を取得。myfitnesspal-pp-cli measurement types— あなたのアカウント (体重、BodyFat、首、腰、腰、カスタムなど) に定義された測定タイプをリストします。
note — 1 日の食事または運動食事日誌に添付された自由テキストメモ。
myfitnesspal-pp-cli note— 1 日の食事メモを取得します。
reports — 集約された時系列レポート (任意の栄養素または体重を日付→値シリーズとして)。
myfitnesspal-pp-cli reports— 時系列レポートを取得 (例えば nutrition/Net%20Calories/30 は過去 30 日の正味カロリーを返します)。
user — 認証済みユーザーアカウント情報、単位、および設定。
myfitnesspal-pp-cli user auth-token— セッションクッキーから v2 ベアラートークンをブートストラップします。myfitnesspal-pp-cli user top-foods-server— 日付範囲上でサーバー側で計算した、ログされた上位食品を取得 ('最も頻繁に食べた' インサイトの機能)。
water — 日単位の水分摂取トラッキング。
myfitnesspal-pp-cli water— 1 日の水分摂取を取得します。
適切なコマンドを見つける
何がしたいのかは知っているが、どのコマンドがそれをするのか分からない場合は、CLI に直接質問してください:
myfitnesspal-pp-cli which "<capability in your own words>"
which は自然言語の機能クエリを、この CLI のキュレートされた機能インデックスから最適にマッチするコマンドに解決します。終了コード 0 は少なくとも 1 つのマッチを意味します。終了コード 2 は自信を持ったマッチがないことを意味します — --help にフォールバックするか、より狭いクエリを使用してください。
レシピ
コーチング質問のためのエージェントコンテキストを構築
myfitnesspal-pp-cli context --days 30 --json --select diary_totals,weight_trend,goals
1 つのツール呼び出しで、エージェントが「今週もっとカットすべきか?」に答えるのに必要なすべてをペーストバックなしで取得します。
ログした食品を毎回見つける
myfitnesspal-pp-cli find --food "Greek yogurt" --from 2026-01-01 --json --select date,meal,servings,calories
同期された食事日誌をローカル FTS で検索; MFP ウェブ UI がスクロールを必要とする回想質問への即座の回答。
1 四半期の食品別 CSV
myfitnesspal-pp-cli export csv --from 2026-01-01 --to 2026-03-31 --out q1-2026.csv
完全な栄養素を含む食品エントリあたり 1 行 — プレミアム MFP が配信しないエクスポート。
マクロを推進する上位食品
myfitnesspal-pp-cli analytics top-foods --nutrient protein --days 60 --cumulative-percent 0.8 --json
ローカル食事日誌をパレート分析: 過去 60 日間でどの食品があなたのタンパク質のほとんどを推進したか。
アドヒアランスストリーク
myfitnesspal-pp-cli analytics streak --days 60 --tolerance 0.05 --json
カロリー目標の ±5% 内である連続日数の最長実行。目標値はローカルストアに同期された最新の goal_snapshot から読み込まれます。--goal-calories <value> を渡してオーバーライドします。
認証セットアップ
MyFitnessPal は公開 API をクローズしました。この CLI はログイン済みブラウザセッションを使用します — Chrome で myfitnesspal.com にログインし、myfitnesspal-pp-cli auth login --chrome を実行してください。クッキーは .myfitnesspal.com ドメインから読み込まれます。セッションは通常 7~30 日間続きます。セッションが期限切れになったら、Chrome で再度ログインし、auth login --chrome を再実行してください。
myfitnesspal-pp-cli doctor を実行してセットアップを確認してください。
エージェントモード
任意のコマンドに --agent を追加してください。以下に展開します: --json --compact --no-input --no-color --yes。
-
パイプ可能 — stdout 上の JSON、stderr 上のエラー
-
フィルタリング可能 —
--selectはフィールドのサブセットを保持します。ドット付きパスはネストされた構造に降ります。配列は要素ごとにトラバースします。詳細 API でコンテキストを小さく保つのに重要です:myfitnesspal-pp-cli api-user --user-id 550e8400-e29b-41d4-a716-446655440000 --agent --select id,name,status -
プレビュー可能 —
--dry-runは送信せずにリクエストを表示 -
オフラインフレンドリー — 同期/検索コマンドは利用可能な場合、ローカル SQLite ストアを使用できます
-
非対話的 — プロンプトを表示することはなく、すべての入力はフラグです
-
明示的な再試行 — 既に存在する作成がカウントとして成功すべき場合のみ
--idempotentを使用してください
レスポンスエンベロープ
ローカルストアまたは API から読み取るコマンドは、出力をプロビナンスエンベロープでラップします:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データは .results を解析し、ライブかローカルかを知るには .meta.source を解析してください。人間が読める N results (live) サマリーは、stdout がターミナルである場合のみ stderr に出力されます — パイプされた/エージェントコンシューマーは stdout で純粋な JSON を取得します。
エージェントフィードバック
(または エージェントが) この CLI について何かおかしいことに気付いた場合、それを記録してください:
myfitnesspal-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
myfitnesspal-pp-cli feedback --stdin < notes.txt
myfitnesspal-pp-cli feedback list --json --limit 10
エントリは ~/.myfitnesspal-pp-cli/feedback.jsonl にローカルに保存されます。MYFITNESSPAL_FEEDBACK_ENDPOINT が設定されていない限り、また --send が渡されているか MYFITNESSPAL_FEEDBACK_AUTO_SEND=true のいずれかでない限り、POST されることはありません。デフォルトの動作はローカルのみです。
バグレポートではなく、あなたを 驚かせた ものを書いてください。短く、具体的に、1 行: それが複合する部分です。
出力配信
すべてのコマンドは --deliver <sink> を受け入れます。出力は名前付きシンクに (stdout の代わりに、またはに加えて) 移動するため、エージェントは手動パイプなしでコマンド結果をルーティングできます。3 つのシンクがサポートされています:
| シンク | 効果 |
|---|---|
stdout | デフォルト。stdout のみに書き込み |
file:<path> | <path> に出力を原子的に書き込み (tmp + リネーム) |
webhook:<url> | 出力本文を URL に POST (application/json または --compact で application/x-ndjson) |
不明なスキームはサポートされているセットを名前付けで構造化エラーで拒否されます。Webhook エラーは非ゼロを返し、stderr に URL + HTTP ステータスをログします。
名前付きプロファイル
プロファイルは、呼び出しにわたって再利用されるフラグ値の保存されたセットです。スケジュールされたエージェントが同じ設定で毎回同じコマンドを呼び出す場合に使用してください - HeyGen の "Beacon" パターン。
myfitnesspal-pp-cli profile save briefing --json
myfitnesspal-pp-cli --profile briefing api-user --user-id 550e8400-e29b-41d4-a716-446655440000
myfitnesspal-pp-cli profile list --json
myfitnesspal-pp-cli profile show briefing
myfitnesspal-pp-cli profile delete briefing --yes
明示的なフラグは常にプロファイル値に勝ります。プロファイル値はデフォルトに勝ります。agent-context は利用可能なすべてのプロファイルを available_profiles の下にリストするため、イントロスペクティング エージェントが実行時にそれらを検出します。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用法エラー (不正な引数) |
| 3 | リソースが見つかりません |
| 4 | 認証が必要 |
| 5 | API エラー (アップストリーム問題) |
| 7 | レート制限 (待機して再試行) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します:
- 空、
help、または--help→myfitnesspal-pp-cli --help出力を表示 installで始まる →mcpで終わる → MCP インストール。そうでない場合 → 上記の前提条件を参照- その他 — 直接使用 (CLI コマンドを
--agentで実行)
MCP サーバーインストール
- MCP サーバーをインストール:
go install github.com/mvanhorn/printing-press-library/library/other/myfitnesspal/cmd/myfitnesspal-pp-mcp@latest - Claude Code に登録:
claude mcp add myfitnesspal-pp-mcp -- myfitnesspal-pp-mcp - 確認:
claude mcp list
直接使用
- インストール状況を確認:
which myfitnesspal-pp-cli見つからない場合は、インストールを提案してください (このスキルの上部にある前提条件を参照)。 - ユーザークエリを上記のユニークな機能とコマンドリファレンスから最適なコマンドにマッチさせます。
--agentフラグで実行:myfitnesspal-pp-cli <command> [subcommand] [args] --agent- 曖昧な場合は、サブコマンドヘルプにドリルダウン:
myfitnesspal-pp-cli <command> --help。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mvanhorn
- ライセンス
- Apache-2.0
- 最終更新
- 2026/5/12
Source: https://github.com/mvanhorn/printing-press-library / ライセンス: Apache-2.0
関連スキル
newsblur-cli
ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。
caveman-compress
自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」
find-skills
日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。
planning-and-task-breakdown
仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。
docx
このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。
idea-refine
アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。