{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "app.movemate/movemate",
  "title": "MoveMate: Gym Workout Tracker",
  "description": "Gym workout tracker: review your training, PRs and progression, and schedule workouts in the app.",
  "version": "1.3.0",
  "websiteUrl": "https://movemate.app/ai",
  "icons": [
    {
      "src": "https://movemate.app/web-app-manifest-512x512.png",
      "mimeType": "image/png",
      "sizes": [
        "512x512"
      ]
    },
    {
      "src": "https://movemate.app/favicon.svg",
      "mimeType": "image/svg+xml",
      "sizes": [
        "any"
      ]
    }
  ],
  "serverUrl": "https://api.movemate.app/mcp",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://api.movemate.app/mcp"
    }
  ],
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2"
    ],
    "oauth2": {
      "authorizationUrl": "https://api.movemate.app/oauth/authorize",
      "tokenUrl": "https://api.movemate.app/oauth/token",
      "registrationUrl": "https://api.movemate.app/oauth/register",
      "scopes": [
        "profile:read",
        "stats:read",
        "library:read",
        "workouts:write"
      ],
      "pkce": "S256",
      "protectedResourceMetadata": "https://api.movemate.app/.well-known/oauth-protected-resource",
      "authorizationServerMetadata": "https://api.movemate.app/.well-known/oauth-authorization-server"
    }
  },
  "documentationUrl": "https://movemate.app/connect",
  "openapiUrl": "https://movemate.app/openapi.json",
  "llmsTxtUrl": "https://movemate.app/llms.txt",
  "directories": {
    "chatgpt": "https://chatgpt.com/plugins/plugin_asdk_app_6a7b250ad83c8191a519b763350af4e9",
    "claude": "https://claude.ai/directory/movemate-gym-workout-tracker",
    "mcpRegistry": "https://registry.modelcontextprotocol.io/v0/servers?search=app.movemate/movemate",
    "smithery": "https://smithery.ai/servers/movemate/movemate"
  },
  "mcpApps": {
    "enabled": true,
    "resources": [
      {
        "uri": "ui://widget/v2/workout-card.html",
        "name": "Workout card",
        "description": "A workout with its exercises, sets and an Open in MoveMate button.",
        "mimeType": "text/html;profile=mcp-app"
      },
      {
        "uri": "ui://widget/v2/progression-chart.html",
        "name": "Progression chart",
        "description": "One exercise over time: estimated 1RM, best sets and trend.",
        "mimeType": "text/html;profile=mcp-app"
      },
      {
        "uri": "ui://widget/v2/stats-summary.html",
        "name": "Training stats",
        "description": "Workouts, volume, duration, streak and sets per muscle group for a period.",
        "mimeType": "text/html;profile=mcp-app"
      },
      {
        "uri": "ui://widget/v2/exercise-picker.html",
        "name": "Exercises",
        "description": "Exercises from the MoveMate library, tagged with the muscles they work.",
        "mimeType": "text/html;profile=mcp-app"
      },
      {
        "uri": "ui://widget/v2/session-detail.html",
        "name": "Session detail",
        "description": "A finished workout set by set, plan vs. actual.",
        "mimeType": "text/html;profile=mcp-app"
      },
      {
        "uri": "ui://widget/v2/workout-picker.html",
        "name": "Workouts",
        "description": "Saved and library workouts to pick from.",
        "mimeType": "text/html;profile=mcp-app"
      }
    ]
  },
  "tools": [
    {
      "name": "get_profile",
      "description": "Display name, timezone, and training frequency — lightweight context used implicitly.",
      "scope": "profile:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_body_profile",
      "description": "Height, weight, age, gender, fitness level, activity level, goals, and equipment.",
      "scope": "profile:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "search_exercises",
      "description": "MoveMate’s exercise library, including your own custom exercises.",
      "scope": "library:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "list_workouts",
      "description": "MoveMate’s workout catalog, including your own custom workouts.",
      "scope": "library:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_workout",
      "description": "A specific MoveMate workout by ID, displayed as a workout card.",
      "scope": "library:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_workout_details",
      "description": "The full contents of a workout — every exercise, set, target and superset — read before any change, so nothing gets lost.",
      "scope": "library:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_training_stats",
      "description": "Totals, volume, weekday frequency, and streak over a rolling period.",
      "scope": "stats:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_recent_workouts",
      "description": "Recent completed workouts set by set — including plan vs. actual, skipped sets, reps, weight, duration, and distance.",
      "scope": "stats:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_exercise_progression",
      "description": "Per-exercise progress over time — bodyweight work by total reps, with weighted and unweighted sessions kept in separate series.",
      "scope": "stats:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_personal_records",
      "description": "Your best set per exercise, by estimated one-rep max.",
      "scope": "stats:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "list_planned_workouts",
      "description": "What’s coming up, so the model can avoid double-booking.",
      "scope": "stats:read",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "create_custom_exercise",
      "description": "Adds a new exercise to your own library when the built-in one doesn't have what you're after — matches muscle group and equipment by name automatically.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "create_custom_workout",
      "description": "Saves a new workout to My workouts without putting it on the calendar — always asks before saving.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "update_custom_workout",
      "description": "Edits one of your saved workouts — add or swap an exercise, rename it. Sessions scheduled from it change too.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "create_planned_workout",
      "description": "Schedules a workout on a chosen date — a new one, one of your saved workouts, or one from the MoveMate library — always asks before scheduling.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "update_planned_workout",
      "description": "Reschedules a planned workout, renames it, or replaces its exercise list — only for workouts that haven't happened yet.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "delete_planned_workout",
      "description": "Cancels a planned workout and takes it off your schedule — your saved workout stays in My workouts.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "log_completed_workouts",
      "description": "Adds workouts you've already done to your history — from the last two weeks, or older ones from your notes if you're new to MoveMate. Not a live tracker: set-by-set logging stays in the app.",
      "scope": "workouts:write",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      }
    }
  ]
}