Calories In; Calories Out: A simple meal tracking MCP server for Claude Desktop that logs meals with nutrition data to Google Sheets.
- Log meals with calories and optional macros (protein, carbs, fat)
- Retrieve meals with flexible filtering by date range and meal type
- Classify meals as breakfast, lunch, dinner, supper, or snack
- Data stored in Google Sheets for easy viewing and analysis
- Built with FastMCP for minimal code
uv venv
source .venv/bin/activate # On Windows use `venv\Scripts\activate`
uv sync- Go to Google Cloud Console
- Create a new project
- Enable Google Sheets API
- Create a service account and download the credentials JSON
- Create a Google Sheet and share it with the service account email
cp .env.example .env
# Edit .env with your spreadsheet ID{
"mcpServers": {
"cico": {
"command": "uv",
"args": ["run", "python", "cico_server.py"],
"cwd": "/path/to/cico-mcp-server"
}
}
}Ask Claude to log your meals:
- "I just had breakfast: 2 eggs and toast, about 320 calories"
- "Log my lunch: chicken salad, 450 calories, 30g protein"
- "Had a snack - apple with peanut butter"
Ask Claude to show your meal history:
- "Show me all my meals from this week"
- "What did I eat yesterday?"
- "Show me all my breakfast meals from the last 7 days"
- "Get my meals from 1 Jan 2025 to now"
- "Show me all the snacks I've eaten"
Your meals will appear in the Google Sheet with timestamp, meal type, description, and nutrition data.
The Google Sheet stores meal data with the following columns:
| Timestamp | Meal Type | Description | Calories | Protein | Carbs | Fat | Details | Price |
|---|---|---|---|---|---|---|---|---|
| 2025-01-07T08:30:15 | Breakfast | 2 eggs with toast | 320 | 18 | 30 | 14 | Scrambled eggs with whole wheat toast | $4.50 |
Log a new meal with nutrition information:
- description: Brief name of the meal
- details: Detailed ingredients and preparation info
- calories: Total calories (required)
- meal_type: breakfast, lunch, dinner, supper, or snack
- protein/carbs/fat: Optional macronutrients in grams
- price: Optional price with currency symbol
- timestamp: Optional timestamp for retroactive logging
Retrieve meals with optional filtering:
- start_date: Filter meals from this date onwards (YYYY-MM-DD)
- end_date: Filter meals up to this date (YYYY-MM-DD)
- meal_type: Filter by specific meal type