node-huckleberry-mcp
Huckleberry MCP Server
Servidor MCP no oficial de Huckleberry baby tracker para Claude, Cursor, VS Code y otros asistentes de IA. Consulta y registra registros de sueño, alimentación, pañales, extracción de leche, sólidos, baño y crecimiento del bebé.
Expón los datos de Huckleberry (sueño, alimentación, crecimiento, pañales, sólidos) directamente en Claude Desktop, o integra el servidor MCP en otras aplicaciones de IA.
Instalación
Requisitos
Node.js 24+ (coincide con CI; ver
.nvmrc)npm 9+
Inicio rápido
npm install -g node-huckleberry-mcpO úsalo directamente con npx:
npx node-huckleberry-mcpDesde el código fuente
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
Configuración
Variables de entorno
El servidor lee las credenciales de las variables de entorno:
HUCKLEBERRY_EMAIL=you@example.com
HUCKLEBERRY_PASSWORD=your-password
HUCKLEBERRY_TIMEZONE=America/New_YorkCrea un archivo .env en la raíz de tu proyecto (consulta .env.example para una plantilla):
cp .env.example .env
# Edit .env with your Huckleberry credentialsNota: Nunca subas .env al control de versiones. El .gitignore ya lo excluye.
Integración con Claude Desktop
Para usar este servidor con Claude Desktop, agrégalo a tu 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"
}
}
}
}Después de actualizar la configuración, reinicia Claude Desktop. Las herramientas de Huckleberry aparecerán en la lista de herramientas.
Herramientas
El servidor expone 29 herramientas en 6 categorías. (Los temporizadores de sueño/alimentación de sesión activa — start_sleep, pause_feeding, etc. — no están implementados; usa las herramientas explícitas log_* para registrar eventos completados).
Gestión de niños (2)
Herramienta | Entrada | Salida |
| — | Perfil de usuario + lista de UID de niños |
|
| Perfil del niño ( |
Sueño (4)
Herramienta | Entrada | Propósito |
|
| Registrar una sesión de sueño completada |
|
| Sesiones de sueño recientes (incl. |
|
| Editar una entrada de sueño existente |
|
| Eliminar permanentemente una entrada de sueño |
Alimentación (10)
Herramienta | Entrada | Propósito |
|
| Registrar una sesión de lactancia |
|
| Registrar una alimentación con biberón |
|
| Registrar una alimentación con sólidos |
|
| Registrar una sesión de extracción de leche |
|
| Sesiones de extracción recientes (incl. |
|
| Alimentaciones recientes (incl. |
|
| Editar una entrada de alimentación existente |
|
| Editar una entrada de extracción existente |
|
| Eliminar permanentemente una entrada de alimentación |
|
| Eliminar permanentemente una entrada de extracción |
Pañal (5)
color y consistency están restringidos a un conjunto fijo de valores (yellow/brown/green/black/red/white/orange/other; hard/normal/soft/runny/watery/formed/mucousy) para evitar que un valor no reconocido provoque un fallo en la aplicación Huckleberry en esa entrada. Consulta TASKS.md → BUG2 para saber cómo se eligió el conjunto — adoptado del puerto heredado, aún no confirmado en vivo.
Herramienta | Entrada | Propósito |
|
| Registrar un cambio de pañal |
|
| Registrar actividad de entrenamiento para ir al baño |
|
| Historial de pañal + baño (incl. |
|
| Editar una entrada de pañal/baño existente |
|
| Eliminar permanentemente una entrada de pañal/baño |
Crecimiento (5)
Herramienta | Entrada | Propósito |
|
| Registrar una medición de crecimiento |
|
| Medición de crecimiento más reciente (incl. |
|
| Historial de crecimiento (incl. |
|
| Editar una medición de crecimiento existente |
|
| Eliminar permanentemente una medición de crecimiento |
Sólidos — alimentos personalizados (3)
Herramienta | Entrada | Propósito |
| — | Obtener la base de datos de alimentos seleccionados |
|
| Listar alimentos personalizados para un niño |
|
| Crear una entrada de alimento personalizado |
Todas las entradas
start/endson segundos de época. Las horas se almacenan con unoffsetde zona horaria derivado deHUCKLEBERRY_TIMEZONE.Cada herramienta
log_*acepta un campo opcional de texto librenotes, que se almacena en la entrada y se devuelve mediante la herramienta de historial/get_*correspondiente (cada entrada leída incluye suidde Firestore). Las herramientasedit_*(edit_sleep,edit_feed,edit_pump,edit_diaper,edit_growth) actualizannotesy otros campos en una entrada existente, y las herramientasdelete_*eliminan una — ambas toman elid/interval_id/entry_idde la lectura correspondiente. Eliminar no recalcula el resumenprefs.last*del rastreador, por lo que una vista "más reciente" puede mostrar brevemente una entrada eliminada hasta la siguiente escritura.
Prompts
El servidor también expone prompts de MCP (plantillas de estilo comando de barra en clientes que los admiten): huckleberry_usage (carga las convenciones de uso), daily_summary (date?) y log_event (event).
Habilidad de agente
skills/huckleberry/SKILL.md enseña a un asistente cómo usar estas herramientas correctamente (resolución de niño, tiempo en lenguaje natural → segundos de época, unidades, confirmar antes de escribir). Cópialo en tu directorio de habilidades de Claude para que el MCP sea más fácil de usar.
Desarrollo
Scripts
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)Cadena de herramientas
TypeScript 5.3+ con modo estricto
oxc (oxlint + oxfmt) — linting y formateo rápidos basados en Rust
Vitest — ejecutor de pruebas unitarias
Zod — validación de datos en tiempo de ejecución
Firebase JS SDK — Firestore + Auth
Arquitectura
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 pointConsulta AGENTS.md para detalles de arquitectura y convenciones.
Pruebas
Las pruebas unitarias están en src/__tests__/ y usan Vitest con Firebase simulado:
npm testEjecuta un solo archivo de prueba:
npm test -- models.test.tsModo de observación:
npm run test:watchIntegración en vivo (restringida) valida contra una cuenta real y se omite sin credenciales. Es de solo lectura por defecto; un ciclo de escritura log_*→delete opcional se ejecuta solo con HUCKLEBERRY_ALLOW_WRITES=1 (usa una cuenta de prueba) — consulta 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:integrationLicencia y atribución
Este proyecto es un puerto de Node.js de dos proyectos con licencia MIT:
py-huckleberry-api© 2025 Woyken (GitHub, Licencia MIT)py-huckleberry-mcp© 2026 Huckleberry MCP Contributors (GitHub, Licencia MIT)
Este puerto incluye diseño e implementación sustanciales de ambos proyectos originales.
Seguridad y privacidad
No se almacenan datos localmente. Todas las operaciones son lecturas/escrituras autenticadas a tu base de datos de Firestore de Huckleberry.
Las credenciales se basan en el entorno. Nunca subas
.envni codifiques credenciales.Este es un cliente no oficial de un servicio de terceros; la API está diseñada mediante ingeniería inversa y puede cambiar.
Soporte
Documentación: Consulta AGENTS.md para obtener orientación para contribuyentes.
Problemas: Reporta errores o solicita funciones en GitHub Issues.
Proyecto original: Para preguntas sobre los datos de Huckleberry o cambios en la API, consulta los proyectos originales en Python.
Construido con ❤️ como un port en Node/TypeScript de py-huckleberry-api y 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