node-huckleberry-mcp
Huckleberry MCP Server
Неофициальный MCP-сервер для трекера младенцев Huckleberry для Claude, Cursor, VS Code и других ИИ-ассистентов. Запрашивайте и записывайте данные о сне, кормлении, подгузниках, сцеживании, прикорме, приучении к горшку и росте ребенка.
Предоставляйте данные Huckleberry (сон, кормление, рост, подгузники, прикорм) напрямую в Claude Desktop или интегрируйте MCP-сервер в другие ИИ-приложения.
Установка
Требования
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 появятся в списке инструментов.
Инструменты
Сервер предоставляет 29 инструментов в 6 категориях. (Таймеры активных сессий сна/кормления — start_sleep, pause_feeding и т. д. — не реализованы; используйте явные инструменты log_* для записи завершенных событий.)
Управление ребенком (2)
Инструмент | Ввод | Вывод |
| — | Профиль пользователя + список UID детей |
|
| Профиль ребенка ( |
Сон (4)
Инструмент | Ввод | Назначение |
|
| Записать завершенную сессию сна |
|
| Недавние сессии сна (включая |
|
| Редактировать существующую запись сна |
|
| Навсегда удалить запись сна |
Кормление (10)
Инструмент | Ввод | Назначение |
|
| Записать сессию грудного вскармливания |
|
| Записать кормление из бутылочки |
|
| Записать кормление прикормом |
|
| Записать сессию сцеживания |
|
| Недавние сессии сцеживания (включая |
|
| Недавние кормления (включая |
|
| Редактировать существующую запись кормления |
|
| Редактировать существующую запись сцеживания |
|
| Навсегда удалить запись кормления |
|
| Навсегда удалить запись сцеживания |
Подгузники (5)
color и consistency ограничены фиксированным набором значений
(желтый/коричневый/зеленый/черный/красный/белый/оранжевый/другой;
твердый/нормальный/мягкий/жидкий/водянистый/оформленный/слизистый), чтобы предотвратить сбой приложения Huckleberry из-за нераспознанного значения
на этой записи. См. TASKS.md → BUG2 о том, как был выбран набор — заимствован из устаревшего порта, еще не подтвержден вживую.
Инструмент | Ввод | Назначение |
|
| Записать смену подгузника |
|
| Записать активность приучения к горшку |
|
| История подгузников + горшка (включая |
|
| Редактировать существующую запись подгузника/горшка |
|
| Навсегда удалить запись подгузника/горшка |
Рост (5)
Инструмент | Ввод | Назначение |
|
| Записать измерение роста |
|
| Самое последнее измерение роста (включая |
|
| История роста (включая |
|
| Редактировать существующее измерение роста |
|
| Навсегда удалить измерение роста |
Прикорм — пользовательские продукты (3)
Инструмент | Ввод | Назначение |
| — | Получить базу данных курируемых продуктов |
|
| Список пользовательских продуктов для ребенка |
|
| Создать запись пользовательского продукта |
Все входные данные
start/end— это секунды эпохи. Время сохраняется с смещением часового поясаoffset, полученным изHUCKLEBERRY_TIMEZONE.Каждый инструмент
log_*принимает необязательное поле свободного текстаnotes, которое сохраняется в записи и возвращается соответствующим инструментом истории/get_*(каждая прочитанная запись включает свой Firestoreid). Инструментыedit_*(edit_sleep,edit_feed,edit_pump,edit_diaper,edit_growth) обновляютnotesи другие поля в существующей записи, а инструментыdelete_*удаляют одну — оба принимают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+ со строгим режимом
oxc (oxlint + oxfmt) — быстрые линтинг и форматирование на основе Rust
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__/ и используют Vitest с мокированным Firebase:
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Лицензирование и атрибуция
Этот проект — порт на Node.js двух проектов под лицензией MIT:
py-huckleberry-api© 2025 Woyken (GitHub, Лицензия MIT)py-huckleberry-mcp© 2026 Huckleberry MCP Contributors (GitHub, Лицензия MIT)
Этот порт включает значительный дизайн и реализацию из обоих вышеуказанных проектов.
Безопасность и конфиденциальность
Данные не хранятся локально. Все операции — это аутентифицированные чтения/записи в вашу базу данных Huckleberry Firestore.
Учетные данные основаны на переменных окружения. Никогда не коммитьте
.envи не хардкодьте учетные данные.Это неофициальный клиент стороннего сервиса; API был реконструирован и может измениться.
Поддержка
Документация: См. AGENTS.md для руководства для участников.
Проблемы: Сообщайте об ошибках или запрашивайте функции на GitHub Issues.
Вышестоящий проект: По вопросам о данных Huckleberry или изменениях API см. оригинальные проекты на Python.
Создано с ❤️ как Node/TypeScript порт py-huckleberry-api и py-huckleberry-mcp.
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