Analyze activity or route
analyze_activityAnalyze supplied GPX/FIT directly with the browser's canonical pipeline; no catalog search or runner profile is needed. Accept inline course_file, URL, or artifact source. Existing CRSProf is preserved and summarized. Returns job plus a bounded structured summary, units, missing-data warnings and complete CRSProf artifact. Defaults: moving threshold 0.25 m/s, minimum stop 30 s, merge distance 60 m with combined-speed guard. Detected stop elapsed may include short moving portions; it is not total non-moving time. No timestamp means no invented pace/time. Hosted clients without file-byte access or direct upload connectivity should send the user to the fixed page https://courseprofiler.com/agent-upload.html. The page creates the private upload session; the user copies the returned artifact ID into chat. MCP does not create a session-specific browser link. Inspect job.status/errors; this call currently runs analysis synchronously. Optional idempotency {key, caller_token} requires the server feature enabled; API keys are optional. Persist the private caller/key before submission, use get_activity_submission to reconcile, and never switch to a fresh key to bypass an unresolved outcome.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| options | No | ||
| course_file | No | Inline GPX/FIT content or base64; use an artifact from agent-upload.html if the client cannot read bytes. | |
| idempotency | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | ||
| error | No | ||
| summary | Yes | ||
| submission | No |