
Wheel Fitment API
io.github.driveatePublished by GitHub account driveatev0.7.1Updated Oct 24, 2026
Official MCP server for vehicle wheel and tire fitment data from wheel-size.com
Overview
Official Wheel Fitment API server that lets an assistant look up vehicle wheel and tire specs, check rim and tire compatibility, and build fitment product…
- What you can do
- Browse the vehicle catalog: makes, models, years, generations, trims and market regions
- Search OEM wheel and tire specs for a vehicle, or find vehicles that fit a given rim, metric tire or high-flotation tire
- Check in one call whether a specific rim or tire fits a given vehicle
- Calculate plus/minus upstep sizing options for a wheel or tire
- Build e-commerce product cards: tires for a rim, vehicles for a rim, tire or rim+tire package, with trim drill-down
- Read computed geometry, population stats and spec metadata, plus engine and powertrain blocks
- When to use it
- Useful when you need authoritative wheel and tire fitment answers: OEM specs for a specific car, reverse lookups of which vehicles fit a rim or tire, fitment checks, upstep sizing, or generating wheel product cards for a shop.
- Requirements
- Runs locally as a Python package (wheel-size-mcp) launched via uvx, or as a self-hosted HTTP service. Requires an API key from the provider, supplied in the WHEELSIZE_API_KEY environment variable, and network access to the Wheel Fitment API. Optional variables set the API base URL, transport, host and port.
Installation
In SourceWeft
- Open Wheel Fitment API in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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):
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
Or add to .mcp.json in your project root:
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):
Cursor
Add to .cursor/mcp.json in your project root:
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
Zed
Add to your Zed settings.json (Cmd+, → Open Settings):
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:
The MCP endpoint is served at http://127.0.0.1:8000/mcp/. Point HTTP-capable clients at it:
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
Search — fitment data
Classified — product cards for e-commerce
Utility
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.poweris 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.fuelis 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_vehiclereturns 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:
Environment Variables
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:
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
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.
Source: README.md at commit a755ea2
Tools
0Version history
2- v0.7.1LatestSep 17, 2026
- v0.6.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts