nutrition-mcp
by asachs01
README.md
# nutrition-mcp
USDA FoodData Central MCP server for nutrition lookup, meal logging, and daily macro tracking.
## Setup
1. Get a free API key at https://fdc.nal.usda.gov/api-key-signup
2. Set `USDA_API_KEY` environment variable (or it falls back to `DEMO_KEY`)
```bash
cp .env.example .env
# Edit .env with your key
```
## Usage
```bash
node src/server.js # stdio MCP server
```
## Tools
### `nutrition`
| Action | Description | Key Params |
|--------|-------------|------------|
| `search` | Search foods by name | `query`, `dataType`, `pageSize` |
| `get` | Full nutrition details | `fdcId` |
| `compare` | Side-by-side macro comparison | `fdcIds` (array) |
### `meal_log`
| Action | Description | Key Params |
|--------|-------------|------------|
| `log` | Log a food eaten | `fdcId`, `servings`, `mealType`, `date` |
| `list` | List entries for a date | `date`, `mealType` |
| `delete` | Remove an entry | `entryId` |
| `daily_summary` | Macro totals for a day | `date` |
| `weekly_summary` | Weekly averages | `weekOf` |
### `targets`
| Action | Description | Key Params |
|--------|-------------|------------|
| `set` | Set daily macro targets | `calories`, `protein`, `carbs`, `fat`, `fiber` |
| `get` | View current targets | — |
| `progress` | Progress vs targets | `date` |
## Architecture
```
src/
server.js — MCP stdio server
usda-client.js — USDA API client with 24h cache
meal-log.js — Local meal log storage (~/.nutrition-mcp/logs/)
targets.js — Macro targets storage (~/.nutrition-mcp/targets.json)
tools/
nutrition.js — nutrition tool handler
meal-log.js — meal_log tool handler
targets.js — targets tool handler
test/
server.test.js — Unit tests
```
## Testing
```bash
npm test
```
## License
MIT © Aaron Sachs
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues