get_popular_stations
Busiest stations in a city ranked by average bikes available over the last 24 hours.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City id: one of manchester | |
| limit | No |
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 |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
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"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"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"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.
Add one secure layer between your agents and this server.
Each tool targets a distinct aspect of bike-share data: city listing, station search, live network totals, time trends, and popular stations. No functional overlap exists.
All tool names follow a consistent verb_noun pattern (e.g., find_stations, get_network_status), making the API predictable.
Five tools cover the core features of a bike-share tracking service without unnecessary clutter, striking a good balance.
The set covers querying cities, finding stations, live status, trends, and popular stations. A minor gap is the lack of a tool for individual station details beyond live availability.