CourseProfiler is a remote MCP server that gives an AI agent 24 tools, among them analyze_activity, assess_finish_time_goal, build_runner_profile_from_strava. It answers at https://courseprofiler.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 18 October 2026, succeeded.
Race course profiling, catalog search, course submission, and personalized race plans.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
analyze_activity | Analyze 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 bou Inputs: course_file, options, source |
assess_finish_time_goal | Assess a positive elapsed goal including saved dwell using the existing nine intensity/shape combinations (5% shapes). Preserve reference-plan movement locks, stops, checkpoint windows, cutoffs and saved GAP settings. Requires current v3 co Inputs: course_artifact_id, usrprof_artifact_id, estimation_model, allow_profile_preparation, target_elapsed_seconds |
build_runner_profile_from_strava | Build a USRProf from Strava activities selected for a target course or distance. Ask the user for the target course or distance and, when an existing profile is supplied, explicitly ask whether to merge or replace. Strava credentials are ne Inputs: existing_usrprof_artifact_id, target_distance_m, course_file, resume_job_id, decision, existing_profile_strategy |
compare_execution | Compare plan and execution v3 CRSProf artifacts with the full browser canonical comparison pipeline. Association defaults to 60 metres; override stop_association_distance_m only when requested. This does not redetect stops: use analyze_acti Inputs: plan_artifact_id, stop_association_distance_m, execution_artifact_id |
compare_pacing_strategies | Compare all nine existing intensity/shape combinations without an elapsed goal. split_percent defaults to 5, inclusive range 0-15. Preserve reference-plan locks, dwell, checkpoint windows, cutoffs and saved GAP settings. Requires current v3 Inputs: course_artifact_id, usrprof_artifact_id, estimation_model, allow_profile_preparation, split_percent |
create_race_plan | Primary CourseProfiler tool for creating a personalized race plan and optional PDF. Use this after obtaining both a course input and runner input. Course input may be course_file, course.source with kind=url/artifact/raw_file, or course.crs |
enrich_course_waypoints | Add structured aid stations, checkpoints, cutoffs, and canonical resources to a CRSProf artifact that lacks them. Before enriching, inspect whether the imported source already contains GPX/CRSProf waypoints; if it already contains GPX/CRSPr Inputs: waypoints, crsprof_artifact_id |
export_race_plan_pdf | Export a Hi-Fi PDF or standalone checkpoint card from an existing CRSProf artifact. The CRSProf supplies the course/profile/plan data; options are presentation-only overrides such as title, subtitle, metric/imperial unit system, format, and Inputs: options, crsprof_artifact_id |
generate_course_segments | Generate analytical course segments from an enriched CRSProf artifact after waypoint enrichment, or from a catalog CRSProf that already contains official waypoints/resources/cutoffs; then use the resulting artifact in create_race_plan for r Inputs: options, crsprof_artifact_id |
generate_runner_profile | Generate a segment-evidence USRProf runner profile artifact from uploaded runner evidence or an existing .usrprof source. Confirm profile purpose and evidence selection only if not already explicit. Do not silently use every local file. pro Inputs: import_options, sources, profile_intent |
get_artifact | Fetch artifact metadata and a private short-lived download URL by artifact_id. Inputs: artifact_id |
get_artifact_upload_requirements | Use this when an assistant needs instructions for CourseProfiler's REST artifact upload flow or needs to explain why hosted MCP cannot upload bare local paths. This is an instruction helper, not a raw-byte MCP upload tool. |
get_course_submission_requirements | Use this before submit_course when the user gives only a race name or incomplete inputs. Returns the catalog-first course submission workflow, accepted route sources, metadata, waypoint enrichment, and upload requirements. Inputs: has_waypoint_data, known_course_url, race_name |
get_job | Poll a CourseProfiler async job by job_id. Inputs: job_id |
get_race_plan_requirements | Use this before create_race_plan when the user gives only a race name or incomplete inputs. Returns the required course and runner inputs and the next steps an assistant should take, including catalog matches when available. Inputs: known_course_url, race_name, has_runner_profile |
get_runner_profile_requirements | Use this when runner input is missing or unclear. Explains how to obtain or generate runner input, what USRProf/evidence files should contain, whether GPX/FIT activities are enough, and how hosted MCP clients should upload artifacts. |
import_course | Import a fetchable official GPX/FIT/CRSProf URL, official ZIP containing exactly one GPX, uploaded source_file artifact, raw JSON payload, or inline/proxied course_file into a CRSProf artifact. Third-party route hosts such as Wikiloc may re Inputs: course_file, options, source |
import_profile_attachment | Store an attached USRProf or CRSProf unchanged as a private source_file artifact (maximum 25 MiB). Prefer this for ChatGPT attachments when file handoff is available; do not ask the user to copy artifact IDs. Obtain explicit permission to s Inputs: file, upload_authorized, profile_type |
inspect_analysis | Read an existing v3 CRSProf artifact without reanalysis or downloading source points. Query segments, splits, climbs, stops, range, or quality. Pages default to 20 rows (maximum 100); follow next_offset and total_matches. Distances are metr Inputs: duration_metric, offset, artifact_id, sort, min_duration_seconds, from_m |
inspect_runner_profile | Read an existing USRProf or uploaded USRProf source artifact without reconstruction, scope replacement or model activation. For chat attachments without artifact IDs, first use import_profile_attachment with explicit upload permission if ho Inputs: query, limit, usrprof_artifact_id, offset, course_artifact_id |
search_race_catalog | Search CourseProfiler's race catalog by race/course name and return direct CRSProf URLs that can be used as course sources. Inputs: query, limit |
submit_course | Submit an official/trusted course for CourseProfiler catalog review. This is the only MCP tool that creates a catalog-review submission; import_course, enrich_course_waypoints, and generate_course_segments only create temporary artifacts. A |
validate_course_profile | Validate a CRSProf artifact or inline CRSProf JSON before race planning or catalog submission. This does not mutate artifacts or submit courses. Inputs: crsprof, crsprof_artifact_id |
validate_runner_profile | Validate a USRProf artifact or inline USRProf JSON before creating personalized race plans. This does not mutate artifacts or generate a new profile. Inputs: usrprof, usrprof_artifact_id |
Every block below points at https://courseprofiler.com/mcp. Pick your client and copy.
claude mcp add --transport http courseprofiler https://courseprofiler.com/mcp
{
"mcpServers": {
"courseprofiler": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://courseprofiler.com/mcp"]
}
}
}{
"mcpServers": {
"courseprofiler": {
"url": "https://courseprofiler.com/mcp"
}
}
}{
"servers": {
"courseprofiler": {
"type": "http",
"url": "https://courseprofiler.com/mcp"
}
}
}{
"context_servers": {
"courseprofiler": {
"url": "https://courseprofiler.com/mcp"
}
}
}{
"mcpServers": {
"courseprofiler": {
"serverUrl": "https://courseprofiler.com/mcp"
}
}
}{
"mcpServers": {
"courseprofiler": {
"url": "https://courseprofiler.com/mcp"
}
}
}name: CourseProfiler
version: 0.0.1
schema: v1
mcpServers:
- name: CourseProfiler
type: streamable-http
url: https://courseprofiler.com/mcp{
"mcpServers": {
"courseprofiler": {
"httpUrl": "https://courseprofiler.com/mcp"
}
}
}{
"mcpServers": {
"courseprofiler": {
"type": "http",
"url": "https://courseprofiler.com/mcp"
}
}
}{
"mcpServers": {
"courseprofiler": {
"url": "https://courseprofiler.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fcourseprofiler.com%2Fmcp&type=streamable_http&id=courseprofiler&name=CourseProfiler
It answered our last check on 18 October 2026 in 151 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by courseprofiler.com and served from courseprofiler.com, the vendor's own domain: https://courseprofiler.com/mcp.
24, as returned by the server's own tools/list on 10 September 2026: analyze_activity, assess_finish_time_goal, build_runner_profile_from_strava, compare_execution, compare_pacing_strategies, create_race_plan, enrich_course_waypoints, export_race_plan_pdf, and 16 more.
It answered our last check on 18 October 2026 in 151 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://courseprofiler.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.courseprofiler. Endpoint host: courseprofiler.com. ARD identifier: urn:air:com.courseprofiler:mcp:courseprofiler.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.