{
  "schemaVersion": "1.0",
  "item": {
    "slug": "transition-mcp",
    "name": "Transition MCP",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nftechie/transition-mcp",
    "canonicalUrl": "https://clawhub.ai/nftechie/transition-mcp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/transition-mcp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=transition-mcp",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "examples/curl-examples.sh",
      "mcp/client.go",
      "mcp/main.go",
      "mcp/resources.go"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/transition-mcp"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/transition-mcp",
    "agentPageUrl": "https://openagent3.xyz/skills/transition-mcp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/transition-mcp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/transition-mcp/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Multisport Coach API",
        "body": "AI coach that creates personalized training plans for runners, cyclists, swimmers, and triathletes. This skill provides access to workout plans, performance metrics, AI coaching, and plan adaptation. Powered by Transition."
      },
      {
        "title": "Authentication",
        "body": "Authenticated endpoints require the TRANSITION_API_KEY environment variable. Pass it as the X-API-Key header on every request. If it's not set, tell the user to generate one in the Transition app under Settings > API Keys.\n\nBase URL: https://api.transition.fun"
      },
      {
        "title": "Workout of the Day",
        "body": "Generate a random structured workout. Each request returns a different workout.\n\ncurl \"https://api.transition.fun/api/v1/wod?sport=run&duration=45\"\n\nParameters:\n\nsport — run, bike, swim, or strength (default: run)\nduration — minutes, 10-300 (default: 45)\n\nResponse:\n\n{\n  \"date\": \"2026-02-09\",\n  \"sport\": \"run\",\n  \"name\": \"Tempo Builder\",\n  \"description\": \"Build aerobic endurance with sustained tempo efforts\",\n  \"duration_minutes\": 45,\n  \"intensity\": \"moderate\",\n  \"segments\": [\n    {\"name\": \"Warm-up\", \"duration_minutes\": 9, \"intensity\": \"easy\", \"description\": \"Easy jog to warm up\"},\n    {\"name\": \"Tempo\", \"duration_minutes\": 27, \"intensity\": \"moderate\", \"description\": \"Steady tempo at comfortably hard pace\"},\n    {\"name\": \"Cool-down\", \"duration_minutes\": 9, \"intensity\": \"easy\", \"description\": \"Easy jog to cool down\"}\n  ]\n}"
      },
      {
        "title": "Get Workouts",
        "body": "Retrieve scheduled workouts for a date range.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts?start=2026-02-09&end=2026-02-15\"\n\nParameters:\n\nstart — Start date (YYYY-MM-DD, required)\nend — End date (YYYY-MM-DD, required)\nMaximum range between start and end is 90 days."
      },
      {
        "title": "Get Workout Details",
        "body": "curl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123\""
      },
      {
        "title": "Generate Workouts",
        "body": "Trigger AI workout generation for the user's training plan.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.transition.fun/api/v1/workouts/generate\""
      },
      {
        "title": "Adapt Workouts",
        "body": "Adapt the training plan based on recent performance or schedule changes.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"reason\": \"feeling fatigued after race weekend\"}' \\\n  \"https://api.transition.fun/api/v1/workouts/adapt\""
      },
      {
        "title": "Check Generation Status",
        "body": "Poll whether workout generation/adaptation is complete.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/status\""
      },
      {
        "title": "Performance Management Chart (PMC)",
        "body": "Get CTL (fitness), ATL (fatigue), and TSB (form) data.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/pmc\""
      },
      {
        "title": "Performance Stats",
        "body": "Get FTP, threshold paces, heart rate zones, and other metrics.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/stats\""
      },
      {
        "title": "AI Coach Chat",
        "body": "Chat with the AI endurance coach. Returns a streaming response (SSE).\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"message\": \"Should I do intervals today or rest?\"}' \\\n  \"https://api.transition.fun/api/v1/coach/chat\""
      },
      {
        "title": "Chat History",
        "body": "curl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/coach/history\""
      },
      {
        "title": "Athlete Profile",
        "body": "curl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/profile\""
      },
      {
        "title": "Push Workout to Garmin",
        "body": "curl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123/push-garmin\""
      },
      {
        "title": "Rate Limits",
        "body": "TierRead EndpointsAI EndpointsFree100/day3/dayPaid10,000/day100/day\n\nRead endpoints: workouts, metrics, profile, history\nAI endpoints: coach chat, adapt, generate\n\nRate limit errors return HTTP 429 with a message indicating which limit was exceeded."
      },
      {
        "title": "Tips for Agents",
        "body": "Check fatigue before recommending hard workouts. Call GET /api/v1/performance/pmc and look at TSB (Training Stress Balance). If TSB is below -20, the athlete is likely fatigued — suggest easier workouts or rest.\n\n\nUse adapt sparingly. Plan adaptation regenerates the entire training plan using AI. Only trigger it when the athlete explicitly asks for changes or when there's a significant reason (injury, schedule change, race date change).\n\n\nUse the free WOD endpoint for casual users. If someone just wants a quick workout without signing up, use GET /api/v1/wod. No API key needed.\n\n\nWorkout generation is async. After calling POST /workouts/generate or POST /workouts/adapt, poll GET /workouts/status until it returns ready, then fetch the workouts.\n\n\nDate format is always YYYY-MM-DD for all date parameters."
      }
    ],
    "body": "Multisport Coach API\n\nAI coach that creates personalized training plans for runners, cyclists, swimmers, and triathletes. This skill provides access to workout plans, performance metrics, AI coaching, and plan adaptation. Powered by Transition.\n\nAuthentication\n\nAuthenticated endpoints require the TRANSITION_API_KEY environment variable. Pass it as the X-API-Key header on every request. If it's not set, tell the user to generate one in the Transition app under Settings > API Keys.\n\nBase URL: https://api.transition.fun\n\nFree Endpoint (No Auth Required)\nWorkout of the Day\n\nGenerate a random structured workout. Each request returns a different workout.\n\ncurl \"https://api.transition.fun/api/v1/wod?sport=run&duration=45\"\n\n\nParameters:\n\nsport — run, bike, swim, or strength (default: run)\nduration — minutes, 10-300 (default: 45)\n\nResponse:\n\n{\n  \"date\": \"2026-02-09\",\n  \"sport\": \"run\",\n  \"name\": \"Tempo Builder\",\n  \"description\": \"Build aerobic endurance with sustained tempo efforts\",\n  \"duration_minutes\": 45,\n  \"intensity\": \"moderate\",\n  \"segments\": [\n    {\"name\": \"Warm-up\", \"duration_minutes\": 9, \"intensity\": \"easy\", \"description\": \"Easy jog to warm up\"},\n    {\"name\": \"Tempo\", \"duration_minutes\": 27, \"intensity\": \"moderate\", \"description\": \"Steady tempo at comfortably hard pace\"},\n    {\"name\": \"Cool-down\", \"duration_minutes\": 9, \"intensity\": \"easy\", \"description\": \"Easy jog to cool down\"}\n  ]\n}\n\nAuthenticated Endpoints\nGet Workouts\n\nRetrieve scheduled workouts for a date range.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts?start=2026-02-09&end=2026-02-15\"\n\n\nParameters:\n\nstart — Start date (YYYY-MM-DD, required)\nend — End date (YYYY-MM-DD, required)\nMaximum range between start and end is 90 days.\nGet Workout Details\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123\"\n\nGenerate Workouts\n\nTrigger AI workout generation for the user's training plan.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.transition.fun/api/v1/workouts/generate\"\n\nAdapt Workouts\n\nAdapt the training plan based on recent performance or schedule changes.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"reason\": \"feeling fatigued after race weekend\"}' \\\n  \"https://api.transition.fun/api/v1/workouts/adapt\"\n\nCheck Generation Status\n\nPoll whether workout generation/adaptation is complete.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/status\"\n\nPerformance Management Chart (PMC)\n\nGet CTL (fitness), ATL (fatigue), and TSB (form) data.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/pmc\"\n\nPerformance Stats\n\nGet FTP, threshold paces, heart rate zones, and other metrics.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/stats\"\n\nAI Coach Chat\n\nChat with the AI endurance coach. Returns a streaming response (SSE).\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"message\": \"Should I do intervals today or rest?\"}' \\\n  \"https://api.transition.fun/api/v1/coach/chat\"\n\nChat History\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/coach/history\"\n\nAthlete Profile\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/profile\"\n\nPush Workout to Garmin\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123/push-garmin\"\n\nRate Limits\nTier\tRead Endpoints\tAI Endpoints\nFree\t100/day\t3/day\nPaid\t10,000/day\t100/day\n\nRead endpoints: workouts, metrics, profile, history AI endpoints: coach chat, adapt, generate\n\nRate limit errors return HTTP 429 with a message indicating which limit was exceeded.\n\nTips for Agents\n\nCheck fatigue before recommending hard workouts. Call GET /api/v1/performance/pmc and look at TSB (Training Stress Balance). If TSB is below -20, the athlete is likely fatigued — suggest easier workouts or rest.\n\nUse adapt sparingly. Plan adaptation regenerates the entire training plan using AI. Only trigger it when the athlete explicitly asks for changes or when there's a significant reason (injury, schedule change, race date change).\n\nUse the free WOD endpoint for casual users. If someone just wants a quick workout without signing up, use GET /api/v1/wod. No API key needed.\n\nWorkout generation is async. After calling POST /workouts/generate or POST /workouts/adapt, poll GET /workouts/status until it returns ready, then fetch the workouts.\n\nDate format is always YYYY-MM-DD for all date parameters."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nftechie/transition-mcp",
    "publisherUrl": "https://clawhub.ai/nftechie/transition-mcp",
    "owner": "nftechie",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/transition-mcp",
    "downloadUrl": "https://openagent3.xyz/downloads/transition-mcp",
    "agentUrl": "https://openagent3.xyz/skills/transition-mcp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/transition-mcp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/transition-mcp/agent.md"
  }
}