Skip to main content
Glama

cyclesite-mcp-server

get_valuation

Read-onlyIdempotent

What a used UK bike is worth right now, Cyclesite's flagship tool. Returns median, range, a measured price-by-model-year curve, confidence level, and comparable active listings. Pass year when the user names one and the answer is resolved against that model year's own measured median and confidence interval, instead of the all-years median. Sourced from real UK market prices, the last-advertised asking prices bikes are listed for (not confirmed sale prices), refreshed nightly. Example: 'what's a 2022 Trek Domane SL 6 worth?'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoModel year, e.g. 2022. Optional. When given, the response carries a `forYear` block resolving the valuation to that year, or saying in words why it could not be.
brandYes
modelYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
basisNo
forYearNo
summaryYesOne-sentence summary safe to quote verbatim.
retentionNo
confidenceNo
priceTrendNo
sampleSizeNo
attributionYesCitation string — include verbatim when surfacing data.
maxPriceGbpNoPrice in GBP.
minPriceGbpNoPrice in GBP.
citationUrlsNo
avgDaysToSellNo
activeListingsNo
medianPriceGbpNoPrice in GBP.
priceByModelYearNo
conditionBreakdownNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / year
      Added value: +{
      +  "description": "Model year, e.g. 2022. Optional. When given, the response carries a `forYear` block resolving the valuation to that year, or saying in words why it could not be.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / forYear
      Added value: +{
      +  "properties": {
      +    "available": {
      +      "type": "boolean"
      +    },
      +    "hi": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "lo": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "medianPriceGbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "sampleSize": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "year": {
      +      "type": "number"
      +    },
      +    "yearsCovered": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / priceByModelYear / items / properties / hi
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / priceByModelYear / items / properties / lo
      Added value: +{
      +  "type": "number"
      +}
  2. Changed6 schema fields changed
    • addedOutput schema / properties / activeListings
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / basis
      Added value: +{
      +  "enum": [
      +    "uk_listings_asking",
      +    "cyclesite_sold"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / citationUrls
      Added value: +{
      +  "additionalProperties": {
      +    "format": "uri",
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / priceByModelYear
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "median": {
      +        "type": "number"
      +      },
      +      "n": {
      +        "type": "number"
      +      },
      +      "year": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / retention
      Added value: +{
      +  "properties": {
      +    "after3y": {
      +      "type": "number"
      +    },
      +    "after5y": {
      +      "type": "number"
      +    },
      +    "anchorYear": {
      +      "type": "number"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / sampleSize
      Added value: +{
      +  "type": "number"
      +}
  3. Changed3 schema fields changed
    • removedOutput schema / properties / activeListingsCount
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / conditionBreakdown / additionalProperties / properties / count
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / recentSalesCount
      Removed value: -{
      -  "type": "number"
      -}
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/idempotent, and the description adds meaningful behavior beyond them: values are based on last-advertised asking prices, not confirmed sale prices, and are refreshed nightly. It also discloses that omitting year gives an all-years median while passing year triggers a year-specific median and confidence interval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well ordered: purpose, outputs, year behavior, data source caveat, then an example. Every sentence adds useful information with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema, annotations, and sibling context, the description is complete enough for an agent to select and call the tool correctly. It covers the core use case, the optional-year nuance, the data freshness and caveat, and provides a concrete example.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, and the description compensates for the year parameter by explaining how it changes the valuation basis. Brand and model remain bare strings except for the implicit example '2022 Trek Domane SL 6', which suggests the mapping but does not fully document those required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete value proposition ('what a used UK bike is worth right now') and enumerates specific outputs (median, range, price-by-model-year curve, confidence level, comparable active listings), so an agent can tell this is a valuation endpoint. It does not explicitly contrast with siblings like get_price_trends or get_depreciation, so it stops just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear trigger scenario: a user asks what a used UK bike is worth, with an explicit example query. It also provides conditional guidance on when to pass the optional year parameter. It does not state exclusions or point to alternative sibling tools, but the context is clear enough for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources