ALLR Motorcycle Gear Prices

Compare motorcycle gear prices by landed cost (price, shipping, duty, tax) for CA, US, EU and UK.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
94%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,768token 数(工具定义)
~10.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.72%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "allr": {
      "url": "https://allr.io/mcp"
    }
  }
}

远程端点

https://allr.io/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢search_gear(query, country, brand, category, gender, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Free-text search, e.g. 'agv k6', 'waterproof adventure jacket', 'alpinestars smx-6 boots'. Brand names, model names and model numbers all work."
    },
    "country": {
      "type": "string",
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "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."
    },
    "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."
    },
    "category": {
      "type": "string",
      "maxLength": 40,
      "description": "Restrict to a catalog category. Use a `slug` from list_categories_and_brands (e.g. 'helmets', 'jackets', 'boots')."
    },
    "gender": {
      "type": "string",
      "enum": [
        "mens",
        "womens",
        "unisex",
        "kids"
      ],
      "description": "Restrict to products cut for this rider group, using ALLR's own gender classifier."
    },
    "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."
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "Lowest acceptable landed price in the country's currency."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Highest acceptable landed price in the country's currency."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10,
      "description": "Maximum products to return (1-25)."
    },
    "cursor": {
      "type": "string",
      "maxLength": 40,
      "description": "Opaque pagination cursor from a previous call's `next_cursor`. Omit for the first page."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "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."
    },
    "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."
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ],
      "description": "Pass as `cursor` for the next page; null when there are no more."
    },
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ALLR product id — pass to get_product_offers."
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "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."
          },
          "lowest_landed_price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Cheapest landed total (item + shipping + duty + VAT) in `currency`, or null when no retailer currently prices it."
          },
          "currency": {
            "type": "string"
          },
          "offer_count": {
            "type": "integer",
            "description": "Retailers carrying this product."
          },
          "in_stock_offer_count": {
            "type": "integer"
          },
          "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."
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string",
            "description": "Canonical allr.io product page. Cite this."
          }
        },
        "required": [
          "id",
          "name",
          "currency",
          "offer_count",
          "url"
        ]
      }
    }
  },
  "required": [
    "query",
    "country",
    "currency",
    "ranked_match_count",
    "results_capped",
    "as_of",
    "results"
  ],
  "additionalProperties": false
}
🟢get_product_offers(product_id, country, colorway, size, include_out_of_stock, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 220,
      "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."
    },
    "country": {
      "type": "string",
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "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."
    },
    "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."
    },
    "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."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 40,
      "default": 40,
      "description": "Maximum offers to return (1-40)."
    }
  },
  "required": [
    "product_id"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "brand": {
          "type": [
            "string",
            "null"
          ]
        },
        "category": {
          "type": [
            "string",
            "null"
          ]
        },
        "image_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "type": "string"
        },
        "colorways": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Colorway names ALLR recognises for this product."
        },
        "redirected_from": {
          "type": [
            "string",
            "null"
          ],
          "description": "Set when the requested id was a merged duplicate and was followed to this canonical product."
        }
      },
      "required": [
        "id",
        "name",
        "url"
      ]
    },
    "country": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    },
    "offer_count": {
      "type": "integer"
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "retailer": {
            "type": "string"
          },
          "retailer_id": {
            "type": "string"
          },
          "retailer_country": {
            "type": [
              "string",
              "null"
            ]
          },
          "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)."
          },
          "in_stock": {
            "type": "boolean"
          },
          "landed_total": {
            "type": [
              "number",
              "null"
            ],
            "description": "Item + shipping + duty + tax in `currency`. null when the retailer cannot ship to this country."
          },
          "item_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "shipping": {
            "type": [
              "number",
              "null"
            ]
          },
          "duty": {
            "type": [
              "number",
              "null"
            ]
          },
          "tax": {
            "type": [
              "number",
              "null"
            ]
          },
          "tax_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "free_shipping": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shipping_estimated": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true when the shipping figure is ALLR's estimate rather than a retailer-quoted rate."
          },
          "list_price_foreign": {
            "type": [
              "number",
              "null"
            ],
            "description": "The retailer's own price in its own currency, before conversion."
          },
          "foreign_currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "domestic": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true when the retailer sells domestically in `country` (no import duty)."
          },
          "ships_to_country": {
            "type": "boolean"
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Human-readable caveat, e.g. 'Does not ship to CA'."
          },
          "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."
          },
          "availability_by_colorway": {
            "type": [
              "array",
              "null"
            ],
            "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.",
            "items": {
              "type": "object",
              "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."
                }
              },
              "required": [
                "colorway",
                "sizes_in_stock"
              ]
            }
          },
          "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."
          },
          "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."
          },
          "observed_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "When ALLR last saw this offer."
          },
          "buy_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use verbatim — an allr.io redirect that preserves attribution."
          }
        },
        "required": [
          "retailer",
          "retailer_id",
          "in_stock",
          "ships_to_country",
          "colorways",
          "availability_by_colorway"
        ]
      }
    }
  },
  "required": [
    "product",
    "country",
    "currency",
    "as_of",
    "offer_count",
    "offers"
  ],
  "additionalProperties": false
}
🟢get_deals(country, category, subcategory, retailer, size, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "CA",
        "US",
        "EU",
        "UK"
      ],
      "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')."
    },
    "subcategory": {
      "type": "string",
      "maxLength": 40,
      "description": "Helmet/riding-shirt subtype slug. Only meaningful together with `category`."
    },
    "retailer": {
      "type": "string",
      "maxLength": 40,
      "description": "Retailer id — keeps only deals this retailer can fill, and features ITS price."
    },
    "size": {
      "type": "string",
      "maxLength": 20,
      "description": "Normalized size label ('XL', '44') — keeps only deals whose featured offer has that size in stock."
    },
    "min_discount_pct": {
      "type": "integer",
      "enum": [
        10,
        20,
        30,
        40
      ],
      "description": "Minimum percentage off."
    },
    "mode": {
      "type": "string",
      "enum": [
        "msrp",
        "retailer"
      ],
      "default": "msrp",
      "description": "'msrp' (default) = below manufacturer list price. 'retailer' = the store cut its own advertised price."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Maximum deals to return (1-50)."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "mode": {
      "type": "string"
    },
    "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."
    },
    "computed_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When ALLR last recomputed the deals pool."
    },
    "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",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Discounted landed price in `currency`."
          },
          "was_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "discount_pct": {
            "type": [
              "number",
              "null"
            ]
          },
          "retailer": {
            "type": [
              "string",
              "null"
            ]
          },
          "in_stock": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ]
      }
    }
  },
  "required": [
    "country",
    "currency",
    "mode",
    "total_matches",
    "results_capped",
    "as_of",
    "deals"
  ],
  "additionalProperties": false
}
🟢get_size_recommendation(product_id, brand, category, head_cm, chest_cm, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "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`."
    },
    "brand": {
      "type": "string",
      "maxLength": 60,
      "description": "Brand name, e.g. 'AGV', 'Alpinestars'. Required when `product_id` is omitted."
    },
    "category": {
      "type": "string",
      "maxLength": 60,
      "description": "Product category, e.g. 'Full-Face Helmet', 'Leather Jacket', 'Boots', 'Gloves'. Required when `product_id` is omitted."
    },
    "head_cm": {
      "type": "number",
      "minimum": 40,
      "maximum": 80,
      "description": "Head circumference in cm (helmets)."
    },
    "chest_cm": {
      "type": "number",
      "minimum": 60,
      "maximum": 180,
      "description": "Chest circumference in cm (jackets, suits)."
    },
    "hand_cm": {
      "type": "number",
      "minimum": 10,
      "maximum": 40,
      "description": "Hand circumference in cm (gloves)."
    },
    "foot_cm": {
      "type": "number",
      "minimum": 18,
      "maximum": 40,
      "description": "Foot length in cm (boots)."
    },
    "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."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "brand": {
      "type": [
        "string",
        "null"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "product_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "recommended": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "label": {
          "type": [
            "string",
            "null"
          ],
          "description": "The brand's own size label, e.g. 'L', 'MS'."
        },
        "eu": {
          "type": [
            "string",
            "null"
          ]
        },
        "us": {
          "type": [
            "string",
            "null"
          ]
        },
        "uk": {
          "type": [
            "string",
            "null"
          ]
        },
        "fit": {
          "type": [
            "string",
            "null"
          ],
          "description": "How the measurement sits in the band — e.g. 'snug', 'roomy', 'from-size'."
        },
        "measure_used": {
          "type": [
            "string",
            "null"
          ]
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ]
        },
        "chart_url": {
          "type": [
            "string",
            "null"
          ],
          "description": "The manufacturer's own published size chart."
        }
      }
    },
    "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."
    },
    "as_of": {
      "type": "string",
      "description": "ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."
    }
  },
  "required": [
    "as_of"
  ],
  "additionalProperties": false
}
🟢list_categories_and_brands(include_brands, brand_query)

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.

输入模式

{
  "type": "object",
  "properties": {
    "include_brands": {
      "type": "boolean",
      "default": true,
      "description": "Include the brand list (a few hundred entries). Set false for categories only."
    },
    "brand_query": {
      "type": "string",
      "maxLength": 60,
      "description": "Return only brands whose name or slug contains this text (case-insensitive)."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "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."
          }
        },
        "required": [
          "slug",
          "label"
        ]
      }
    },
    "brands": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Pass as `brand`."
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "allr.io brand page."
          }
        },
        "required": [
          "slug",
          "name",
          "url"
        ]
      }
    },
    "brand_count": {
      "type": "integer"
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Buyer countries ALLR computes landed cost for."
    }
  },
  "required": [
    "categories",
    "brand_count",
    "countries"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具