MCP server for self-hosted BabyBuddy
BabyBuddy MCP Server
MCP server for self-hosted BabyBuddy.
Transport: Streamable HTTP (runs on http://localhost:8080)
Auth: Direct API Token via environment variables. No login required.
Quick Start
1. Install
cd babybuddy-mcp
pip install -r requirements.txt
2. Configure
Set the following environment variables in your .env file or shell:
| Variable | Description |
|---|---|
| BABYBUDDY_INSTANCE | Your full BabyBuddy URL (e.g., https://your-instance.com/) |
| BABYBUDDY_TOKEN | Your API token (Settings → API → your token) |
Optional:
| Variable | Default | Description |
|---|---|---|
| HOST | localhost | Bind address |
| PORT | 8080 | Listen port |
| SERVER_URL | http://localhost:8080 | Public base URL |
3. Run
python3 server.py
Tools (33 total)
| Tool | Description |
|---|---|
| list_children | List all children (returns IDs needed by other tools) |
| log_feeding | Log a feeding — type, method, start/end, optional amount |
| get_feedings | Recent feedings for a child |
| delete_feeding | Delete a feeding session by ID |
| log_sleep | Log a sleep session (nap or night) |
| get_sleep | Recent sleep sessions |
| delete_sleep | Delete a sleep session by ID |
| log_diaper_change | Log a diaper change — wet, solid, color, amount |
| get_diaper_changes | Recent diaper changes |
| delete_diaper_change | Delete a diaper change by ID |
| log_temperature | Log temperature in °C |
| get_temperature | Recent temperature readings |
| delete_temperature | Delete a temperature reading by ID |
| log_weight | Log weight in kg |
| get_weight | Weight history |
| delete_weight | Delete a weight measurement by ID |
| log_height | Log height in cm |
| get_height | Height history |
| delete_height | Delete a height measurement by ID |
| log_head_circumference | Log head circumference in cm |
| get_head_circumference | Head circumference history |
| delete_head_circumference | Delete a head circumference measurement by ID |
| log_pumping | Log a pumping session in ml |
| get_pumping | Recent pumping sessions |
| delete_pumping | Delete a pumping session by ID |
| add_note | Add a free-text note |
| get_notes | Recent notes |
| delete_note | Delete a note by ID |
| get_timers | List active timers |
| start_timer | Start a new timer |
| stop_timer | Stop/delete a timer |
| get_tags | List all tags |
| get_daily_summary | All events for a child on a given day |
Deploying to Google Cloud Run
The included Dockerfile targets Cloud Run.
Deploy to GCP
gcloud run deploy babybuddy-mcp \
--source=. \
--allow-unauthenticated \
--set-env-vars="BABYBUDDY_INSTANCE=$BABYBUDDY_INSTANCE,BABYBUDDY_TOKEN=$BABYBUDDY_TOKEN"
Testing
To run the end-to-end tests against your real BabyBuddy instance:
- Ensure your
.envfile hasBABYBUDDY_INSTANCEandBABYBUDDY_TOKENset. - Install test dependencies:
uv pip install -r requirements.txt - Run the tests:
uv run pytest tests/test_e2e.py