Koskamo

ALLR Motorcycle Gear Prices MCP

An MCP server that allows AI assistants to search motorcycle gear catalogs, retrieve per-retailer landed cost tables including duty and shipping, list current price drops, and recommend sizes based on body measurements. It provides read-only access to price comparison data across multiple countries and retailers.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

ALLR Motorcycle Gear Prices MCP logo, by ALLRCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by ALLR
MCP endpoint (Streamable HTTP)
https://allr.io/mcp
Vendor documentation

What you can do with it

  • Search for specific motorcycle gear items by query and country
  • Retrieve full landed cost breakdowns for products across retailers
  • List current price drops and deals on motorcycle gear
  • Get size recommendations based on user body measurements

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

Server
allr 1.0.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

ALLR compares motorcycle gear (helmets, jackets, suits, pants, boots, gloves, protection, luggage) across 50+ retailers in Canada, the US, the EU and the UK. How to use these tools well: 1. ALWAYS establish the rider's country before quoting a price. ALLR ranks by LANDED cost — item + shipping + import duty + VAT, converted to the buyer's currency — not by sticker price, and the cheapest retailer genuinely changes between CA, US, EU and UK. If the user has not said where they are, ask; do not assume US. 2. Start with search_gear to find a product, then call get_product_offers with that product's `id` and the rider's `country` for the per-retailer breakdown. Do not quote a price from search_gear as if it were a final cost — it is the lowest landed total, one number out of the full table. 3. Cite the `url` field (an allr.io product page) whenever you state a price, so the rider can verify it and see the full retailer table. 4. Prices and stock are observations, not standing facts. Every response carries `as_of`; say when the price was observed ("as of <as_of>") rather than stating it flatly, and tell the rider it can change. 5. Availability on ALLR is truth per (retailer x colorway x size). An offer carries `availability_by_colorway` — one row per colorway, each with its OWN sizes_in_stock. There is deliberately NO offer-level size list: a size in stock in one colorway says nothing about another. Quote a size only together with the colorway it belongs to, and when `availability_by_colorway` is null (the offer's `availability_note` says why) say the per-colorway breakdown is unknown rather than guessing. 6. Offers that cannot reach the rider's country are still returned, flagged `ships_to_country: false` and sorted last. Do not present them as buyable; say the retailer does not ship to that country. 7. Use the `buy_url` verbatim when linking a retailer, query string included. It is an allr.io redirect that preserves affiliate attribution and carries a source marker identifying this connector; a rewritten, shortened or unwrapped retailer link loses both. 8. list_categories_and_brands grounds the `category` and `brand` filters — prefer a value from it over guessing a slug.

Tools

5 advertised

search_gear — Search motorcycle gear
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search ALLR's motorcycle-gear catalog (helmets, jackets, suits, pants, boots, gloves, protection, riding shirts, base layers, communication, luggage, accessories) by free text, and get each product's lowest landed cost for a buyer country, how many retailers carry it, and its allr.io product-page URL. Use this to FIND a product; then call get_product_offers with the returned `id` for the per-retailer price table. The `lowest_landed_price` is the cheapest total including shipping, duty and VAT for `country` — not a sticker price — and is one number out of a full table, so do not present it as the final answer on its own.

search_gear input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "brand": {
      "type": "string",
      "maxLength": 60,
      "description": "Restrict to a brand. Use a `slug` or `name` from list_categories_and_brands. Applied as a brand-token filter on the matched products."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "Maximum products to return (1-25)."
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Free-text search, e.g. 'agv k6', 'waterproof adventure jacket', 'alpinestars smx-6 boots'. Brand names, model names and model numbers all work."
    },
    "cursor": {
      "type": "string",
      "maxLength": 40,
      "description": "Opaque pagination cursor from a previous call's `next_cursor`. Omit for the first page."
    },
    "gender": {
      "enum": [
        "mens",
        "womens",
        "unisex",
        "kids"
      ],
      "type": "string",
      "description": "Restrict to products cut for this rider group, using ALLR's own gender classifier."
    },
    "country": {
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "type": "string",
      "default": "US",
      "description": "Buyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + VAT. ALLR computes landed cost for these four markets only. ASK the rider rather than guessing."
    },
    "category": {
      "type": "string",
      "maxLength": 40,
      "description": "Restrict to a catalog category. Use a `slug` from list_categories_and_brands (e.g. 'helmets', 'jackets', 'boots')."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Highest acceptable landed price in the country's currency."
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "Lowest acceptable landed price in the country's currency."
    },
    "certification": {
      "type": "string",
      "maxLength": 40,
      "description": "Restrict to products carrying this safety certification label, e.g. 'ECE 22.06', 'DOT', 'SNELL', 'CE AA'. Matched case-insensitively against the same certification labels the ALLR catalog filters on. A product whose certification ALLR cannot derive from its catalog row returns no `certifications` and is excluded by this filter — check the product page before telling a rider something is uncertified."
    }
  },
  "additionalProperties": false
}
search_gear output schema
{
  "type": "object",
  "required": [
    "query",
    "country",
    "currency",
    "ranked_match_count",
    "results_capped",
    "as_of",
    "results"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "query": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "currency",
          "offer_count",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "ALLR product id — pass to get_product_offers."
          },
          "url": {
            "type": "string",
            "description": "Canonical allr.io product page. Cite this."
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "type": "string"
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "offer_count": {
            "type": "integer",
            "description": "Retailers carrying this product."
          },
          "certifications": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Safety certification labels ALLR derives for this catalog row, e.g. 'ECE 22.06'. An EMPTY array means not derivable here, NOT uncertified — the product page is the fuller source."
          },
          "ships_to_country": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "True when at least one retailer ships this product to `country` (ALLR's own per-country rollup). False means no retailer currently reaches that country — which does NOT hide the product; ALLR shows every product in every region. null when the rollup is unavailable for this row: unknown, never assumed."
          },
          "lowest_landed_price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Cheapest landed total (item + shipping + duty + VAT) in `currency`, or null when no retailer currently prices it."
          },
          "in_stock_offer_count": {
            "type": "integer"
          }
        }
      }
    },
    "currency": {
      "type": "string"
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ],
      "description": "Pass as `cursor` for the next page; null when there are no more."
    },
    "results_capped": {
      "type": "boolean",
      "description": "True when the search engine returned its maximum of 50 ranked products, i.e. `ranked_match_count` is a floor on how many products match, not the total."
    },
    "ranked_match_count": {
      "type": "integer",
      "description": "Number of RANKED RESULTS this query produced after the requested filters — the pool this call paginates over. ALLR's search engine ranks and returns at most 50 products per query, so this is NOT a catalog-wide match count: when `results_capped` is true, more products match than are rankable in one query. Narrow with `brand`, `category` or a more specific query rather than paging for a total."
    }
  },
  "additionalProperties": false
}
search_gear annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_product_offers — Get every retailer offer for a product
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the full per-retailer offer table for ONE ALLR product in a buyer country: landed cost broken down into item price, shipping, import duty and tax, plus stock, condition, per-colorway size availability, whether the retailer ships to that country, and an attributed buy link. This is the authoritative answer to 'where is it cheapest' — search_gear only carries the single lowest number. Offers are sorted cheapest landed first; a retailer that does not ship to the country is still listed, flagged and sorted last. Availability is truth per (retailer x colorway x size): each offer carries `availability_by_colorway`, one row per colorway with ITS OWN sizes. There is no offer-level size list, because a size in stock in one colorway says nothing about another — quote a size only with its colorway.

