Food Tracker MCP Server
A Model Context Protocol (MCP) server for tracking food intake and nutrition using the USDA FoodData Central database.
Features
- Search Foods: Query the USDA FoodData Central database for nutritional information
- Log Meals: Record food intake with calories, macros, and serving sizes
- Track Progress: View daily logs with totals compared to your goals
- Set Goals: Define daily targets for calories, protein, carbs, and fat
- Get Summaries: View nutrition averages over days, weeks, or months
Installation
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"food-tracker": {
"command": "npx",
"args": ["-y", "@neonwatty/food-tracker-mcp"],
"env": {
"USDA_API_KEY": "your_api_key_here"
}
}
}
}
Claude Code
claude mcp add food-tracker -e USDA_API_KEY=your_api_key -- npx -y @neonwatty/food-tracker-mcp
Or add to ~/.claude.json:
{
"mcpServers": {
"food-tracker": {
"command": "npx",
"args": ["-y", "@neonwatty/food-tracker-mcp"],
"env": {
"USDA_API_KEY": "your_api_key_here"
}
}
}
}
Requirements
USDA API Key
Get your free API key at: https://fdc.nal.usda.gov/api-key-signup/
Available Tools
search_food
Search the USDA FoodData Central database for foods.
"Search for chicken breast"
Returns nutrition information per 100g serving including calories, protein, carbs, and fat.
log_food
Log a food entry to your daily food diary.
"Log 200g of grilled salmon for lunch with 400 calories, 40g protein, 0g carbs, 22g fat"
Parameters:
food_name(required): Name of the foodserving_size(required): Amount of the servingserving_unit(required): Unit (g, oz, cup, piece, etc.)calories(required): Calories for this servingprotein_g: Protein in gramscarbs_g: Carbohydrates in gramsfat_g: Fat in gramsfiber_g: Fiber in gramsmeal: breakfast, lunch, dinner, or snackdate: Date in YYYY-MM-DD format (defaults to today)
get_daily_log
Get all food entries for a specific day with totals and goal comparison.
"What have I eaten today?"
"Show me my food log for 2025-01-15"
set_goals
Set your daily nutrition goals.
"Set my daily goal to 2000 calories with 150g protein, 200g carbs, and 65g fat"
get_summary
Get nutrition summary and averages for a date range.
"Show me my nutrition summary for this week"
"Get my monthly nutrition averages"
delete_entry
Delete a food log entry by its ID.
"Delete entry 5"
Data Storage
Food logs are stored locally in a SQLite database at ~/.food-tracker/food.db. Your data never leaves your machine.
Example Conversation
You: Search for oatmeal Claude: Found 10 foods matching "oatmeal"...
You: Log 1 cup of oatmeal for breakfast Claude: Logged: Oatmeal (1 cup) - 150 cal | P: 5g | C: 27g | F: 3g
You: What have I eaten today? Claude: Food Log for 2025-01-15...
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.