com.courseprofiler/courseprofiler

MCPcommunitylive
v0.1.0com.courseprofilerUnknownUpdated 2mo ago

Race course profiling, catalog search, course submission, and personalized race plans.

Endpoint healthlive
checked 9 days ago · 1577ms
100% of the last 5 checks reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
2mo agoLast update
Package
Authorcom.courseprofiler
LicenseUnknown
Version0.1.0
Sourcemcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/30
→ Publisher: this listing has no repository on file, so `forge publish` cannot verify ownership automatically. Use "Claim this listing" above — Forge reviews these by hand.
—Domain verification+0/10
→ Not currently available for this listing type — the domain-verification check only runs for npm-backed packages today, so this row cannot be earned here yet regardless of what's hosted at the domain.
✓Prompt-injection scan · clean+30/30
✓Obfuscation / exfil scan · clean+20/20
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
DependenciesNot audited
Tool surface24 tools · 1 privileged
Security scan✓ Cleanvlive · 19d agoHow well does this scan work?
EvalsNone
IndexedJul 15, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

24 tools · 1 privileged
Observed live from the vendor's endpoint19d ago

Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.

  • https://courseprofiler.com/mcp24 tools · 1564ms
create_race_planPrimary 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.crsprof_artifact_id. Do not use raw_json or reconstruct/synthe…

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.crsprof_artifact_id. Do not use raw_json or reconstruct/synthe…

ParameterTypeDescription
course_fileobjectUse this only when the MCP client provides an inline/proxied GPX, FIT, CRSProf, or ZIP-with-one-GPX file object. Provide content for text GPX/XML/JSON/CRSProf,…
courseobject—
runnerobject—
race_namestringRace/course name to resolve through the CourseProfiler catalog when no course source is provided, e.g. Val d'Aran PDA.
estimateobject—
runner_profile_fileobjectUse this only when the MCP client provides an inline/proxied USRProf runner profile file object. Provide content for text USRProf/JSON or base64 for binary. Pe…
pdfobject—
search_race_catalogSearch CourseProfiler's race catalog by race/course name and return direct CRSProf URLs that can be used as course sources.

Search CourseProfiler's race catalog by race/course name and return direct CRSProf URLs that can be used as course sources.

ParameterTypeDescription
query*stringRace or course name to search, e.g. Val d'Aran PDA.
limitintegerMaximum matches to return, default 5.
import_courseImport 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 return 403 to server fetches; when a URL is blocked, ask the…

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 return 403 to server fetches; when a URL is blocked, ask the…

ParameterTypeDescription
sourceobject—
optionsobject—
course_fileobjectInline/proxied GPX, FIT, CRSProf, or ZIP-with-one-GPX file object to import into CRSProf. Use content for text GPX/XML/JSON/CRSProf, base64 for FIT/ZIP/binary,…
enrich_course_waypointsAdd 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/CRSProf waypoints, avoid duplicate Start/Finish/aid stations and…

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/CRSProf waypoints, avoid duplicate Start/Finish/aid stations and…

ParameterTypeDescription
crsprof_artifact_id*stringCRSProf artifact ID returned by import_course or get_artifact.
waypoints*object—
generate_course_segmentsGenerate 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 race planning, or call submit_course if and only if the user…

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 race planning, or call submit_course if and only if the user…

ParameterTypeDescription
crsprof_artifact_id*stringEnriched CRSProf artifact ID returned by enrich_course_waypoints.
optionsobject—
generate_runner_profileGenerate 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. profile_intent is advisory: the server does not filter sources…

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. profile_intent is advisory: the server does not filter sources…

ParameterTypeDescription
sources*arrayRunner evidence/profile sources. Use uploaded source_file artifact IDs from POST /api/artifact-uploads with purpose runner_evidence for GPX/FIT/CRSProf activit…
import_optionsobject—
profile_intentobjectprofile_intent is advisory context for the agent. The server does not filter or select evidence from it; submit only user-approved sources.
submit_courseSubmit 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 final CRSProf artifact is not a submission. If there is no…

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 final CRSProf artifact is not a submission. If there is no…

ParameterTypeDescription
course*object—
metadataobject—
race_namestringRace/course name to submit. Assistants should search the catalog and official web sources before calling submit_course, then populate metadata.event from offic…
submitterobject—
original_file_namestringOptional original route/profile file name for review metadata.
course_fileobjectInline/proxied GPX, FIT, CRSProf, or ZIP-with-one-GPX file object to import. Use content for text GPX/XML/JSON/CRSProf or base64 for FIT/ZIP/binary. Bare local…
get_course_submission_requirementsUse 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.

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.

ParameterTypeDescription
race_namestringOptional race/course name the user wants to submit, e.g. Quebec Mega Trail 30K.
known_course_urlstringOptional candidate official direct GPX/FIT/CRSProf/ZIP URL if already found.
has_waypoint_databooleanWhether official waypoint/resource/cutoff data is already available.
get_race_plan_requirementsUse 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.

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.

ParameterTypeDescription
has_runner_profilebooleanWhether the user already provided a USRProf runner profile or runner evidence.
race_namestringOptional race name the user mentioned, e.g. Val d'Aran PDA.
known_course_urlstringOptional candidate direct GPX/FIT/CRSProf URL if already found.
get_runner_profile_requirementsUse 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.

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.

No input schema was published for this tool.

get_artifact_upload_requirementsprivilegedUse 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.

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.

No input schema was published for this tool.

get_jobPoll a CourseProfiler async job by job_id.

Poll a CourseProfiler async job by job_id.

ParameterTypeDescription
job_id*stringCourseProfiler job ID, e.g. job_...
get_artifactFetch artifact metadata and a private short-lived download URL by artifact_id.

Fetch artifact metadata and a private short-lived download URL by artifact_id.

ParameterTypeDescription
artifact_id*stringCourseProfiler artifact ID, e.g. art_...
validate_course_profileValidate a CRSProf artifact or inline CRSProf JSON before race planning or catalog submission. This does not mutate artifacts or submit courses.

Validate a CRSProf artifact or inline CRSProf JSON before race planning or catalog submission. This does not mutate artifacts or submit courses.

ParameterTypeDescription
crsprofobject—
crsprof_artifact_idstringExisting CRSProf artifact ID to validate.
validate_runner_profileValidate a USRProf artifact or inline USRProf JSON before creating personalized race plans. This does not mutate artifacts or generate a new profile.

Validate a USRProf artifact or inline USRProf JSON before creating personalized race plans. This does not mutate artifacts or generate a new profile.

ParameterTypeDescription
usrprofobject—
usrprof_artifact_idstringExisting USRProf artifact ID to validate.
export_race_plan_pdfExport 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 file name. Omit unit_system unless the user explicitly ask…

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 file name. Omit unit_system unless the user explicitly ask…

ParameterTypeDescription
crsprof_artifact_id*stringExisting CRSProf artifact ID containing the course/profile/plan data to render.
optionsobject—
build_runner_profile_from_stravaBuild 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 never accepted through MCP: this tool returns a private one-h…

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 never accepted through MCP: this tool returns a private one-h…

ParameterTypeDescription
decisionstring—
resume_job_idstringExisting waiting Strava profile-build job to resume.
course_fileobjectInline/proxied GPX, FIT, CRSProf, or ZIP-with-one-GPX target course, using the same convention as create_race_plan.
target_distance_mnumberTarget distance in metres when no course is supplied. Ask the user before choosing it.
existing_usrprof_artifact_idstringExisting USRProf artifact to merge with or replace.
courseobject—
filtersobject—
existing_profile_strategystringRequired whenever existing_usrprof_artifact_id is supplied; ask the user explicitly.
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 c…

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 bounded structured summary, units, missing-data warnings and c…

ParameterTypeDescription
sourceobject—
optionsobject—
course_fileobjectInline GPX/FIT content or base64; use an artifact from agent-upload.html if the client cannot read bytes.
inspect_analysisRead 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 metres and times seconds. Climbs group existing UP movement row…

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 metres and times seconds. Climbs group existing UP movement row…

ParameterTypeDescription
axisstringRange only; required for comparison artifacts.
to_mnumberRange end, greater than from_m and within source coverage. Adjacent ranges own stationary boundary time once; final range includes terminal dwell.
limitinteger—
from_mnumberRange start on the chosen source axis; required for range.
min_duration_secondsnumberStops only; inclusive duration threshold.
sortstring—
artifact_id*stringPrivate v3 CRSProf or uploaded CRSProf artifact ID.
offsetinteger—
duration_metricstringStops only. Unknown durations are explicitly excluded when filtering.
query*string—
compare_executionCompare 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_activity on original GPX/FIT to change detection. Returns job a…

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_activity on original GPX/FIT to change detection. Returns job a…

ParameterTypeDescription
execution_artifact_id*stringAnalyzed execution v3 CRSProf artifact ID.
stop_association_distance_mnumberPlanned-to-actual stop association only; no redetection.
plan_artifact_id*stringPlan v3 CRSProf artifact ID.
inspect_runner_profileRead 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 host file handoff is available; otherwise offer the browser u…

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 host file handoff is available; otherwise offer the browser u…

ParameterTypeDescription
offsetintegerDefault 0 for paged queries; rejected for insights.
usrprof_artifact_id*stringExisting USRProf or uploaded USRProf source artifact; legacy .userprof needs explicit migration.
limitintegerDefault 20 for paged queries; rejected for insights.
query*string—
course_artifact_idstringRequired for course_fit, optional for coverage, rejected elsewhere. Existing current v3 CRSProf reference geometry.
assess_finish_time_goalAssess 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 course and runner artifact IDs. Defaults to load_response_evi…

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 course and runner artifact IDs. Defaults to load_response_evi…

ParameterTypeDescription
course_artifact_id*stringCurrent v3 CRSProf or uploaded CRSProf source artifact; reference-plan geometry and saved constraints.
usrprof_artifact_id*stringExisting USRProf or uploaded USRProf source artifact; never implicitly replace or select evidence.
estimation_modelstringExperimental v3 requires explicit user choice and must match the stored profile model.
allow_profile_preparationbooleanExplicit user permission for existing in-memory profile preparation when needed. Does not authorize source replacement.
target_elapsed_seconds*numberElapsed goal in seconds, including saved dwell.
compare_pacing_strategiesCompare 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 course and runner artifact IDs. Defaults to load_response_…

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 course and runner artifact IDs. Defaults to load_response_…

ParameterTypeDescription
course_artifact_id*stringCurrent v3 CRSProf or uploaded CRSProf source artifact; reference-plan geometry and saved constraints.
usrprof_artifact_id*stringExisting USRProf or uploaded USRProf source artifact; never implicitly replace or select evidence.
estimation_modelstringExperimental v3 requires explicit user choice and must match the stored profile model.
allow_profile_preparationbooleanExplicit user permission for existing in-memory profile preparation when needed. Does not authorize source replacement.
split_percentnumber—
import_profile_attachmentStore 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 send the selected file to CourseProfiler before setting uplo…

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 send the selected file to CourseProfiler before setting uplo…

ParameterTypeDescription
upload_authorized*booleanSet true only after explicit user authorization to upload the selected attachment to CourseProfiler.
file*object—
profile_type*string—

24 of 24 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Race course profiling, catalog search, course submission, and personalized race plans.

Keywords
mcp
Alternatives
Comparing tool surfaces…

No dependency coverage

This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.