Cycle Tracker
Server Details
Live UK bike-share availability: nearby bikes and stations, popular stations, 90-day history.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- ThisisBankole/Starling-Bank-Bikes-Mancheter
- GitHub Stars
- 1
TDQS
Scored across 5 tools
Each tool targets a distinct query type: live station search, time-series trends, network totals, popularity ranking, and city listing. The only mild overlap is between find_stations and get_popular_stations, both returning station-level data, but their purposes (live availability vs. historical ranking) are clear.
Tool names mostly follow a get_/find_ + noun pattern, with list_cities as the one deviation. The pattern is predictable and readable, though list_cities could have been get_cities for full consistency.
Five tools is well-scoped for a bike-share data server: city discovery, live station lookup, network status, trends, and popularity. Each tool earns its place without redundancy.
The core read-only domain is well covered: cities, live station availability, network totals, historical trends, and popular stations. A minor gap is the lack of a tool to get a single station's detailed info or station-level historical data, but agents can work around with find_stations and get_availability_trend.
Available Tools
5 toolsfind_stationsAInspect
Find bike stations in a city with live availability. Filter by a name search and/or sort by distance from a coordinate (results then include distance_km). Without lat/lon, results are sorted by most bikes available.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude to sort by proximity | |
| lon | No | Longitude to sort by proximity | |
| city | Yes | City id: one of manchester | |
| limit | No | ||
| query | No | Case-insensitive station name filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses live availability, sorting default, and that distance_km appears when coordinates are provided. This is valuable behavioral context, though it doesn't cover pagination or rate limits.
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, front-loaded, no redundant information.
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 simple tool with no output schema, this covers key behaviors: live availability, filtering, sorting, and conditional output. The limit parameter is documented in schema, so the description is adequate.
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 80%, so baseline is 3. The description adds nuance around lat/lon (including distance_km) and default sorting, but doesn't explain limit beyond 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?
The description begins with 'Find bike stations in a city with live availability', stating a specific verb, resource, and scope. It further clarifies filtering by name and sorting by distance, which distinguishes it from sibling tools like get_popular_stations.
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?
It clearly states the tool finds stations and explains conditional behavior for lat/lon vs no coordinates. It doesn't explicitly name alternatives or when not to use, but gives enough context on usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availability_trendAInspect
Time series of bikes available and active stations for a city, one point per 10-minute snapshot, newest first. Up to 90 days of history.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City id: one of manchester | |
| hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses key behaviors: 10-minute snapshot intervals, newest-first ordering, and up to 90 days of history. However, it does not explicitly confirm the operation is read-only, define 'active stations,' or describe response format beyond 'time series.'
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 description is two concise sentences, front-loading the primary purpose and then adding key behavioral details. Every word contributes without redundancy.
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 simple read-only tool with two parameters and no output schema, the description provides a solid shape of the response (time series of two metrics) and key constraints (resolution, ordering, retention). It lacks explicit return-field names and error scenarios, but for this complexity it is nearly complete.
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 only 50%, but the description adds context by clarifying the city scope and the maximum history window (90 days), which helps interpret the hours parameter. It does not explicitly explain hours semantics beyond the schema's default/min/max, so the description partially compensates.
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 clearly specifies the tool's function: it returns a time series of bike availability and active stations for a city, with a specific temporal resolution. This distinguishes it from sibling tools like find_stations (station search) and get_network_status (current status).
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 implies usage for historical trend analysis but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. It mentions the time-series nature and 90-day history, which signals suitability for trend queries, but lacks direct comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_statusAInspect
Live network totals for a city: bikes available, e-bikes, active stations, bikes docked at stations. Data refreshes every 10 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City id: one of manchester |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It adds the refresh interval ('Data refreshes every 10 minutes') which is a useful behavior. However, it does not explicitly state read-only semantics, error handling, or the exact return format. The listed fields provide some transparency, but the burden is only partially met.
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 description is a single, front-loaded sentence with no filler. It conveys the core purpose and key details (data fields and refresh rate) efficiently. Every word contributes value, making it highly concise and well-structured.
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?
Given the tool's simplicity (one parameter, no output schema), the description covers the essential information: purpose, data fields returned, and refresh behavior. It lacks an explicit return format or error conditions, but the field list provides sufficient context for an agent to invoke the tool correctly.
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?
The schema covers 100% of the parameter descriptions, with 'city' described as 'City id: one of manchester'. The tool description adds no additional parameter context, but since the schema provides complete documentation, the baseline of 3 is appropriate.
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 clearly states the tool's purpose: 'Live network totals for a city' and enumerates specific data fields (bikes available, e-bikes, active stations, bikes docked). This specific verb+resource combination distinguishes it from sibling tools like find_stations or get_availability_trend, which focus on station-level or trend data.
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 provides clear context for when to use the tool: when you need city-level network totals. It implies usage by listing the data fields, but does not explicitly mention alternatives or exclusion scenarios. This meets the 'clear context, no exclusions' level, though it stops short of naming sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_popular_stationsBInspect
Busiest stations in a city ranked by average bikes available over the last 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City id: one of manchester | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the ranking metric (average bikes available) and the time window (last 24 hours), which is useful behavioral context. However, it does not explain what fields are returned, how stations with missing data are handled, or any pagination behavior, leaving some gaps.
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 description is a single, front-loaded sentence that directly states the tool's purpose. Every word contributes meaning, and there is no redundancy or 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?
There is no output schema, so the description is responsible for indicating return values. It does not specify whether the result is a list of station objects, includes additional metrics, or how they are ordered beyond 'ranked by average bikes.' This leaves the agent guessing about the response shape, which is a significant gap for a tool with no output schema.
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 only 50%; the 'city' parameter is described, but 'limit' has no text description. The tool description does not add meaning beyond the schema, nor does it clarify the 'limit' semantics beyond what its name and constraints (default 10, max 50) suggest. Since coverage is low, the description should compensate, but it fails to do so.
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 clearly identifies the tool's purpose: listing the busiest stations in a city, ranked by average bike availability over the last 24 hours. It distinguishes itself from sibling tools by focusing on popularity ranking rather than generic station search or status. However, it is phrased as a noun phrase rather than an explicit verb+resource command, slightly reducing clarity.
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 implies when to use the tool (when you need busiest station rankings) but does not explicitly state when to prefer this over siblings like find_stations or get_availability_trend. No alternatives or exclusions are mentioned, leaving the usage context only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_citiesAInspect
List the bike-share cities Cycle Tracker covers, with their ids (used by every other tool) and map coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It clearly communicates this is a read/list operation and what the output contains (ids and coordinates). For a simple zero-parameter listing tool, this is adequate transparency, though it does not elaborate on edge cases or response structure.
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?
A single, front-loaded sentence that states the purpose, scope, and key output fields without redundancy. Every word contributes useful information.
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?
Given the tool's simplicity (zero parameters, no output schema), the description is fully complete: it names the resource, what is returned (ids and coordinates), and why it is relevant to other tools. There are no significant gaps for an agent to invoke it correctly.
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?
There are zero parameters, so the schema provides no semantic burden. The description adds valuable relationship context by explaining that the ids are used by every other tool, which is especially useful given the empty input 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?
The description uses a specific verb ('List') and clearly identifies the resource: bike-share cities covered by Cycle Tracker, including their ids and map coordinates. It distinguishes itself from sibling tools (find_stations, get_network_status, etc.) by focusing on the city-level listing.
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 notes that the ids are 'used by every other tool', implying this should be called first to obtain necessary ids. This gives clear usage context, though it does not explicitly state when not to use it or name alternatives.
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
- Changed
find_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"New value: +"City id: one of manchester"
- Changed
get_availability_trend1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"New value: +"City id: one of manchester"
- Changed
get_network_status1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"New value: +"City id: one of manchester"
- Changed
get_popular_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"New value: +"City id: one of manchester"
4 tool updates
- Changed
find_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"
- Changed
get_availability_trend1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"
- Changed
get_network_status1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"
- Changed
get_popular_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, guildford, hackney-cargo, hereford, hertsmere, leeds, liverpool, norwich, plymouth, stevenage, watford, weymouth, worcester"
4 tool updates
- Changed
find_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"
- Changed
get_availability_trend1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"
- Changed
get_network_status1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"
- Changed
get_popular_stations1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"City id: one of manchester, bcp, bradford"New value: +"City id: one of manchester, bcp, bradford, brighton, canterbury, cornwall, eastleigh, guildford, hackney-cargo, hereford, hertsmere, isle-of-wight, leeds, liverpool, norwich, plymouth, portsmouth, southampton, stevenage, watford, west-midlands, weymouth, wool, worcester"
5 tool updates
- First observed
find_stations - First observed
get_availability_trend - First observed
get_network_status - First observed
get_popular_stations - First observed
list_cities
Related MCP Connectors
Live barrier status and closure forecasts for ~1,600 UK level crossings. Public data, no auth.
Citybikes MCP — wraps CityBik.es API (free, no auth required)
Access UK air quality data, monitoring sites, and hourly pollutant measurements across regions
Access street-level crime reports, stop and search data, and outcomes across UK police forces
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides access to bike sharing station data from CityBik.es API, enabling queries for station availability and locations without authentication.5 npmMIT
- FlicenseAqualityDmaintenanceProvides access to Bay Wheels realtime bikeshare data, enabling users to find nearest available bikes (standard or ebike) and docking stations with available spaces in the San Francisco Bay Area.2-
- AlicenseAqualityCmaintenanceEnables AI assistants and developers to search 1,000+ public bikeshare systems and fetch live station, free-floating vehicle, alert, and vehicle-type data through the General Bikeshare Feed Specification.61MIT
- FlicenseNot gradedqualityCmaintenanceEnables querying real-time bike-share feed data, including station availability, nearby bikes and docks, route checks, alerts, and system information across many cities.-
Glama MCP Gateway
Add one secure layer between your agents and this server.