Skip to main content
Glama

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.

Related MCP server: fitMCP

Tools

Workout Tools

  • log_workout - Log a complete workout with exercises and sets

  • get_workouts - Query workouts with filters (date range, type, tag)

  • get_last_workout - Get most recent workout by type or tag

  • get_exercise_history - Get history for a specific exercise

Nutrition Tools

  • upsert_nutrition_day - Create/update a nutrition day

  • upsert_meal - Create/update a meal within a day

  • add_or_update_meal_item - Add/update food item (use with OpenNutrition MCP)

  • get_nutrition_day - Get complete day with meals, items, and totals

  • get_nutrition_days_summary - Get summaries for a date range

  • delete_meal_item, delete_meal, delete_nutrition_day - Delete operations

Body Metrics Tools

  • log_body_metrics - Log weight and skinfolds

  • get_body_metrics - Get body metrics with skinfolds

  • 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

  1. AI uses OpenNutrition MCP to search for foods (search-food-by-name, get-food-by-id)

  2. AI computes macros for the desired serving size

  3. AI calls add_or_update_meal_item with 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 lbs

  • distance_m / distance_yards: Distance for running/rowing

  • duration_s: Duration in seconds

  • side: "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 sets

  • set_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

Install Server
F
license - not found
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Local-first nutrition tracker MCP server for Hermes, enabling food, alias, recipe, and meal log management with SQLite persistence.
  • F
    license
    Not graded
    quality
    B
    maintenance
    A multi-platform fitness MCP server that syncs data from Garmin, Strava, Google Fit, and Suunto into a local DuckDB database and provides analytics tools via MCP.
    1
  • F
    license
    A
    quality
    B
    maintenance
    Personal workout coach MCP server that logs exercises in natural language, tracks progress with SQLite, and provides coaching signals like estimated 1RM and volume trends.
    6
  • F
    license
    Not graded
    quality
    C
    maintenance
    A personal health and fitness MCP server that provides tools for managing profile data, goals, body measurements, nutrition, workouts, sleep, check-ins, life events, analytics, and coach memories via Supabase Postgres.
    1

View all related MCP servers

Related MCP Connectors

  • MCP server for Withings health data — sleep, activity, heart, and body metrics.

  • Personal nutrition tracking — log meals, track macros, review history, import from another app.

  • Wger MCP — wraps wger Workout Manager REST API (free, no auth for read)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohnZolton/MCP-logger'

If you have feedback or need assistance with the MCP directory API, please join our Discord server