nutrients-mcp
# nutrients-mcp
Give your AI assistant the ability to analyze food images and look up nutrition data for any food — calories, macros, vitamins, minerals, allergens, and dietary flags in under 1 second — powered by [TastyAPI](https://tastyapi.com). Much faster and more accurate than Gemini and GPT-4 Vision (4-10 seconds).
## Requirements
- Node.js 18+
- A TastyAPI API key — [get one at tastyapi.com/pricing](https://tastyapi.com/pricing)
## Quick Start
### Claude Code
```bash
claude mcp add nutrients -- npx -y nutrients-mcp
```
Then set your API key in the server's environment config:
```
TASTYAPI_KEY=YOUR_API_KEY
```
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"nutrients": {
"command": "npx",
"args": ["-y", "nutrients-mcp"],
"env": { "TASTYAPI_KEY": "YOUR_API_KEY" }
}
}
}
```
### Cursor / Windsurf
Add to your `mcp.json`:
```json
{
"mcpServers": {
"nutrients": {
"command": "npx",
"args": ["-y", "nutrients-mcp"],
"env": { "TASTYAPI_KEY": "YOUR_API_KEY" }
}
}
}
```
## Tools
### `analyze_food_image`
Fetches a food image from a public URL and returns a full nutritional breakdown.
| Parameter | Type | Required | Description |
|-------------|--------|----------|---------------------------------------|
| `image_url` | string | yes | Public URL of a food image to analyze |
**Example prompt:**
> "What are the macros in this meal? https://example.com/pasta.jpg"
**Example output:**
```json
{
"food_name": "Pasta Bolognese",
"calories": 520,
"macros": {
"protein_g": 24,
"carbohydrates_g": 68,
"fat_g": 16,
"fiber_g": 4
},
"vitamins": { "vitamin_c_mg": 8, "vitamin_b12_mcg": 1.4 },
"minerals": { "iron_mg": 3.2, "calcium_mg": 60 },
"allergens": ["gluten", "dairy"],
"dietary": { "vegan": false, "vegetarian": false, "gluten_free": false }
}
```
---
### `analyze_food`
Returns a full nutritional breakdown for a food item by name or description. No image required.
| Parameter | Type | Required | Description |
|-------------|--------|----------|---------------------------------------------------------------|
| `food_name` | string | yes | Name or description of the food (e.g. `"oatmeal with banana, 1 cup"`) |
**Example prompt:**
> "How many calories are in a large avocado?"
**Example output:**
```json
{
"food_name": "Large Avocado",
"calories": 322,
"macros": {
"protein_g": 4,
"carbohydrates_g": 17,
"fat_g": 29,
"fiber_g": 13
},
"vitamins": { "vitamin_k_mcg": 42, "folate_mcg": 163 },
"minerals": { "potassium_mg": 975, "magnesium_mg": 58 },
"allergens": [],
"dietary": { "vegan": true, "vegetarian": true, "gluten_free": true }
}
```
## Pricing
- **$0.015 per request** + $5/month base fee (usage-based)
- Or choose a flat-rate plan: Monthly ($29/mo · 5k calls) or Professional ($69/mo · 15k calls)
See [tastyapi.com/pricing](https://tastyapi.com/pricing) for full details.
## License
MIT — © EB Tech LLC
TDQS
Scored across 2 tools
Both tools analyze food and return similar nutritional data, but they are clearly distinguished by input type: one requires an image URL and the other a text name/description. The descriptions make this distinction explicit, so an agent should be able to select the correct tool without confusion.
The tools follow a consistent verb_noun pattern: 'analyze_food' and 'analyze_food_image'. The naming is predictable and clearly indicates a shared core function with a specific modifier for the image variant.
With only two tools, the server feels thin for the domain of nutritional analysis. While both tools are useful, the minimal count limits the server's overall utility and makes it borderline appropriate for its stated purpose.
The two tools cover the two primary input methods for analyzing a food item: image and text description. However, there are minor gaps, such as no batch analysis or retrieval of nutritional data by food ID, but the core workflow of analyzing a single food item is fully supported.