MCP Logger
A personal fitness tracking server that enables logging and querying workouts, nutrition, and body metrics through a local SQLite database. Integrates with OpenNutrition MCP for food logging and supports exercise history tracking for workout progression.
README
MCP Logger
A Python/uv + FastMCP server for logging workouts, nutrition, and body metrics. Single-user local SQLite database with stdio MCP interface.
- this was entirely vibe coded
Features
- Workouts: Flexible
workout -> exercises[] -> sets[]structure with tags, notes, RPE/RIR, distances, unilateral sides, etc. - Nutrition: Cronometer/MyFitnessPal-style logging with meals and OpenNutrition-backed food snapshots.
- Body Metrics: Weight and customizable skinfold tracking.
- Search: Cross-domain search across all data.
Tools
Workout Tools
log_workout- Log a complete workout with exercises and setsget_workouts- Query workouts with filters (date range, type, tag)get_last_workout- Get most recent workout by type or tagget_exercise_history- Get history for a specific exercise
Nutrition Tools
upsert_nutrition_day- Create/update a nutrition dayupsert_meal- Create/update a meal within a dayadd_or_update_meal_item- Add/update food item (use with OpenNutrition MCP)get_nutrition_day- Get complete day with meals, items, and totalsget_nutrition_days_summary- Get summaries for a date rangedelete_meal_item,delete_meal,delete_nutrition_day- Delete operations
Body Metrics Tools
log_body_metrics- Log weight and skinfoldsget_body_metrics- Get body metrics with skinfolds
Search
search_logs- Search across workouts, nutrition, and body data
Installation & Running
# Install dependencies
uv pip install -e .
# Run the MCP server (stdio interface)
uv run python -m src.main
MCP Config Example
Add to your MCP configuration:
{
"mcpServers": {
"logger": {
"command": "uv",
"args": ["run", "python", "-m", "src.main"],
"cwd": "/path/to/mcp-logger"
}
}
}
Nutrition Workflow with OpenNutrition MCP
- AI uses OpenNutrition MCP to search for foods (
search-food-by-name,get-food-by-id) - AI computes macros for the desired serving size
- AI calls
add_or_update_meal_itemwith food_id and calculated macros
Workout Planning
The AI can call get_last_workout or get_exercise_history to retrieve past sessions, then generate suggested workouts. Progression logic lives in the client AI, not this server.
Database
Data is stored in mcp_logger.db (SQLite) in the project root.
Example Usage
Log a Workout with Exercises
{
"date_time": "2026-01-06T18:30:00",
"workout_type": "Strength",
"tags": ["olympic", "speed"],
"notes": "Great session",
"exercises": [
{
"name": "Power Clean",
"category": "Olympic Lift",
"notes": "From blocks",
"sets": [
{ "reps": 3, "weight_lbs": 185 },
{ "reps": 2, "weight_lbs": 195 },
{ "reps": 1, "weight_lbs": 205 }
]
},
{
"name": "Sprint Starts",
"category": "Sprint",
"notes": "3 point stance",
"sets": [{ "reps": 6, "distance_yards": 20 }]
},
{
"name": "Single Leg Box Jumps",
"category": "Plyometric",
"notes": "5 sets of 2 each leg",
"sets": [{ "reps": 10, "side": "both" }]
}
]
}
Set Fields
Each set can include:
reps: Number of repetitions (int or float)weight_kg/weight_lbs: Weight in kg or lbsdistance_m/distance_yards: Distance for running/rowingduration_s: Duration in secondsside: "left", "right", or "both" (for unilateral exercises)rpe: Rate of Perceived Exertion (1-10)rir: Reps In Reserve (0-5)is_warmup: Boolean for warmup setsset_index: Manual set ordering (defaults to order inserted)
Log Body Metrics
{
"date": "2026-01-06",
"body_weight_kg": 85.5,
"skinfolds": {
"chest": 12,
"abdomen": 18,
"thigh": 15,
"tricep": 10,
"subscapular": 14,
"suprailiac": 16,
"midaxillary": 11
},
"notes": "Morning measurement"
}
MCP-logger
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.