Shreddy
Server Details
Measured mountain bike jumps and speeds at bike parks: public clips, read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct scope: get_clip retrieves one clip, get_venue retrieves one venue, list_venues lists venues, and search_clips searches clips. No overlap or confusion between them.
All tool names follow a consistent snake_case verb_noun pattern: get_clip, get_venue, list_venues, search_clips. The verbs accurately reflect the actions.
Four tools are well-scoped for a read-only public data API covering clips and venues. Each tool serves a distinct retrieval need without redundancy.
The surface covers core retrieval: individual clips, individual venues, venue listing, and clip search with rich filtering. A minor gap is the lack of a dedicated rider profile or feature-detail tool, though search_clips and get_venue provide most needed data.
Available Tools
4 toolsget_clipClip detailsARead-onlyIdempotentInspect
One public clip by id: where and when it was filmed, the rider if named, every measurement, how it was calibrated, and for a group clip (a train of riders) each rider with their own stats and link. A clip that is private, removed or does not exist all read as not found.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The clip id (the number in https://www.shreddy.ai/clips/<id>). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| run | Yes | |
| date | Yes | |
| link | Yes | |
| rank | Yes | |
| rider | Yes | |
| setup | Yes | |
| stats | Yes | |
| venue | Yes | |
| feature | Yes | |
| members | Yes | |
| message | Yes | |
| is_train | Yes | |
| measured | Yes | |
| thumbnail | Yes | |
| riders_in_clip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond them: private, removed and nonexistent clips are indistinguishable and all surface as not found, and group clips expand into per-rider stats and links.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and closes with the error semantics in one tight sentence. The first sentence is long and enumerative, but every clause carries information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-resource read tool with only one fully-documented parameter, an output schema, and annotations covering the safety profile, nothing needed to invoke or interpret the call is missing. The not-found semantics and group-clip expansion even go beyond the minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' property already documents its type/format including the URL pattern. The description adds nothing about the id beyond 'by id', so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('One public clip by id') plus the exact scope of the returned record (location, time, rider, measurements, calibration, group breakdown). An agent can distinguish it from search_clips, which returns many clips, without reading either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by id' implies the precondition that an id is already known, and the not-found clause tells the agent what happens on a miss. However, it never explicitly routes the agent to search_clips when it needs to discover an id, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_venueBike park detailsARead-onlyIdempotentInspect
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, jump length, airtime and speed, biggest first) and its newest clips, each with a link. venue is a name ("bradley", "snow summit") or an id.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | A bike park name ("bradley", "Snow Summit") or its id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| venue | Yes | |
| status | Yes | |
| message | Yes | |
| candidates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already assert readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description goes further by characterizing the response content and ordering ('the top 3 public rides... biggest first') and noting records are public-only, which is genuine behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payload is front-loaded in a single dense sentence, followed by a short clause explaining the parameter. It is appropriately sized for the amount of information conveyed, though the long enumeration makes it slightly heavy for a one-sentence structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, yet the description still summarizes them well. Combined with a fully documented single parameter and clear annotations, an agent has everything needed to call this correctly; only the missing explicit sibling routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `venue` parameter is fully documented in the schema as a name or id. The description restates that but adds concrete example names ('bradley', 'snow summit'), a marginal gain over the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (get one bike park) and enumerates the exact payload: runs and features with clip counts, clip/ride totals, records, newest clips. This is clearly distinguishable from siblings like list_venues and get_clip without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scope ('Everything about one bike park in one call'), but there is no explicit when-to-use or when-not-to-use guidance, nor any routing to list_venues (to discover a venue) or get_clip (for a single clip). The agent must infer the boundary from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_venuesList bike parksARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | Sort by distance from this point (decimal degrees). For a city, pass its approximate coordinates. | |
| limit | No | How many venues to return (1 to 25, default 25). | |
| query | No | Free text matched against venue name, city and state, e.g. "bradley" or "CA". |
Output Schema
| Name | Required | Description |
|---|---|---|
| venues | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real context: only venues with public clips are listed, and distances are returned in both km and miles. It does not discuss pagination or result ordering beyond the 'near' sort.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the returned fields, then the filtering mechanics. Every clause carries information an agent needs; nothing is repeated from the schema verbatim or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, yet the description summarizes them helpfully. With the scope constraint, both filter modes, and the coordinate hint covered, an agent has everything needed to call this correctly for a three-parameter read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by clarifying that `query` matches name, city or state, and by giving the practical instruction to pass approximate lat/long for a place name like 'San Diego' — that geographic hint is genuinely useful and not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the bike parks (venues) that have public Shreddy clips') and enumerates the returned fields, so the agent knows exactly what it gets back. The scoping phrase 'that have public Shreddy clips' distinguishes it from get_venue (single venue) and search_clips (clip-level search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the trigger phrase 'what parks do you have' and the secondary use 'to learn valid venue names', which is real routing guidance. It also explains the two filter modes. It stops short of naming get_venue as the follow-up for detail on a single park, so there is no explicit when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_clipsSearch clipsARead-onlyIdempotentInspect
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. Pass next_cursor back as cursor, with the same other arguments, for the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | newest (default), or biggest / smallest by `metric`. Giving a metric without a sort means biggest. | |
| when | No | today = the last 24 hours, week = the last 7 days, month = the last 30 days, all (default). since/until override it. | |
| limit | No | How many clips (1 to 25, default 10). | |
| rider | No | A rider's name. Only riders who linked their account and allow it can be found. | |
| since | No | Only clips filmed at or after this ISO date (2026-09-01) or datetime. | |
| until | No | Only clips filmed at or before this ISO date (the whole day counts) or datetime. | |
| venue | No | A bike park name ("bradley", "Snow Summit") or its id. | |
| cursor | No | The next_cursor from the previous page of the same search. | |
| metric | No | What to rank by: jump_height (default when ranked), jump_length, airtime, or speed. | |
| feature | No | A feature or a run at the venue, by name ("jump 2", "double black") or id. Works without a venue too. |
Output Schema
| Name | Required | Description |
|---|---|---|
| clips | Yes | |
| query | Yes | |
| total | Yes | |
| status | Yes | |
| message | Yes | |
| resolved | Yes | |
| candidates | Yes | |
| next_cursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/destructive/openWorld, the description goes well beyond them: ranked results split group clips per rider, rides lacking a metric value are omitted, newest searches still return unmeasured clips, and every clip carries a viewer link. It also spells out the pagination protocol (pass next_cursor back as cursor with the same other arguments), which is the kind of behavior an agent cannot infer from schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Effectively one dense paragraph but well ordered: purpose, then sort semantics, then filters, then pagination. Every sentence carries information, though the run-on density and quoted inline examples make it slightly harder to scan than a bulleted layout would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description still notes the viewer link. For a 10-parameter, zero-required, read-only search tool, sorting rules, filter dimensions, metric behavior, edge cases, and pagination are all covered — nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a 3 is the baseline, but the description adds real meaning: metric maps to 'biggest jumps, longest jumps, most airtime or fastest runs', feature accepts a feature or a run with examples, and cursor usage is described operationally ('with the same other arguments'). This is more than restating structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource plus a scope qualifier: 'Search public clips.' The surrounding detail (sorting, filtering, pagination) makes it unambiguous that this is the list/browse tool, cleanly separable from the singular retrieval sibling get_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong context: default is newest-first, ranked mode is selected by pairing sort 'biggest'/'smallest' with a metric, and it names the filterable dimensions (venue, feature, rider, when/since/until). It never explicitly contrasts itself with get_clip or list_venues, so it stops short of a full when/when-not routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_clip - First observed
get_venue - First observed
list_venues - First observed
search_clips
Related MCP Connectors
Edit uploaded footage with AI tools: cuts, captions, reframing and previews. Final export in Studio.
Live GPS sports tracking + per-sport analysis of GPX/IGC/FIT files: thermals, wind, phases, laps
Snow forecasts, lift status, season history, costs and AI ski trip planning for Europe
- EverpopOAuthapp.everpop
Clips your uploads into published Shorts, Reels and TikTok posts, with 48h/7d YouTube receipts.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides read-only tools to search and retrieve timestamped transcript evidence from the Pinkbike Podcast, enabling bike research questions to be answered with cited source passages.5MIT
- AlicenseNot gradedqualityAmaintenanceBikeScout is a specialized MCP (Model Context Protocol) server designed for cyclists and mountain bikers. It provides intelligent trail recommendations by combining real-world map data with advanced routing analysis.20AGPL 3.0
- AlicenseBqualityAmaintenancePrivacy-first MCP server for Strava activities, streams, routes and training data.29189 npm3MIT
- AlicenseAqualityAmaintenanceMCP server for Bosch eBike Flow (Smart System / BES3). Read-only access to battery health and charge-cycle trends, components and firmware, live state-of-charge, and per-ride activity data (distance, elevation, power, assist-mode, CO2), signing in with your own Bosch account via PKCE.1276 PyPIGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.