node-huckleberry-mcp
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.jsRelated 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_sleep、pause_feeding など — は実装されていません。完了したイベントの記録には明示的な log_* ツールを使用してください。)
子どもの管理(2)
ツール | 入力 | 出力 |
| — | ユーザープロフィール + 子の UID 一覧 |
|
| 子のプロフィール( |
睡眠(4)
ツール | 入力 | 目的 |
|
| 完了した睡眠セッションを記録 |
|
| 最近の睡眠セッション( |
|
| 既存の睡眠エントリを編集 |
|
| 睡眠エントリを完全に削除 |
授乳(10)
ツール | 入力 | 目的 |
|
| 授乳セッションを記録 |
|
| 哺乳瓶での授乳を記録 |
|
| 固形食の授乳を記録 |
|
| 搾乳セッションを記録 |
|
| 最近の搾乳セッション( |
|
| 最近の授乳記録( |
|
| 既存の授乳エントリを編集 |
|
| 既存の搾乳エントリを編集 |
|
| 授乳エントリを完全に削除 |
|
| 搾乳エントリを完全に削除 |
おむつ(5)
color と consistency は固定の値セット(yellow/brown/green/black/red/white/orange/other; hard/normal/soft/runny/watery/formed/mucousy)に制限されており、未認識の値が Huckleberry アプリをクラッシュさせるのを防ぎます。このセットの選定方法は TASKS.md → BUG2 を参照してください — レガシーポートから採用されたもので、まだ実環境で確認されていません。
ツール | 入力欄 | 目的 |
|
| おむつ交換を記録 |
|
| トイレトレーニングの活動を記録 |
|
| おむつ + トイレの履歴( |
|
| 既存のおむつ/トイレエントリを編集 |
|
| おむつ/トイレエントリを完全に削除 |
成長(5)
ツール | 入力欄 | 目的 |
|
| 成長測定値を記録 |
|
| 最新の成長測定値( |
|
| 成長履歴( |
|
| 既存の成長測定値を編集 |
|
| 成長測定値を完全に削除 |
固形食 — カスタムフード(3)
ツール | 入力欄 | 目的 |
| — | キュレーションされた食品データベースを取得 |
|
| 子のカスタムフードを一覧表示 |
|
| カスタムフードエントリを作成 |
すべての
start/end入力は エポック秒 です。時刻はHUCKLEBERRY_TIMEZONEから導出されたタイムゾーンoffsetとともに保存されます。すべての
log_*ツールはオプションの自由記述notesフィールドを受け付け、エントリに保存され、対応する履歴/get_*ツールで返されます(各読み取りエントリには Firestore のidが含まれます)。edit_*ツール(edit_sleep、edit_feed、edit_pump、edit_diaper、edit_growth)は既存のエントリのnotesやその他のフィールドを更新し、delete_*ツールはエントリを 1 つ削除します — どちらも対応する読み取りからid/interval_id/entry_idを取得します。削除してもトラッカーのprefs.last*サマリーは再計算されないため、「最新」ビューに削除されたエントリが次の書き込みまで一時的に表示されることがあります。
プロンプト
サーバーは MCP プロンプト(対応クライアントでのスラッシュコマンド形式のテンプレート)も公開しています: huckleberry_usage(使用規則を読み込む)、daily_summary(date?)、log_event(event)。
エージェントスキル
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 ポートです:
py-huckleberry-api© 2025 Woyken(GitHub、MIT License)py-huckleberry-mcp© 2026 Huckleberry MCP Contributors(GitHub、MIT License)
このポートには、両方のアップストリームプロジェクトの設計と実装が大幅に含まれています。
安全性とプライバシー
データはローカルに保存されません。 すべての操作は、Huckleberry Firestore データベースへの認証付き読み取り/書き込みです。
認証情報は環境ベースです。
.envをコミットしたり、認証情報をハードコードしたりしないでください。これはサードパーティサービスの非公式クライアントであり、API はリバースエンジニアリングされたもので、変更される可能性があります。
サポート
ドキュメント: コントリビューター向けガイダンスは AGENTS.md を参照してください。
問題: バグの報告や機能のリクエストは GitHub Issues で行ってください。
アップストリーム: Huckleberry のデータや API の変更に関する質問は、元の Python プロジェクトを参照してください。
❤️を込めて、py-huckleberry-api と py-huckleberry-mcp の Node/TypeScript 移植版として構築されました。
Maintenance
Related MCP Servers
- AlicenseAqualityBmaintenanceAn 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.2717MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that connects AI assistants like Claude to WHOOP health data, enabling natural language queries about recovery, sleep, workouts, and more.149143MIT
- AlicenseBqualityBmaintenanceMCP server for accessing Oura Ring data from Claude Code and claude.ai, providing summarized health metrics and raw API data.11MIT
- AlicenseNot gradedqualityCmaintenanceHosted 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
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.
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/KenLSM/node-huckleberry-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server