get_product_offers input schema
{
  "type": "object",
  "required": [
    "product_id"
  ],
  "properties": {
    "size": {
      "type": "string",
      "maxLength": 20,
      "description": "Restrict to offers that have this size IN STOCK in at least one colorway, e.g. 'L', 'XL', '44'. The kept offers carry `matched_colorways` — exactly the colorways that have it. Combined with `colorway`, the offer must have that size IN that colorway. An offer with no per-colorway breakdown is dropped by this filter rather than guessed at."
    },
    "limit": {
      "type": "integer",
      "default": 40,
      "maximum": 40,
      "minimum": 1,
      "description": "Maximum offers to return (1-40)."
    },
    "country": {
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "type": "string",
      "default": "US",
      "description": "Buyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + VAT. ALLR computes landed cost for these four markets only. ASK the rider rather than guessing."
    },
    "colorway": {
      "type": "string",
      "maxLength": 120,
      "description": "Restrict to offers carrying this colorway. Matched against the product's real colorway NAMES the way the product page matches them: the normalized name first ('matt black' = 'Matt Black'), and only if nothing matches exactly, any colorway whose name contains all of those words as whole words ('black' matches 'Matt Black' AND 'Black/Red'). A value that matches no colorway on this product comes back as an error listing the valid names. Omit to see every colorway."
    },
    "product_id": {
      "type": "string",
      "maxLength": 220,
      "minLength": 1,
      "description": "ALLR product id from search_gear, or a full https://allr.io/product/<id> URL, or the bare slug. A merged/renamed id is followed to its canonical product automatically."
    },
    "include_out_of_stock": {
      "type": "boolean",
      "default": true,
      "description": "Keep out-of-stock offers in the table (default true — ALLR never hides them). Set false to see only buyable offers."
    }
  },
  "additionalProperties": false
}
get_product_offers output schema
{
  "type": "object",
  "required": [
    "product",
    "country",
    "currency",
    "as_of",
    "offer_count",
    "offers"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "retailer",
          "retailer_id",
          "in_stock",
          "ships_to_country",
          "colorways",
          "availability_by_colorway"
        ],
        "properties": {
          "tax": {
            "type": [
              "number",
              "null"
            ]
          },
          "duty": {
            "type": [
              "number",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Human-readable caveat, e.g. 'Does not ship to CA'."
          },
          "buy_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use verbatim — an allr.io redirect that preserves attribution."
          },
          "domestic": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true when the retailer sells domestically in `country` (no import duty)."
          },
          "in_stock": {
            "type": "boolean"
          },
          "retailer": {
            "type": "string"
          },
          "shipping": {
            "type": [
              "number",
              "null"
            ]
          },
          "tax_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "colorways": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Colorways this offer covers (display names, as the product page shows them). Narrowed to the requested colorway when `colorway` was given."
          },
          "condition": {
            "type": [
              "string",
              "null"
            ],
            "description": "null = new. Otherwise 'Open Box', 'Blemished', 'B-Stock', 'Refurbished' or 'Discontinued'. ALLR shows at most one offer per (retailer, condition)."
          },
          "item_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "observed_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "When ALLR last saw this offer."
          },
          "retailer_id": {
            "type": "string"
          },
          "landed_total": {
            "type": [
              "number",
              "null"
            ],
            "description": "Item + shipping + duty + tax in `currency`. null when the retailer cannot ship to this country."
          },
          "sizes_listed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Every size the retailer lists for this offer, in stock or not, across all of its colorways. This is a LISTING-level array and says nothing per colorway — use availability_by_colorway for that."
          },
          "free_shipping": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "foreign_currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "retailer_country": {
            "type": [
              "string",
              "null"
            ]
          },
          "ships_to_country": {
            "type": "boolean"
          },
          "availability_note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Set only when `availability_by_colorway` is null — the reason ALLR cannot break this offer's stock down by colorway."
          },
          "matched_colorways": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "When `colorway` and/or `size` was requested: exactly the colorways of this offer that satisfied the request (for a size filter, the colorways that have that size). null when no such filter was applied."
          },
          "list_price_foreign": {
            "type": [
              "number",
              "null"
            ],
            "description": "The retailer's own price in its own currency, before conversion."
          },
          "shipping_estimated": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true when the shipping figure is ALLR's estimate rather than a retailer-quoted rate."
          },
          "availability_by_colorway": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "required": [
                "colorway",
                "sizes_in_stock"
              ],
              "properties": {
                "colorway": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Colorway display name; null only when the retailer names no colorway."
                },
                "sizes_in_stock": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Sizes in stock IN THIS COLORWAY at this retailer."
                }
              }
            },
            "description": "Per-colorway stock: one row per colorway, each carrying ONLY that colorway's in-stock sizes. Never union these rows — a size present in one colorway is not available in another. An EMPTY sizes_in_stock means that colorway has nothing in stock at this retailer. null means ALLR cannot attribute sizes to colorways for this offer at all; `availability_note` then says why, and no size may be stated for this offer."
          }
        }
      }
    },
    "country": {
      "type": "string"
    },
    "product": {
      "type": "object",
      "required": [
        "id",
        "name",
        "url"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "brand": {
          "type": [
            "string",
            "null"
          ]
        },
        "category": {
          "type": [
            "string",
            "null"
          ]
        },
        "colorways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Colorway names ALLR recognises for this product."
        },
        "image_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "redirected_from": {
          "type": [
            "string",
            "null"
          ],
          "description": "Set when the requested id was a merged duplicate and was followed to this canonical product."
        }
      }
    },
    "currency": {
      "type": "string"
    },
    "offer_count": {
      "type": "integer"
    }
  },
  "additionalProperties": false
}
get_product_offers annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_deals — Current motorcycle gear price drops
Advertised by the server during the last successful anonymous check.
Advertised read-only

