yazio-mcp
# Yazio MCP Server <img src="https://assets.yazio.com/frontend/images/branded-logo-dark.svg" alt="Yazio Logo" width="104" height="28" />
> [!IMPORTANT]
> This is **not an official MCP server** and Yazio does **not provide an official API**.
> This server uses an [unofficial reverse-engineered API](https://github.com/juriadams/yazio) and may stop working at any time.
An MCP (Model Context Protocol) server that connects Claude/Cursor to your Yazio nutrition data. Track your diet, search food products, and manage your nutrition goals directly from your AI assistant.
**Available on NPM**: `npx yazio-mcp`
**Claude Desktop Extension**: ~~[yazio-mcp.mcpb](https://github.com/fliptheweb/yazio-mcp/releases/latest/download/yazio-mcp.mcpb)~~ — one-click install is [broken upstream](https://github.com/modelcontextprotocol/mcpb/issues/281), see [workaround](#claude-desktop-extension).
## ✨ Features
- 🔐 **Authentication** - Connect with your Yazio account
- 📊 **Nutrition Analysis** - Get comprehensive diet data and insights
- 🍎 **Food Tracking** - Search, add, and manage food entries
- 🏃♂️ **Fitness Data** - Track exercises and water intake
- ⚖️ **Weight Monitoring** - View weight history and trends
- 🎯 **Goal Management** - Access and manage nutrition goals
- 🔍 **Product Search** - Search Yazio's extensive [food database](https://www.yazio.com/en/foods)
## 🚀 Quick Start
Add the following JSON your MCP client configuration:
```json
{
"mcpServers": {
"yazio": {
"command": "npx",
"args": ["-y", "yazio-mcp"],
"env": {
"YAZIO_USERNAME": "your_email@emai.com",
"YAZIO_PASSWORD": "your_password"
}
}
}
}
```
### Claude Desktop (Extension)
> [!WARNING]
> One-click `.mcpb` install is broken by a Claude Desktop bug ([mcpb#281](https://github.com/modelcontextprotocol/mcpb/issues/281)). **Workaround:** download [yazio-mcp.zip](https://github.com/fliptheweb/yazio-mcp/releases/latest/download/yazio-mcp.zip), extract it, and use **Settings → Extensions → Advanced settings → Install Unpacked Extension**. Or just use the `npx` config above.
### Claude Desktop (Manual)
`~/Library/Application Support/Claude/claude_desktop_config.json`
### Claude Code (CLI)
```bash
claude mcp add yazio -e YAZIO_USERNAME=your_email@email.com -e YAZIO_PASSWORD=your_password -- npx -y yazio-mcp
```
Verify with `claude mcp list`.
### Cursor
There are a few ways to add the server:
- **Settings UI** (easiest) — `Settings → MCP → + Add new MCP server`, then fill in the command, args, and env
- **Project config** — add JSON to `.cursor/mcp.json` in your project root
- **Global config** — add JSON to `~/.cursor/mcp.json` (applies to all projects)
## 💡 Use Cases

### 📈 Analyze Your Nutrition Trends
> *"Get my nutrition data for the last week and analyze my eating patterns"*
Claude can retrieve your daily summaries, identify trends, and provide insights about your eating habits, macro distribution, and areas for improvement.
### 🔍 Search Food Products
> *"Search for 'chicken breast' in the Yazio database"*
Find detailed nutritional information for any food product, including calories, macros, vitamins, and minerals.
### 📝 Add Forgotten Meals
> *"Add 200g of grilled salmon for yesterday's dinner"*
Easily log meals you forgot to track in the Yazio app directly from Claude or Cursor.
## 🛠️ Available Tools
| Tool | Description | Key Parameters |
|------|-------------|----------------|
| `get_user_daily_summary` | Get daily nutrition summary | `date` |
| `get_user_consumed_items` | Get food entries for a date | `date` |
| `get_user_weight` | Get weight data | - |
| `get_user_exercises` | Get exercise data | `date` |
| `get_user_water_intake` | Get water intake | `date` |
| `get_user_goals` | Get nutrition goals | - |
| `get_user_settings` | Get user preferences | - |
| `search_products` | Search food database | `query` |
| `get_product` | Get detailed product info | `id` |
| `add_user_consumed_item` | Add food to your log | `productId`, `amount`, `date`, `mealType` |
| `add_user_water_intake` | Add water intake entry (cumulative value in ml) | `date`, `water_intake` |
| `remove_user_consumed_item` | Remove food from log | `itemId` |
## Test Connection
```bash
YAZIO_USERNAME='your_email' YAZIO_PASSWORD='your_password' npx yazio-mcp
```
## ⚠️ Important Disclaimers
- **Unofficial API**: This uses a [reverse-engineered API](https://github.com/juriadams/yazio) that may break
- **Credentials**: Your Yazio credentials are only used for auth on Yazio servers
- **Use at Your Own Risk**: API changes could affect functionality
## 📋 Requirements
- Node.js 18+ (for npx)
- Valid Yazio account
- MCP-compatible client (Claude Desktop, Cursor, etc.)
# Development
1. Download the repository
2. Point to local copy in your mcp config
3. Debugging:
```
YAZIO_USERNAME=X YAZIO_PASSWORD=X npx -y @modelcontextprotocol/inspector npx <local-path>/yazio-mcp
```
---
## 📄 License
MIT License - see [LICENSE](LICENSE) file for details.
TDQS
Scored across 15 tools
Most tools target clearly distinct data types or actions, such as products, consumed items, water intake, weight, and exercises. There is some overlap among user metadata tools (get_user, get_user_settings, get_user_dietary_preferences, get_user_goals) and between daily summary and consumed/water data, but descriptions generally clarify the boundaries.
The tool names consistently use snake_case verb_noun patterns, with predictable get_user_*, add_user_*, and remove_user_* forms. Exceptions like search_products and get_product still follow the same broad convention.
The set has 15 tools, which is within a reasonable range for a nutrition/fitness data server with multiple resource types. Each tool maps to a distinct piece of user data or a clear logging/search operation.
Core workflows are covered: searching products, viewing consumption data, logging/removing consumed items, and logging water intake. There are some gaps around mutating other tracked data, such as logging exercise or weight, and updating goals/settings, but the main nutrition-tracking lifecycle is present.