Wheel Fitment API

io.github.driveate由 GitHub 帳號 driveate 發布v0.7.1更新於 Oct 24, 2026

Official MCP server for vehicle wheel and tire fitment data from wheel-size.com

已驗證STDIO僅桌面位置與生活商業與電商

概覽

AI 產生的概覽

Wheel Fitment API 官方 MCP 伺服器,讓助理查詢車輛輪圈與輪胎規格、檢查輪圈輪胎適配性,並產生適配產品卡片。

可以做什麼
  • 瀏覽車輛目錄:廠牌、車型、年份、世代、車型等級與市場區域
  • 查詢某車款的原廠輪圈與輪胎規格,或反查適用某輪圈、公制輪胎或高浮力輪胎的車輛
  • 一次呼叫即可檢查指定輪圈或輪胎是否適用於某輛車
  • 計算輪圈或輪胎的加大/縮小升級尺寸方案
  • 產生電商產品卡片:某輪圈可搭配的輪胎、適用某輪圈/輪胎/輪圈輪胎套裝的車輛,並可下鑽到車型等級
  • 讀取規格的計算幾何、樣本統計與中繼資料,以及引擎和動力系統資訊
適用情境
需要權威的輪圈輪胎適配答案時使用:某款車的原廠規格、反查哪些車適用某輪圈或輪胎、適配性檢查、升級尺寸計算,或為店家產生輪圈產品卡片。
執行需求
以本機 Python 套件(wheel-size-mcp)透過 uvx 啟動,或自行架設 HTTP 服務執行。需要向服務商申請的 API key,透過環境變數 WHEELSIZE_API_KEY 提供,並需能連線至 Wheel Fitment API。選用環境變數可設定 API 位址、傳輸方式、主機與連接埠。
安裝前請注意
API key 是會消耗額度的憑證:自行架設的 HTTP 連接埠若可被他人連線,會消耗你的額度,應只綁定本機或置於具驗證機制的反向代理之後。依 API 使用條款,搜尋類與分類類工具必須由真實使用者發起,不得用於自主迴圈或大量資料產生。查詢內容與車輛資料會傳送至服務商的 API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Wheel Fitment API,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

wheel-size-mcp

The official MCP server for the Wheel Fitment API — built and maintained by Wheel-Size.com, the API provider. Gives LLM agents access to vehicle wheel and tire compatibility data.

Ask your AI assistant things like:

  • "What are the OEM wheel specs for a 2024 Toyota Camry?"
  • "Which vehicles fit 5x114.3 18x8 ET35 rims?"
  • "Calculate plus-size options for 225/50R17 on 7Jx17 ET40"
  • "Generate a product card for this wheel showing all compatible vehicles"

Quick Start

1. Get an API key

Sign up at developer.wheel-size.com and copy your API key.

2. Set the API key in your shell

Add to your ~/.zshrc (or ~/.bashrc):

bash
export WHEELSIZE_API_KEY="your-api-key-here"

Then reload your shell: source ~/.zshrc

3. Add to your AI client

Choose your client below — each config block is copy-paste ready.

Claude Code
bash
claude mcp add wheel-size-api -- uvx wheel-size-mcp

Or add to .mcp.json in your project root:

json
{  "mcpServers": {    "wheel-size-api": {      "command": "uvx",      "args": ["wheel-size-mcp"],      "env": {        "WHEELSIZE_API_KEY": "${WHEELSIZE_API_KEY}"      }    }  }}
Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "wheel-size-api": {      "command": "uvx",      "args": ["wheel-size-mcp"],      "env": {        "WHEELSIZE_API_KEY": "your-api-key-here"      }    }  }}
Cursor

Add to .cursor/mcp.json in your project root:

json
{  "mcpServers": {    "wheel-size-api": {      "command": "uvx",      "args": ["wheel-size-mcp"],      "env": {        "WHEELSIZE_API_KEY": "your-api-key-here"      }    }  }}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "wheel-size-api": {      "command": "uvx",      "args": ["wheel-size-mcp"],      "env": {        "WHEELSIZE_API_KEY": "your-api-key-here"      }    }  }}
Zed

Add to your Zed settings.json (Cmd+, → Open Settings):

json
{  "context_servers": {    "wheel-size-api": {      "command": {        "path": "uvx",        "args": ["wheel-size-mcp"],        "env": {          "WHEELSIZE_API_KEY": "your-api-key-here"        }      }    }  }}

4. Restart your client

The MCP server starts automatically when the client launches.

Remote Server (Streamable HTTP)

Besides stdio, the server can run as a standalone HTTP service — useful for hosting one shared instance instead of installing Python on every machine:

bash
wheel-size-mcp --transport http --port 8000

The MCP endpoint is served at http://127.0.0.1:8000/mcp/. Point HTTP-capable clients at it:

json
{  "mcpServers": {    "wheel-size-api": {      "url": "http://127.0.0.1:8000/mcp/"    }  }}

Security: the server binds to 127.0.0.1 by default. The WHEELSIZE_API_KEY lives on the server side, so anyone who can reach the port consumes your API quota — expose it beyond localhost (--host 0.0.0.0) only behind a reverse proxy that handles authentication.

Available Tools (22)

Catalog — vehicle lookup

ToolDescription
ws_list_makesList all manufacturers. Start here.
ws_list_modelsModels for a make (e.g. Toyota → Camry, Corolla…).
ws_list_yearsAvailable years for a make/model.
ws_list_generationsGenerations for a make/model (alternative to years).
ws_list_modificationsTrims for a specific vehicle (e.g. 2.0i, 3.0 V6…).
ws_list_regionsMarket regions (USDM, EUDM, JDM…).

Search — fitment data

ToolDescription
ws_search_by_vehicleOEM wheel/tire specs for a vehicle. Requires modification or region, plus year or generation (unless modification is given).
ws_search_by_rimFind vehicles compatible with a rim (exact specs or min/max ranges).
ws_search_by_tireFind vehicles by metric tire size, with speed/load/staggered filters and refinement facets.
ws_search_by_hf_tireFind vehicles by high-flotation (LT) inch size (e.g. 31x10.50R15).
ws_check_rim_fitment_for_vehicle"Will these rims fit my 2020 Civic?" — one-call fitment check.
ws_check_tire_fitment_for_vehicleSame for a metric tire size.
ws_check_hf_tire_fitment_for_vehicleSame for a high-flotation tire size.
ws_calculate_upstepsPlus/minus sizing calculator: asymmetric diameter range (steps_min/steps_max), per-diameter counts, width/diameter tolerances.

Classified — product cards for e-commerce

ToolDescription
ws_find_tires_for_rimCompatible tire sizes for a rim spec.
ws_find_vehicles_for_rimVehicles that fit a given rim (geometric 2D filtering).
ws_find_vehicle_modifications_for_rimDrill down into trims for a specific generation.
ws_find_vehicles_for_tireVehicles that use a specific tire size.
ws_find_vehicle_modifications_for_tireDrill down into trims for a generation that uses the tire.
ws_find_vehicles_for_packageVehicles compatible with a rim + tire combo.
ws_find_vehicle_modifications_for_packageDrill down into trims for a rim + tire package.

Utility

ToolDescription
ws_get_spec_metadataComputed geometry, population stats, and intelligence hints for any spec.

Engine and Powertrain Data

Since the API release of 2026-09-15, every modification row returned by ws_list_modifications, ws_search_by_vehicle and the ws_check_*_fitment_for_vehicle tools carries two sibling blocks:

  • engine — the legacy block {fuel, capacity, type, power, code}, unchanged. engine.power is the headline figure whose source depends on the electrification level (combustion engine for combustion-only cars and mild hybrids, system power for full/plug-in hybrids and EVs). engine.fuel is a display string; group and filter on the powertrain fuel codes instead.
  • powertrain — combustion_engine, electrification_level, primary_fuel, secondary_fuel, engine_power, system_power, engine_power_secondary, motors. ws_search_by_vehicle returns the block as the API sends it ({kW, PS, hp} power objects, {code, title} fuel refs); the list and fitment-check tools return a compact summary (hp figures, fuel codes, motors [{axle, hp, code}]) to stay within token limits.