List motorcycle gear currently discounted on ALLR, with the same filters the site's Hot Deals board uses. Two boards: the default MSRP board (price below manufacturer list) and mode='retailer' (only deals where the store cut its OWN advertised price, ranked by that store's percentage). Returns the discounted landed price for the buyer country, the percentage off, the retailer featuring it and the allr.io product URL.

get_deals input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "enum": [
        "msrp",
        "retailer"
      ],
      "type": "string",
      "default": "msrp",
      "description": "'msrp' (default) = below manufacturer list price. 'retailer' = the store cut its own advertised price."
    },
    "size": {
      "type": "string",
      "maxLength": 20,
      "description": "Normalized size label ('XL', '44') — keeps only deals whose featured offer has that size in stock."
    },
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum deals to return (1-50)."
    },
    "country": {
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "type": "string",
      "default": "US",
      "description": "Buyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + VAT. ALLR computes landed cost for these four markets only. ASK the rider rather than guessing."
    },
    "category": {
      "type": "string",
      "maxLength": 40,
      "description": "Catalog category slug from list_categories_and_brands (e.g. 'helmets', 'jackets')."
    },
    "retailer": {
      "type": "string",
      "maxLength": 40,
      "description": "Retailer id — keeps only deals this retailer can fill, and features ITS price."
    },
    "subcategory": {
      "type": "string",
      "maxLength": 40,
      "description": "Helmet/riding-shirt subtype slug. Only meaningful together with `category`."
    },
    "min_discount_pct": {
      "enum": [
        10,
        20,
        30,
        40
      ],
      "type": "integer",
      "description": "Minimum percentage off."
    }
  },
  "additionalProperties": false
}
get_deals output schema
{
  "type": "object",
  "required": [
    "country",
    "currency",
    "mode",
    "total_matches",
    "results_capped",
    "as_of",
    "deals"
  ],
  "properties": {
    "mode": {
      "type": "string"
    },
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "deals": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Discounted landed price in `currency`."
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "in_stock": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "retailer": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "was_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "discount_pct": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      }
    },
    "country": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "computed_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When ALLR last recomputed the deals pool."
    },
    "total_matches": {
      "type": "integer",
      "description": "Deals in the current pool matching these filters. Honest for the pool as computed — but see `results_capped`."
    },
    "results_capped": {
      "type": "boolean",
      "description": "True when ALLR's deals pool was itself truncated when it was last computed, so `total_matches` is a floor rather than the complete count."
    }
  },
  "additionalProperties": false
}
get_deals annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_size_recommendation — Recommend a size from body measurements
Advertised by the server during the last successful anonymous check.
Advertised read-only

Recommend a size for a specific product (or a brand + category) from the rider's body measurements, using the manufacturer's own published size chart — the same charts and the same matcher the ALLR product page uses. Measurements are in CENTIMETRES: head circumference for helmets, chest for jackets/suits, hand circumference for gloves, foot length for boots. Returns the recommended label with its EU/US/UK equivalents, how snug it falls, and a link to the brand's official chart. When no chart exists for the brand+category, or the needed measurement is missing, it says so rather than guessing.

get_size_recommendation input schema
{
  "type": "object",
  "properties": {
    "brand": {
      "type": "string",
      "maxLength": 60,
      "description": "Brand name, e.g. 'AGV', 'Alpinestars'. Required when `product_id` is omitted."
    },
    "foot_cm": {
      "type": "number",
      "maximum": 40,
      "minimum": 18,
      "description": "Foot length in cm (boots)."
    },
    "hand_cm": {
      "type": "number",
      "maximum": 40,
      "minimum": 10,
      "description": "Hand circumference in cm (gloves)."
    },
    "head_cm": {
      "type": "number",
      "maximum": 80,
      "minimum": 40,
      "description": "Head circumference in cm (helmets)."
    },
    "category": {
      "type": "string",
      "maxLength": 60,
      "description": "Product category, e.g. 'Full-Face Helmet', 'Leather Jacket', 'Boots', 'Gloves'. Required when `product_id` is omitted."
    },
    "chest_cm": {
      "type": "number",
      "maximum": 180,
      "minimum": 60,
      "description": "Chest circumference in cm (jackets, suits)."
    },
    "known_size": {
      "type": "string",
      "maxLength": 12,
      "description": "A size the rider already wears in this brand+category ('L', 'EU 44'), used when no measurement is given."
    },
    "product_id": {
      "type": "string",
      "maxLength": 220,
      "description": "ALLR product id or /product/ URL. Supplies the brand, category and model so the right chart variant is picked. Provide this OR both `brand` and `category`."
    }
  },
  "additionalProperties": false
}
get_size_recommendation output schema
{
  "type": "object",
  "required": [
    "as_of"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "brand": {
      "type": [
        "string",
        "null"
      ]
    },
    "needs": {
      "type": [
        "string",
        "null"
      ],
      "description": "Set when a chart exists but the required input is missing — the label of the measurement to ask the rider for."
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "product_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "recommended": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "eu": {
          "type": [
            "string",
            "null"
          ]
        },
        "uk": {
          "type": [
            "string",
            "null"
          ]
        },
        "us": {
          "type": [
            "string",
            "null"
          ]
        },
        "fit": {
          "type": [
            "string",
            "null"
          ],
          "description": "How the measurement sits in the band — e.g. 'snug', 'roomy', 'from-size'."
        },
        "label": {
          "type": [
            "string",
            "null"
          ],
          "description": "The brand's own size label, e.g. 'L', 'MS'."
        },
        "chart_url": {
          "type": [
            "string",
            "null"
          ],
          "description": "The manufacturer's own published size chart."
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ]
        },
        "measure_used": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  },
  "additionalProperties": false
}
get_size_recommendation annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_categories_and_brands — List ALLR categories and brands
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the catalog categories and the brands ALLR tracks, with the exact slugs the `category` and `brand` filters on search_gear and get_deals expect. Call this first when you are about to filter, so a filter value is grounded in the catalog rather than guessed. Cheap and static — it reads bundled catalog metadata, not the live price data.

list_categories_and_brands input schema
{
  "type": "object",
  "properties": {
    "brand_query": {
      "type": "string",
      "maxLength": 60,
      "description": "Return only brands whose name or slug contains this text (case-insensitive)."
    },
    "include_brands": {
      "type": "boolean",
      "default": true,
      "description": "Include the brand list (a few hundred entries). Set false for categories only."
    }
  },
  "additionalProperties": false
}
list_categories_and_brands output schema
{
  "type": "object",
  "required": [
    "categories",
    "brand_count",
    "countries"
  ],
  "properties": {
    "brands": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "name",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "allr.io brand page."
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string",
            "description": "Pass as `brand`."
          }
        }
      }
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Buyer countries ALLR computes landed cost for."
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "label"
        ],
        "properties": {
          "slug": {
            "type": "string",
            "description": "Pass as `category`."
          },
          "label": {
            "type": "string"
          },
          "includes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The raw product-category values this slug covers."
          }
        }
      }
    },
    "brand_count": {
      "type": "integer"
    }
  },
  "additionalProperties": false
}
list_categories_and_brands annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
834 ms
95th percentile latency
834 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 834 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http allr-motorcycle-gear-prices-mcp https://allr.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add allr-motorcycle-gear-prices-mcp --url https://allr.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable allr-motorcycle-gear-prices-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "allr-motorcycle-gear-prices-mcp": {
      "url": "https://allr.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "allr-motorcycle-gear-prices-mcp": {
      "type": "streamableHttp",
      "url": "https://allr.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start allr-motorcycle-gear-prices-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "allr-motorcycle-gear-prices-mcp": {
      "type": "http",
      "url": "https://allr.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http allr-motorcycle-gear-prices-mcp https://allr.io/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "allr-motorcycle-gear-prices-mcp": {
      "url": "https://allr.io/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "allr-motorcycle-gear-prices-mcp": {
      "serverUrl": "https://allr.io/mcp"
    }
  }
}

Let your agent find its tools

Find servers like ALLR Motorcycle Gear Prices MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.