Measured mountain bike jumps and speeds at bike parks: public clips, read-only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One public clip by id: where and when it was recorded (day and clock time at the venue), the rider if named, every measurement (jump height, speed, lap times, plus jump length and airtime), how it was calibrated, and for a group clip (a train of riders) each rider with their own stats, timing and link. `timing` lists each timing line the rider crossed with the lap it closed, the best earlier lap and the difference, and the split from the line before; a rider nobody tagged has crossings with no lap. A clip that is private, removed or does not exist all read as not found.
The clip id (the number in https://www.shreddy.ai/clips/<id>).
One public clip by id: where and when it was recorded (day and clock time at the venue), the rider if named, every measurement (jump height, speed, lap times, plus jump length and airtime), how it was calibrated, and for a group clip (a train of riders) each rider with their own stats, timing and link. `timing` lists each timing line the rider crossed with the lap it closed, the best earlier lap and the difference, and the split from the line before; a rider nobody tagged has crossings with no lap. A clip that is private, removed or does not exist all read as not found.
| Argument | Type | Description |
|---|---|---|
| id* | any | The clip id (the number in https://www.shreddy.ai/clips/<id>). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
{
"type": "string",
"maxLength": 10,
"minLength": 1
}
],
"description": "The clip id (the number in https://www.shreddy.ai/clips/<id>)."
}
},
"additionalProperties": false
}Everything about one bike park in one call: its runs and their features (with clip counts), how many public clips and measured rides it has, its records (the top 3 public rides for jump height, speed, jump length and airtime, biggest first; no lap record yet) and its newest clips, each with a link and its lap time when it has one. `venue` is a name ("bradley", "snow summit") or an id.
| Argument | Type | Description |
|---|---|---|
| venue* | any | A bike park name ("bradley", "Snow Summit") or its id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"venue"
],
"properties": {
"venue": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
}
],
"description": "A bike park name (\"bradley\", \"Snow Summit\") or its id."
}
},
"additionalProperties": false
}List the bike parks (venues) that have public Shreddy clips: name, city, state, how many clips and how many measured rides, the runs and features there, and a link. Filter by `query` (matches name, city or state) or sort nearest first with `near` (coordinates; for a place name like "San Diego", pass its approximate latitude and longitude). Distances come in km and miles. Use it for "what parks do you have" and to learn valid venue names.
| Argument | Type | Description |
|---|---|---|
| near | object | Sort by distance from this point (decimal degrees). For a city, pass its approximate coordinates. |
| limit | integer | How many venues to return (1 to 25, default 25). |
| query | string | Free text matched against venue name, city and state, e.g. "bradley" or "CA". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"near": {
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"long": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"description": "Sort by distance from this point (decimal degrees). For a city, pass its approximate coordinates.",
"additionalProperties": false
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "How many venues to return (1 to 25, default 25)."
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Free text matched against venue name, city and state, e.g. \"bradley\" or \"CA\"."
}
},
"additionalProperties": false
}Search public clips. Newest first by default; sort "biggest" or "smallest" with a `metric` for the biggest jumps, longest jumps, most airtime or fastest runs (ranked results list each rider of a group clip on their own, and leave out rides with no value for that metric). Filter by `venue`, `feature` (a feature or a run at the venue, e.g. "double black" or "jump 2"), `rider`, and time (`when`, or `since`/`until`). A newest search includes clips with no measurements (normal: no calibration). Every clip has a link to give the viewer and its lap time (`lap_time_s`) when it has one; laps are not a ranking metric yet. Pass `next_cursor` back as `cursor`, with the same other arguments, for the next page.
| Argument | Type | Description |
|---|---|---|
| sort | string | newest (default), or biggest / smallest by `metric`. Giving a metric without a sort means biggest. |
| when | string | today = the last 24 hours, week = the last 7 days, month = the last 30 days, all (default). since/until override it. |
| limit | integer | How many clips (1 to 25, default 10). |
| rider | string | A rider's name. Only riders who linked their account and allow it can be found. |
| since | any | Only clips filmed at or after this ISO date (2026-09-01) or datetime. |
| until | any | Only clips filmed at or before this ISO date (the whole day counts) or datetime. |
| venue | any | A bike park name ("bradley", "Snow Summit") or its id. |
| cursor | string | The next_cursor from the previous page of the same search. |
| metric | string | What to rank by: jump_height (default when ranked), speed, jump_length, or airtime. Lap times are returned on each clip but cannot be ranked. |
| feature | any | A feature or a run at the venue, by name ("jump 2", "double black") or id. Works without a venue too. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sort": {
"enum": [
"newest",
"biggest",
"smallest"
],
"type": "string",
"description": "newest (default), or biggest / smallest by `metric`. Giving a metric without a sort means biggest."
},
"when": {
"enum": [
"today",
"week",
"month",
"all"
],
"type": "string",
"description": "today = the last 24 hours, week = the last 7 days, month = the last 30 days, all (default). since/until override it."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "How many clips (1 to 25, default 10)."
},
"rider": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "A rider's name. Only riders who linked their account and allow it can be found."
},
"since": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
],
"description": "Only clips filmed at or after this ISO date (2026-09-01) or datetime."
},
"until": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
],
"description": "Only clips filmed at or before this ISO date (the whole day counts) or datetime."
},
"venue": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
}
],
"description": "A bike park name (\"bradley\", \"Snow Summit\") or its id."
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "The next_cursor from the previous page of the same search."
},
"metric": {
"enum": [
"jump_height",
"speed",
"jump_length",
"airtime"
],
"type": "string",
"description": "What to rank by: jump_height (default when ranked), speed, jump_length, or airtime. Lap times are returned on each clip but cannot be ranked."
},
"feature": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
}
],
"description": "A feature or a run at the venue, by name (\"jump 2\", \"double black\") or id. Works without a venue too."
}
},
"additionalProperties": false
}