BikesAndThat
Server Details
Official UK mountain bike parks, uplift services, trail counts, and bike workshop directory for AI assistants.
- Status
- Healthy
- Uptime
- 99.9% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool targets a distinct resource and action: get_bike_park retrieves a single park, list_bike_parks enumerates/filters parks, and search_bike_shops finds shops. There is no overlap in purpose, so an agent can easily select the right tool.
All names follow a consistent snake_case verb_noun pattern (get_*, list_*, search_*) with correct pluralization for list/search operations. The convention is predictable and readable.
Three tools are within the typical 3-15 range and each earns its place, but the server covers two domains (parks and shops) with an asymmetric tool count. It is slightly thin, though still reasonable for a focused read-only API.
Parks have both detail retrieval and listing/filtering, while shops only have a search tool. Adding a shop detail endpoint would close the minor gap, but the current surface likely supports most agent discovery workflows.
Available Tools
3 toolsget_bike_parkGet bike park detailsBRead-onlyIdempotentInspect
Fetch full details for a single UK bike park by exact or partial name match. Returns trails, uplift, facilities, opening times, terrain and wet-weather tips.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Bike park name or partial name, e.g. 'BikePark Wales' or 'Dyfi'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety behaviour is covered. The description adds genuine value by enumerating the returned content (trails, uplift, facilities, times, terrain, tips), but it says nothing about ambiguity handling for partial matches or the failure mode when no park matches.
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 tight sentences with zero filler; the lookup scope is front-loaded and the return contents are listed compactly afterward.
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 one-parameter read with no output schema, the description helpfully previews the return shape, which compensates for the absent output schema. The only real gap is behaviour on ambiguous or failed name resolution.
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 schema already documents the single 'name' parameter with a partial-match example, so the description's 'exact or partial name match' largely restates it. Baseline 3 applies when the schema does the heavy lifting.
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 ('Fetch'), resource ('single UK bike park'), and matching mode ('exact or partial name'), plus enumerates the payload. The word 'single' implicitly separates it from list_bike_parks, but the sibling is never named, so differentiation is left to inference.
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?
No explicit when-to-use guidance, no mention of when list_bike_parks or search_bike_shops would be the better choice, and no note about what happens when a partial name matches several parks. The purpose implies a lookup scenario but nothing routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bike_parksList UK bike parksARead-onlyIdempotentInspect
List UK mountain bike parks from BikesAndThat. Filter by location text (e.g. 'Wales'), trail difficulty (minimum blue/red/black counts, pro lines), uplift (available or type such as 'van'), or distance from a latitude/longitude. When coordinates are given, results include distance_miles and are sorted closest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. Default 100. | |
| latitude | No | Origin latitude for distance search. | |
| longitude | No | Origin longitude for distance search. | |
| uplift_type | No | Substring to match against uplift type, e.g. 'van', 'gondola', 'chairlift'. | |
| radius_miles | No | Only return parks within this many miles of latitude/longitude. | |
| featured_only | No | If true, return only featured parks. | |
| has_pro_lines | No | If true, only parks with at least one pro line. | |
| min_red_trails | No | Minimum number of red trails. | |
| min_blue_trails | No | Minimum number of blue trails. | |
| min_black_trails | No | Minimum number of black trails. | |
| uplift_available | No | True for parks with an uplift service; false for push-up/pedal-only parks. | |
| location_contains | No | Case-insensitive substring to match against the park's location field. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent and closed-world behavior, so the description's added value is the output behavior: when coordinates are supplied, results carry distance_miles and are sorted closest-first. That is real behavioral disclosure beyond the structured fields, though rate limits, pagination beyond the limit param, and result shape are not covered.
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 sentences, no filler. The core purpose leads, the filter enumeration follows, and the distance/sort caveat closes — an efficient structure for a 12-parameter tool.
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?
With no output schema, the description partially compensates by describing the distance_miles field and sort order, and the schema itself documents limit and all filters. It does not describe the overall record shape or result envelope, but nothing needed to invoke the tool 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 the baseline is 3, but the description adds genuine semantic value by distinguishing the two uplift filters ('available or type such as van') and clarifying that difficulty filters are minimum counts rather than exact matches. That maps directly onto uplift_available vs uplift_type and the min_*_trails params.
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 with scope: 'List UK mountain bike parks from BikesAndThat'. The plural 'list' naturally separates it from the singular get_bike_park sibling, though the description never names an alternative explicitly, which keeps it just short of a 5.
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?
The description enumerates the four filter modes (location text, trail difficulty thresholds, uplift, distance) with concrete examples like 'Wales' and 'van', which tells an agent exactly what this tool is for. It stops short of stating when to prefer get_bike_park or search_bike_shops instead, so no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_bike_shopsSearch UK MTB bike shopsARead-onlyIdempotentInspect
Search MTB bike shops in the UK by town, region, or country. Returns shop name, location, website, and whether a workshop is available.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. Default 50. | |
| query | No | Substring to match against shop_name, town, or region. | |
| country | No | Country filter e.g. 'England', 'Scotland', 'Wales'. | |
| workshop_only | No | If true, only shops offering a workshop. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and closed-world semantics, so safety is covered. The description adds genuine value beyond those annotations by disclosing the returned fields (name, location, website, workshop availability) — important because no output schema exists. It stops short of describing result counts or pagination behavior.
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 sentences, zero padding: the first states the action and filter axes, the second states the return shape. Both sentences earn their place and the key scoping information is front-loaded.
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?
With no output schema, the description carries the return-value burden and does so adequately, and the 100%-covered input schema handles parameter detail. The only shortfall is the absence of any note on result volume, default limits, or empty-result behavior for a search 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 description coverage is 100%, so all four parameters are already documented in the schema with defaults, bounds, and matching semantics. The description's mention of town/region/country and workshop availability echoes that information without adding new syntax or format detail, so 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 gives a specific verb+resource+scope: "Search MTB bike shops in the UK," and even names the filterable dimensions (town, region, country). It is clearly distinguishable from the bike-park siblings, though it never explicitly contrasts its search semantics with them.
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 town, region, or country" implies the supported lookup contexts, so usage is inferable. However, there is no when-to-use framing, no exclusions, and no mention of the sibling tools (e.g. use list_bike_parks for parks), leaving routing guidance implicit.
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.
3 tool updates
- Changed
get_bike_park1 field changed- added
Input schema / properties / name / descriptionAdded value: +"Bike park name or partial name, e.g. 'BikePark Wales' or 'Dyfi'."
- Changed
list_bike_parks12 fields changed- added
Input schema / properties / featured_only / descriptionAdded value: +"If true, return only featured parks." - added
Input schema / properties / has_pro_linesAdded value: +{ + "description": "If true, only parks with at least one pro line.", + "type": "boolean" +} - added
Input schema / properties / latitudeAdded value: +{ + "description": "Origin latitude for distance search.", + "maximum": 90, + "minimum": -90, + "type": "number" +} - added
Input schema / properties / limit / descriptionAdded value: +"Max rows to return. Default 100." - added
Input schema / properties / location_contains / descriptionAdded value: +"Case-insensitive substring to match against the park's location field." - added
Input schema / properties / longitudeAdded value: +{ + "description": "Origin longitude for distance search.", + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / min_black_trailsAdded value: +{ + "description": "Minimum number of black trails.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / min_blue_trailsAdded value: +{ + "description": "Minimum number of blue trails.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / min_red_trailsAdded value: +{ + "description": "Minimum number of red trails.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / radius_milesAdded value: +{ + "description": "Only return parks within this many miles of latitude/longitude.", + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / uplift_availableAdded value: +{ + "description": "True for parks with an uplift service; false for push-up/pedal-only parks.", + "type": "boolean" +} - added
Input schema / properties / uplift_typeAdded value: +{ + "description": "Substring to match against uplift type, e.g. 'van', 'gondola', 'chairlift'.", + "type": "string" +}
- Changed
search_bike_shops4 fields changed- added
Input schema / properties / country / descriptionAdded value: +"Country filter e.g. 'England', 'Scotland', 'Wales'." - added
Input schema / properties / limit / descriptionAdded value: +"Max rows to return. Default 50." - added
Input schema / properties / query / descriptionAdded value: +"Substring to match against shop_name, town, or region." - added
Input schema / properties / workshop_only / descriptionAdded value: +"If true, only shops offering a workshop."
3 tool updates
- First observed
get_bike_park - First observed
list_bike_parks - First observed
search_bike_shops
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.