Server data from the Official MCP Registry
MCP server for Cronometer nutrition tracking — food logs, diary, macros, fasting
MCP server for Cronometer nutrition tracking — food logs, diary, macros, fasting
Valid MCP server (1 strong, 4 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
4 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: CRONOMETER_USERNAME
Environment variable: CRONOMETER_PASSWORD
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-rwestergren-cronometer-api-mcp": {
"env": {
"CRONOMETER_PASSWORD": "your-cronometer-password-here",
"CRONOMETER_USERNAME": "your-cronometer-username-here"
},
"args": [
"cronometer-api-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
An MCP (Model Context Protocol) server for Cronometer nutrition tracking, built on the reverse-engineered mobile REST API.
Unlike cronometer-mcp, which takes a comprehensive GWT-RPC approach against Cronometer's web backend, this server talks to the same JSON REST API used by the Cronometer Android app -- with clean payloads and stable, versioned endpoints.
curl -LsSf https://astral.sh/uv/install.sh | sh
export CRONOMETER_USERNAME="your@email.com"
export CRONOMETER_PASSWORD="your-password"
uvx downloads and runs the server on demand -- no separate install step.
opencode.json){
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cronometer": {
"type": "local",
"command": ["uvx", "cronometer-api-mcp"],
"environment": {
"CRONOMETER_USERNAME": "{env:CRONOMETER_USERNAME}",
"CRONOMETER_PASSWORD": "{env:CRONOMETER_PASSWORD}"
},
"enabled": true
}
}
}
claude_desktop_config.json){
"mcpServers": {
"cronometer": {
"command": "uvx",
"args": ["cronometer-api-mcp"],
"env": {
"CRONOMETER_USERNAME": "your@email.com",
"CRONOMETER_PASSWORD": "your-password"
}
}
}
}
| Tool | Description |
|---|---|
get_food_log | Diary entries for a date with food names, amounts, and meal groups |
get_daily_nutrition | Daily macro and micronutrient totals |
get_nutrition_scores | Category scores (Vitamins, Minerals, etc.) with per-nutrient consumed amounts and confidence levels |
| Tool | Description |
|---|---|
search_foods | Search the Cronometer food database by name |
get_food_details | Full nutrition profile and serving sizes for a food |
| Tool | Description |
|---|---|
add_food_entry | Log a food serving to the diary |
remove_food_entry | Remove one or more diary entries |
add_custom_food | Create a custom food with specified nutrition |
copy_day | Copy all entries from the previous day |
mark_day_complete | Mark a diary day as complete or incomplete |
| Tool | Description |
|---|---|
get_macro_targets | Weekly macro schedule and saved target templates |
get_fasting_history | Fasting history within a date range |
get_fasting_stats | Aggregate fasting statistics |
All date parameters use YYYY-MM-DD format and default to today when omitted.
The server supports remote deployment with OAuth 2.1 authorization (PKCE) for use with Claude.ai and other remote MCP clients.
| Variable | Required | Description |
|---|---|---|
CRONOMETER_USERNAME | Yes | Cronometer account email |
CRONOMETER_PASSWORD | Yes | Cronometer account password |
MCP_TRANSPORT | No | Transport mode: stdio (default), sse, or streamable-http |
MCP_AUTH_TOKEN | No | Bearer token for remote auth (enables OAuth flow) |
MCP_OAUTH_CLIENT_ID | No | OAuth client ID for remote clients |
MCP_OAUTH_CLIENT_SECRET | No | OAuth client secret for remote clients |
MCP_BASE_URL | No | Public base URL for OAuth metadata endpoints |
PORT | No | Listen port for remote transports (default 8000) |
The project includes a Procfile and .python-version for direct deployment with the Heroku Python buildpack:
# Create app
dokku apps:create cronometer-api-mcp
# Set environment
dokku config:set cronometer-api-mcp \
MCP_TRANSPORT=streamable-http \
MCP_AUTH_TOKEN=$(openssl rand -hex 32) \
MCP_OAUTH_CLIENT_ID=my-client \
MCP_OAUTH_CLIENT_SECRET=$(openssl rand -hex 32) \
MCP_BASE_URL=https://your-domain.com \
CRONOMETER_USERNAME=your@email.com \
CRONOMETER_PASSWORD=your-password
# Deploy
git push dokku main
When deployed remotely with OAuth configured, connect from Claude.ai using:
https://your-domain.com/mcpMCP_OAUTH_CLIENT_IDMCP_OAUTH_CLIENT_SECRETClaude.ai will open a browser tab for authorization. Click Authorize to complete the connection.
This server communicates with mobile.cronometer.com -- the same REST API used by the Cronometer Android/Flutter app. The API was reverse-engineered through:
libapp.so (Dart AOT snapshot) from the APK to discover endpoint namesThe API uses two protocols:
POST /api/v2/*) -- JSON-body auth, used for most operations (food search, diary read/write, nutrition, fasting, macros)DELETE /api/v3/user/{id}/*) -- Header-based auth (x-crono-session), used for diary entry deletionYou can use the client directly:
from cronometer_api_mcp.client import CronometerClient
from datetime import date
client = CronometerClient()
# Search for foods
results = client.search_food("chicken breast")
# Get food details
food = client.get_food(results[0]["id"])
# Log a serving
client.add_serving(
food_id=food["id"],
measure_id=food["defaultMeasureId"],
grams=200,
)
# Get today's diary
diary = client.get_diary()
# Get nutrition scores
scores = client.get_nutrition_scores()
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally