Skip to main content
Glama
KenLSM

node-huckleberry-mcp

npm version npm downloads

Huckleberry MCP サーバー

Huckleberry ベビートラッカーの非公式 MCP サーバーです。Claude、Cursor、VS Code、その他の AI アシスタントに対応しています。赤ちゃんの睡眠、授乳、おむつ、搾乳、固形食、トイレトレーニング、成長記録の照会・記録ができます。

Huckleberry のデータ(睡眠、授乳、成長、おむつ、固形食)を Claude Desktop に直接公開したり、MCP サーバーを他の AI アプリケーションに統合したりできます。

インストール

必要条件

  • Node.js 24 以上(CI と一致。.nvmrc を参照)

  • npm 9 以上

クイックスタート

npm install -g node-huckleberry-mcp

または npx で直接使用:

npx node-huckleberry-mcp

ソースから

git clone https://github.com/KenLSM/node-huckleberry-mcp.git
cd node-huckleberry-mcp
npm install
npm run build
node dist/index.js

Related MCP server: whoop-ai-mcp

設定

環境変数

サーバーは環境変数から認証情報を読み取ります:

HUCKLEBERRY_EMAIL=you@example.com
HUCKLEBERRY_PASSWORD=your-password
HUCKLEBERRY_TIMEZONE=America/New_York

プロジェクトのルートに .env ファイルを作成します(テンプレートは .env.example を参照):

cp .env.example .env
# Edit .env with your Huckleberry credentials

注: .env をバージョン管理にコミットしないでください。.gitignore で既に除外されています。

Claude Desktop 連携

このサーバーを Claude Desktop で使用するには、claude_desktop_config.json に追加します:

macOS/Linux: ~/.config/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "huckleberry": {
      "command": "npx",
      "args": ["node-huckleberry-mcp"],
      "env": {
        "HUCKLEBERRY_EMAIL": "you@example.com",
        "HUCKLEBERRY_PASSWORD": "your-password",
        "HUCKLEBERRY_TIMEZONE": "America/New_York"
      }
    }
  }
}

設定を更新したら、Claude Desktop を再起動してください。Huckleberry のツールがツール一覧に表示されます。

ツール

サーバーは 6 カテゴリ・29 ツール を公開しています。(アクティブセッションの睡眠・授乳タイマー — start_sleeppause_feeding など — は実装されていません。完了したイベントの記録には明示的な log_* ツールを使用してください。)

子どもの管理(2)

ツール

入力

出力

get_user

ユーザープロフィール + 子の UID 一覧

get_child

child_uid

子のプロフィール(childsNamegenderbirthdate

睡眠(4)

ツール

入力

目的

log_sleep

child_uidstartend(エポック秒)、notes?

完了した睡眠セッションを記録

get_sleep_history

child_uidlimit?

最近の睡眠セッション(id を含む)

edit_sleep

child_uidinterval_id、+ start/duration/notes のいずれか

既存の睡眠エントリを編集

delete_sleep

child_uidinterval_id

睡眠エントリを完全に削除

授乳(10)

ツール

入力

目的

log_nursing

child_uidstartleft_duration?right_duration?last_side?notes?

授乳セッションを記録

log_bottle

child_uidstartamountbottle_typeunitsnotes?

哺乳瓶での授乳を記録

log_solids

child_uidstartnotes?

固形食の授乳を記録

log_pump

child_uidstartleft_amount/right_amount または total_amountunitsduration?notes?

搾乳セッションを記録

list_pump_intervals

child_uidlimit?

最近の搾乳セッション(id を含む)

get_feed_history

child_uidlimit?

最近の授乳記録(id を含む)、新しい順

edit_feed

child_uidinterval_id、+ start/amount/bottle_type/units/left_duration/right_duration/last_side/notes のいずれか

既存の授乳エントリを編集

edit_pump

child_uidinterval_id、+ start/left_amount/right_amount/units/duration/notes のいずれか

既存の搾乳エントリを編集

delete_feed

child_uidinterval_id

授乳エントリを完全に削除

delete_pump

child_uidinterval_id

搾乳エントリを完全に削除

おむつ(5)

colorconsistency は固定の値セット(yellow/brown/green/black/red/white/orange/other; hard/normal/soft/runny/watery/formed/mucousy)に制限されており、未認識の値が Huckleberry アプリをクラッシュさせるのを防ぎます。このセットの選定方法は TASKS.md → BUG2 を参照してください — レガシーポートから採用されたもので、まだ実環境で確認されていません。

ツール

入力欄

目的

log_diaper

child_uidmode(pee/poo/both/dry)、startcolor?consistency?pee_amount?poo_amount?notes?

おむつ交換を記録

log_potty

child_uidmode(pee/poo)、startnotes?

トイレトレーニングの活動を記録

get_diaper_history

child_uidlimit?

おむつ + トイレの履歴(id を含む)

edit_diaper

child_uidinterval_id、+ start/mode/color/consistency/pee_amount/poo_amount/notes のいずれか

既存のおむつ/トイレエントリを編集

delete_diaper

child_uidinterval_id

おむつ/トイレエントリを完全に削除

成長(5)

ツール

入力欄

目的

log_growth

child_uidweight?height?head?units?(metric/imperial)、start?notes?

成長測定値を記録

get_latest_growth

child_uid

最新の成長測定値(id を含む)

get_growth_history

child_uidlimit?

成長履歴(id を含む)

edit_growth

child_uidentry_id、+ start/weight/height/head/units/notes のいずれか

既存の成長測定値を編集

delete_growth

child_uidentry_id

成長測定値を完全に削除

固形食 — カスタムフード(3)

ツール

入力欄

目的

list_curated_foods

キュレーションされた食品データベースを取得

list_custom_foods

child_uid

子のカスタムフードを一覧表示

create_custom_food

child_uidnamecategory?allergens?notes?

カスタムフードエントリを作成

すべての start/end 入力は エポック秒 です。時刻は HUCKLEBERRY_TIMEZONE から導出されたタイムゾーン offset とともに保存されます。

すべての log_* ツールはオプションの自由記述 notes フィールドを受け付け、エントリに保存され、対応する履歴/get_* ツールで返されます(各読み取りエントリには Firestore の id が含まれます)。edit_* ツール(edit_sleepedit_feededit_pumpedit_diaperedit_growth)は既存のエントリの notes やその他のフィールドを更新し、delete_* ツールはエントリを 1 つ削除します — どちらも対応する読み取りから id/interval_id/entry_id を取得します。削除してもトラッカーの prefs.last* サマリーは再計算されないため、「最新」ビューに削除されたエントリが次の書き込みまで一時的に表示されることがあります。

プロンプト

サーバーは MCP プロンプト(対応クライアントでのスラッシュコマンド形式のテンプレート)も公開しています: huckleberry_usage(使用規則を読み込む)、daily_summarydate?)、log_eventevent)。

