Cronometer について
Cronometer MCPは、MCPクライアントからCronometerアカウントの栄養情報を確認し、日記を管理するサーバーです。未報告の栄養素をゼロと区別し、書き込みには承認を求めます。非公開インターフェースを使うため、変更される可能性があります。
主な機能
- 01日記、目標、残り量の読み取り
- 02栄養素の報告状況をゼロと区別
- 03食品、生体情報、断食、運動の確認
- 04承認を得て記録を追加・編集・削除
- 05長期間のデータのエクスポートと分析
活用シーン
- 01食事記録と当日の目標残量の確認
- 02週単位の微量栄養素と報告不足の確認
- 03承認を得た食事記録や日記の更新
MCP 対応
Cronometerの日記、栄養、エクスポート、アカウント管理ツールをMCPクライアントに提供します。書き込みには承認が必要で、一部の破壊的操作には明示的な確認も求めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @ekelly95/cronometer-mcpCRONOMETER_USERNAMECronometer account email. Optional if `npx @ekelly95/cronometer-mcp setup` saved it.CRONOMETER_PASSWORDシークレットCronometer password. Optional if setup saved it to the OS keyring.CRONOMETER_LIVE_ENABLEDSet to 1 to accept the risks of unofficial access when using environment credentials.CRONOMETER_TOTP_SECRETシークレットBase32 authenticator key, for accounts with two-factor sign-in.CRONOMETER_TIMEZONEDiary timezone, e.g. America/New_York. Defaults to the saved setup, else this computer's.CRONOMETER_READ_ONLYSet to 1 to offer no tool that can change the account.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
46掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
Cronometer MCP
あなたの Cronometer アカウント用の MCP サーバーです。Claude(または任意の MCP クライアント)に、何を食べたか、今日あとどれだけ食べられるか、1 週間の微量栄養素の状態などを尋ねられます。また、毎回あなたの承認を得たうえで、食事記録の追加、編集、削除も行えます。
- ID 付きの食事記録全体。 食品、運動、メモ、生体情報のそれぞれに、編集ツールと削除ツールで必要となる ID が付いています。さらに、その日の目標、残りの量、消費エネルギーも確認できます。
- 正直な栄養情報。 合計は食品ごとに計算されます。食品に記載のない栄養素はゼロではなく、欠損として扱います。そのため、「マグネシウム 61 mg」は「少なくとも 61 mg。12 品目中、マグネシウムを記載しているのは 4 品目のみ」と表示されます。これは Cronometer 独自の合計値ではわからない情報です。
- 安全な書き込み。 アカウントを変更するツールはすべて承認を求めます。削除には明示的な確認が必要で、タイムアウトした書き込みは再試行されません。また、読み取り専用モードでは書き込み機能がすべて無効になります。
- セットアップは 1 つのコマンドで完了し、パスワードはオペレーティングシステムの資格情報ストアに保存されます。Claude Desktop 拡張機能として、または claude.ai や Claude のスマートフォンアプリ向けのセキュアなリモートコネクターとしても実行できます。
重要
Cronometer には公開 API がありません。このツールは、Cronometer のアプリやウェブサイトと同じ非公開インターフェースを使い、あなたのアカウントにサインインします。非公式のため、Cronometer がインターフェースを変更すると動作しなくなる場合があり、自動化を検知した Cronometer がアカウントを制限する可能性もあります。Cronometer との提携や承認を受けたものではありません。リスクを参照してください。
クイックスタート
Node.js 20 以降が必要です。
npx @ekelly95/cronometer-mcp setup
セットアップではリスクについて説明し、ENABLE と入力するよう求めます。次に Cronometer のメールアドレスとパスワード、アカウントで 2 要素認証を使っている場合は認証キー、食事記録のタイムゾーンを尋ねます。サインインを確認してから情報を保存し、パスワードを Keychain(macOS)、Secret Service キーリング(Linux)、または DPAPI(Windows)に保存します。また、Claude Code、Claude Desktop、Codex へのサーバー追加を提案します。
クライアントを再起動して、次のように尋ねてください。
- 昨日何を食べましたか?目標にどのくらい近づいていましたか?
- 今日はあとどれだけタンパク質を摂れますか?
- 朝食に大きな卵を 2 個記録してください。
- 今週、不足していた微量栄養素は何ですか?そのうち、食品に記載がなく信頼できないものはどれですか?
- 過去 7 日間の栄養素レーダーを表示してください。(グラフを描画します。
/nutrient_radarを参照してください)
npx @ekelly95/cronometer-mcp doctor を実行すると、いつでもセットアップを確認できます。
ほかの実行方法
Claude Desktop 拡張機能。 最新リリースから cronometer-mcp.mcpb をダウンロードして開きます。
Claude Desktop がメールアドレスとパスワードを尋ね、OS の資格情報ストアに保存します。
クライアント設定に資格情報を記載する方法(キーリングがないクライアント、またはコンテナー向け):
{
"mcpServers": {
"cronometer": {
"command": "npx",
"args": ["-y", "@ekelly95/cronometer-mcp"],
"env": {
"CRONOMETER_USERNAME": "[email protected]",
"CRONOMETER_PASSWORD": "…",
"CRONOMETER_LIVE_ENABLED": "1",
"CRONOMETER_TIMEZONE": "America/New_York"
}
}
}
}
claude.ai とスマートフォンアプリ。 cronometer-mcp remote-setup は、専用のシングルユーザー OAuth サインインを備えた Streamable HTTP エンドポイントを設定し、ユーザーサービスとして実行します。Tailscale Funnel などのトンネル経由で公開します。docs/REMOTE.mdを参照してください。
| 変数 | 効果 |
|---|---|
CRONOMETER_READ_ONLY=1 | アカウントを変更できるツールを提供しません |
CRONOMETER_TOTP_SECRET | 2 要素認証を使用するアカウントの認証キー(環境変数モード) |
CRONOMETER_TIMEZONE | 食事記録のタイムゾーン。保存済みのセットアップがあればそれを使用し、なければコンピューターのタイムゾーンを使用します |
CRONOMETER_DATA_DIR | セットアップ情報、セッションキャッシュ、エクスポートの保存場所 |
ツール
46 個のツールがあります。読み取り用が 24 個、書き込み用が 22 個です。日付には YYYY-MM-DD、today、yesterday、または N days ago を指定でき、日記のタイムゾーンに基づいて解決されます。
日記と栄養
| ツール | |
|---|---|
get_diary | 1 日分、または最大 14 日分:各エントリーの ID、目標、摂取量、残量、消費エネルギー |
get_daily_summary | 栄養素ごとの網羅率を含む栄養素合計と、Cronometer の目標 |
get_nutrition_scores | Cronometer のカテゴリ別スコアと、栄養素ごとの信頼度 |
nutrient_radar | 成人の基準摂取量と比較した 31 種類のビタミン、ミネラル、アミノ酸をグラフ表示 |
食品、目標、身体
| ツール | |
|---|---|
search_foods · get_food_details · lookup_barcode | 食品、その分量、栄養素を検索 |
get_macro_targets · list_macro_templates | 指定日の目標、週間スケジュール、保存済みテンプレート |
get_fasting_history · get_fasting_stats | 断食と断食の統計 |
list_biometric_metrics · get_biometrics | 体重、体脂肪率、血圧などの経時変化 |
search_activities · get_repeated_items | 運動アクティビティ ID、自動で繰り返される食品 |
長期間のデータとダウンロードしたエクスポート
| ツール | |
|---|---|
export_food_log · export_exercises · export_biometrics · export_notes · export_raw | Cronometer の CSV エクスポート。期間は最大 1 年 |
list_exports · analyze_export | ダウンロードしたエクスポートの網羅率を月単位で分析 |
書き込み — すべて承認を求めます。⚠ は confirm: true も必要です
| ツール | |
|---|---|
add_food_entry · update_food_entry · ⚠ remove_diary_entries · ⚠ copy_day · mark_day_complete | 食事日記(削除はすべてのエントリータイプに対応) |
add_note · update_note · add_biometric · add_exercise | メモ、測定値、運動 |
add_custom_food · update_custom_food · ⚠ retire_custom_food · add_recipe · import_recipe | カスタム食品とレシピ。フリーテキストからの登録にも対応 |
set_macro_targets · create_macro_template · ⚠ delete_macro_template · set_macro_schedule_day | 目標と週間スケジュール |
⚠ delete_fast · ⚠ cancel_active_fast · add_repeat_item · ⚠ delete_repeat_item | 断食と繰り返し登録する食品 |
実際のアカウントでの検証がまだ済んでいない書き込み操作は、その旨が説明に記載され、結果を読み返すようモデルに指示されています。docs/PROTOCOL.md には、各ツールが呼び出す内容と検証済みの内容が記載されています。
欠損値はゼロではありません
Cronometer は、各食品の栄養素を、その情報源が報告する内容に基づいて保存します。ブランド食品のラベルには 8 種類の栄養素しか記載されていない場合がありますが、検査分析済みのホールフードには 90 種類記載されていることがあります。Cronometer が 1 日分の合計を算出する際、食品が報告していない栄養素はゼロとして加算されるため、実際には不完全なのに合計が完全なように見えてしまいます。
get_daily_summary はこれらを区別します。食品が 12 品目ある架空の 1 日分の例です。
| 栄養素 | 報告されている食品数 | 結果 |
|---|---|---|
| エネルギー | 12 品目中 12 品目 | 2,410 kcal — 実際の合計値です |
| タンパク質 | 12 品目中 12 品目 | 172 g |
| ビタミン D | 12 品目中 9 品目 | データ不足 — 少なくとも 520 IU |
| マグネシウム | 12 品目中 4 品目 | データ不足 — 少なくとも 61 mg |
すべての食品がその栄養素を報告している場合(または、coverage_threshold で指定した割合を満たす場合)にのみ、栄養素は数値になります。それ以外の場合は、値の意味を示す下限値が返されます。記録がない日はゼロとして平均に含めず、別途一覧表示します。同じルールがレーダーチャートにも適用されます。不完全な項目は「少なくとも」を示す破線で描画され、誰も報告していない栄養素はデータなしとして表示されます。これらは診断ではなく、記録された内容を報告するものです。
アカウントを安全に保つ仕組み
- 書き込みのたびに承認します。 書き込みツールには、MCP の破壊的/読み取り専用のヒントと
anthropic/requiresUserInteractionが付いているため、どの権限モードでも毎回 Claude Code に確認を求めさせます。 削除やその他の取り消せない操作を行うツールでは、confirm: trueも必要です。 - 書き込みを重複させません。 書き込みがタイムアウトした場合は、「結果不明 — Cronometer アプリで確認してください」と報告し、再試行しません。Cronometer が明示的に拒否した場合(401/403)に限り書き込みを再送します。これは、書き込みが適用されていないことを意味します。
- 推測ではなく ID を使います。 編集や削除には
get_diaryから取得した ID を指定し、サーバーはその日に存在しない ID を拒否します。 - 信頼できないデータはデータとして扱います。 食品名やメモは、内容によって閉じられない JSON エンコード済みのフェンス内で返され、サーバーはモデルにそれらをデータとして扱うよう指示します。
- ネットワークとストレージを制限します。 通信先は
cronometer.comとmobile.cronometer.comへの HTTPS のみに限定し、サイズと時間にも上限を設けています。パスワードは OS の認証情報ストアに保存され、セッションキャッシュは専用ディレクトリ内のプライベートファイル(モード 600)に保存されます。すべてのエラーとログ行からシークレットが秘匿されます。 - Cronometer に負荷をかけません。 呼び出しは間隔を空けて 1 件ずつ実行し、セッションをキャッシュするため、サーバーがサインインする頻度はごくわずかです。
トラブルシューティング
| 症状 | 対処方法 |
|---|---|
| "Cronometer is not set up yet" | ターミナルで npx @ekelly95/cronometer-mcp setup を実行します |
| "two-factor authentication" | セットアップを再実行し、認証アプリの base32 キーを貼り付けます |
| "rate-limiting sign-ins" | 数分待ちます。通常の使用ではセッションキャッシュによってこの問題を防げます |
| キーリングにパスワードが見つからない(Linux) | GNOME Keyring または KDE Wallet が起動してロック解除されていること、また secret-tool がインストールされていることを確認します |
| 書き込みが互換性の問題で拒否される | Cronometer が何かを変更しました。このパッケージに新しいバージョンがないか確認します |
| その他すべて | npx @ekelly95/cronometer-mcp doctor |
リスク
- 非公式のインターフェースです。 Cronometer は API を公開していません。その 利用規約では、個人の非商用目的での使用に限定されており、予告なくアクセスを終了できると定められています。このツールはご自身のアカウントでのみ使用してください。
- 動作しなくなる可能性があります。 モバイル API ではアプリのバージョン番号が必要で、
CRONOMETER_APP_VERSION/CRONOMETER_APP_BUILDで更新できます。ウェブプロトコルのビルドハッシュは自動的に検出されます。どちらも、新しいリリースでしか修正できない形で変更される可能性があります。 - エクスポートには Cronometer によるレート制限があります。
export_*ツールは長期間のデータを対象とし、最大 14 日分までならget_diaryで取得できます。 - 医療上のアドバイスではありません。 基準摂取量は集団の数値であり、個人の目標値ではありません。
仕組み
このサーバーは、ほぼすべての処理で Cronometer のモバイル API(Android アプリの JSON インターフェース)を使用し、CSV エクスポート、マクロテンプレート、高速編集、繰り返し食品に限ってウェブアプリの GWT-RPC プロトコルを使用します。詳細については docs/PROTOCOL.md を、CSV エクスポートのスキーマについては docs/DATA_MODEL.md を参照してください。
MIT ライセンスの 2 つのプロジェクトを基盤としています。モバイル API を確立した Randy Westergren による cronometer-api-mcp と、ウェブプロトコルを確立した Paul Hoskins による cronometer-mcp です。THIRD_PARTY_NOTICES.md を参照してください。
開発
npm ci
npm run verify # typecheck + the full offline test suite
npm start # run the stdio server from source (after npm run build)
テストはオフラインで実行され、合成フィクスチャを使用します。テストスイート内で Cronometer の認証情報が使われることはありません。リリース前には、使い捨ての日付の食事記録を使って手動で実環境の動作を確認します (docs/RELEASING.md)。変更内容は CHANGELOG.md に記録されます。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。