Absence words in enums and fuel codes are data, not errors: not_applicable (cannot apply — a BEV has no engine), not_reported (applies, not recorded yet), unknown (neither electrification tier nor fuel recorded). engine_power is the combustion engine alone and is the figure most other vehicle-data providers publish as "power" (on bi-fuel vehicles it may still be the higher of the engine's two ratings while engine_power_secondary is being filled in); system_power is the manufacturer-declared total of the whole powertrain, normally null outside full/plug-in hybrids and EVs with a motor on each axle, and must never be reconstructed by adding engine and motor figures.

The fuel filter of ws_list_modifications takes fuel codes (biodiesel_blend, cng, diesel, e100, electric, ethanol_blend, flex_fuel, h2, hybrid, lpg, petrol, petrol_cng, petrol_lpg); one value matches the legacy engine.fuel, the primary fuel or the secondary fuel, and a real code read from powertrain.primary_fuel / secondary_fuel can be passed straight back. Older spellings such as natural-gas are still accepted; the absence words (not_applicable, not_reported, unknown) and anything else are a 400 error.

MCP Prompts

Pre-built workflow prompts that guide LLM agents through multi-step operations:

PromptDescription
vehicle_fitment_lookupComplete catalog→search chain for a vehicle description
rim_compatibility_checkMetadata→classified flow for rim compatibility
product_card_generationE-commerce product card workflow for wheels/packages

Environment Variables

VariableRequiredDefaultDescription
WHEELSIZE_API_KEYYes—API key from developer.wheel-size.com
API_BASE_URLNohttps://api.wheel-size.comAPI base URL
API_HOST_HEADERNo—Host header override (only needed for local Docker routing)
MCP_TRANSPORTNostdiostdio or http (same as --transport)
MCP_HOSTNo127.0.0.1Bind address for http transport (same as --host)
MCP_PORTNo8000Port for http transport (same as --port)

API Terms of Service

Search tools (ws_search_by_vehicle, ws_search_by_rim, ws_search_by_tire, ws_search_by_hf_tire, the ws_check_*_fitment_for_vehicle checks) and classified tools (ws_find_*) must be initiated by real users per API Terms of Usage. Do not call them in autonomous agent loops or for bulk data generation. Catalog tools, utility tools and ws_calculate_upsteps have no such restriction.

Evals

tests/test_questions.json contains 89 natural-language questions across 12 categories (catalog navigation, fitment lookups, reverse searches, fitment checks, upstep calculation, e-commerce product cards, spec metadata, multi-step workflows, edge cases, tool selection). Each entry includes expected_tools, optional expected_params / expected_params_search, and a free-text tests note.

evals/run_evals.py feeds these questions to a real Claude model with the MCP tools attached, records which tools it calls with which parameters, and grades them against the expectations — catching regressions in tool descriptions and server instructions:

bash
# needs ANTHROPIC_API_KEY and a reachable Wheel Fitment API; costs moneyuv sync --group evalsuv run --group evals python evals/run_evals.py                  # all questionsuv run --group evals python evals/run_evals.py -n 10            # smoke runuv run --group evals python evals/run_evals.py --category catalog_flowuv run --group evals python evals/run_evals.py --json report.json --min-pass 0.8

Grading is deterministic (no LLM judge): every expected tool must be called (multiset — repeats counted, extra navigation calls allowed), and some single call must carry the expected parameters. Questions without machine-checkable expectations are reported as SKIP and excluded from the pass rate. The default model is pinned (claude-sonnet-5) so pass-rate history stays comparable; override with --model.

The eval runner is not part of pytest or CI — it bills the Anthropic API. The grading logic itself is unit-tested in CI (tests/test_eval_grading.py). ToS note: every question simulates a user-initiated request, so the search-tool restriction is respected.

Development

bash
# Install dev dependenciesuv sync --dev
# Unit tests (no API needed — this is what CI runs)uv run pytest -m "not integration"
# Full test suite (requires a private API instance, see note below)uv run pytest
# Lintuv run ruff check .
# Run server (stdio)wheel-size-mcp

Note on tests: integration tests run against a private test instance of the API and auto-skip when it is unreachable. External contributors should rely on the unit suite (pytest -m "not integration"), which mocks all HTTP and is what CI runs on every push and pull request.

來源:README.md,提交 a755ea2

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.7.1最新Sep 17, 2026
  2. v0.6.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分