エージェントスキル

skills/huckleberry/SKILL.md は、アシスタントにこれらのツールの正しい使い方(子の解決、自然言語の時刻 → エポック秒、単位、書き込み前の確認)を教えます。Claude のスキルディレクトリにコピーすると、MCP をよりスムーズに使用できます。

開発

スクリプト

npm run build            # TypeScript → JavaScript (tsc)
npm run lint             # Lint with oxlint
npm run lint:fix         # Lint and auto-fix
npm run format           # Format with oxfmt
npm run format:check     # Check formatting without changes
npm test                 # Run unit tests (Vitest)
npm run test:watch       # Watch mode for tests
npm run test:integration # Live tests (needs HUCKLEBERRY_* creds; skipped otherwise). Read-only by default; set HUCKLEBERRY_ALLOW_WRITES=1 to also run the log_*→delete write round-trip (test account only)
npm run inspect:schema   # Dump real Firestore shapes (needs creds) — see docs/integration-testing.md
npm run smoke            # Build + run the MCP server smoke test
npm run dev              # Run in dev mode (tsx)

ツールチェーン

  • TypeScript 5.3+(strict モード)

  • oxc(oxlint + oxfmt)— 高速な Rust ベースの lint とフォーマット

  • Vitest — ユニットテストランナー

  • Zod — ランタイムデータ検証

  • Firebase JS SDK — Firestore + Auth

アーキテクチャ

src/
├── auth/            # Authentication (T1.1)
├── client/          # Huckleberry API operations (T1.2–T1.9)
├── models/          # Zod schemas for Firestore docs (T1.3)
├── server/          # MCP server framework (T2.1–T2.2)
├── tools/           # MCP tool implementations (T2.3–T2.8)
├── __tests__/       # Unit & smoke tests
└── index.ts         # Entry point

アーキテクチャの詳細と規約については AGENTS.md を参照してください。

テスト

ユニットテストは src/__tests__/ にあり、Firebase をモックした Vitest を使用します:

npm test

単一のテストファイルを実行:

npm test -- models.test.ts

ウォッチモード:

npm run test:watch

ライブ統合テスト(ゲート付き)は実際のアカウントに対して検証し、認証情報がない場合はスキップされます。デフォルトでは読み取り専用で、オプトインの log_*→delete 書き込みラウンドトリップは HUCKLEBERRY_ALLOW_WRITES=1 の場合のみ実行されます(テストアカウントを使用してください)— docs/integration-testing.md を参照:

# read-only schema validation
HUCKLEBERRY_EMAIL=… HUCKLEBERRY_PASSWORD=… npm run test:integration

# also exercise log_*→delete writes (test account only)
HUCKLEBERRY_EMAIL=… HUCKLEBERRY_PASSWORD=… HUCKLEBERRY_ALLOW_WRITES=1 npm run test:integration

ライセンスと帰属

このプロジェクトは、MIT ライセンスの 2 つのプロジェクトの Node.js ポートです:

このポートには、両方のアップストリームプロジェクトの設計と実装が大幅に含まれています。

安全性とプライバシー

  • データはローカルに保存されません。 すべての操作は、Huckleberry Firestore データベースへの認証付き読み取り/書き込みです。

  • 認証情報は環境ベースです。 .env をコミットしたり、認証情報をハードコードしたりしないでください。

  • これはサードパーティサービスの非公式クライアントであり、API はリバースエンジニアリングされたもので、変更される可能性があります。

サポート

  • ドキュメント: コントリビューター向けガイダンスは AGENTS.md を参照してください。

  • 問題: バグの報告や機能のリクエストは GitHub Issues で行ってください。

  • アップストリーム: Huckleberry のデータや API の変更に関する質問は、元の Python プロジェクトを参照してください。


❤️を込めて、py-huckleberry-apipy-huckleberry-mcp の Node/TypeScript 移植版として構築されました。

Install Server
A
license - permissive license
C
quality
A
maintenance

Maintenance

Maintainers
Response time
3wRelease cycle
4Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that provides access to Cronometer nutrition data, enabling users to pull food logs, macro and micronutrient summaries, and biometric data into Claude or Cursor. It supports daily nutrition tracking and raw CSV exports by interfacing with the Cronometer web protocol.
    27
    17
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    MCP server for accessing Oura Ring data from Claude Code and claude.ai, providing summarized health metrics and raw API data.
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Hosted MCP server that syncs health data from Apple Health, Fitbit, Oura, and Google Health Connect, enabling Claude and ChatGPT to query workouts, sleep, nutrition, and recovery in plain English with interactive charts.
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

Latest Blog Posts

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/KenLSM/node-huckleberry-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server