<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Li David</title>
    <description>The latest articles on DEV Community by Li David (@li_david_596896744329c19a).</description>
    <link>https://dev.to/li_david_596896744329c19a</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4227534%2F8f9673ba-912c-4500-b686-53de6de97819.png</url>
      <title>DEV Community: Li David</title>
      <link>https://dev.to/li_david_596896744329c19a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/li_david_596896744329c19a"/>
    <language>en</language>
    <item>
      <title>A free MCP server and API for wheel fitment data (bolt pattern, center bore, offset)</title>
      <dc:creator>Li David</dc:creator>
      <pubDate>Thu, 05 Nov 2026 03:24:42 +0000</pubDate>
      <link>https://dev.to/li_david_596896744329c19a/a-free-mcp-server-and-api-for-wheel-fitment-data-bolt-pattern-center-bore-offset-g18</link>
      <guid>https://dev.to/li_david_596896744329c19a/a-free-mcp-server-and-api-for-wheel-fitment-data-bolt-pattern-center-bore-offset-g18</guid>
      <description>&lt;p&gt;Ask an LLM "what wheels fit a 2024 Tacoma?" and you will usually get a confident answer that is half right. The bolt pattern is easy to find. The center bore, the one that changed on this generation, is where models guess.&lt;/p&gt;

&lt;p&gt;We make custom forged wheels, so we keep a fitment table for our own production. We opened it up: a CSV dataset, a REST API and a remote MCP server, all free and without an API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is in the data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;10,093 vehicle variants, 174 makes, 56 bolt patterns (dataset version 2026.10.19)&lt;/li&gt;
&lt;li&gt;Bolt pattern (PCD), lug count, center bore (front and rear where they differ)&lt;/li&gt;
&lt;li&gt;Factory wheel size and offset, plus a "flush" and a "max" aftermarket size&lt;/li&gt;
&lt;li&gt;A source page for every row, CC BY 4.0, DOI 10.5281/zenodo.23280367&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use it from an MCP client
&lt;/h2&gt;

&lt;p&gt;The server speaks Streamable HTTP and needs no auth:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ankusi-wheel-fitment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://ankusiwheels.com/wp-json/ankusi/v1/mcp"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It exposes three read-only tools:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lookup_wheel_fitment&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;make + model (+ year) to bolt pattern, center bore, OE / flush / max wheel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;vehicles_by_bolt_pattern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;every vehicle on a given PCD, e.g. &lt;code&gt;5x120&lt;/code&gt;, optional make filter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list_makes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;the makes covered&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It is also in the official MCP Registry as &lt;code&gt;com.ankusiwheels/wheel-fitment&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Or call the REST API
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://ankusiwheels.com/wp-json/ankusi/v1/fitment?make=Toyota&amp;amp;model=Tacoma&amp;amp;year=2024"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trimmed response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dataset_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026.10.19"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CC BY 4.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Toyota Tacoma"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"year"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2024"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"bolt_pattern"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6x139.7"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"center_bore_mm"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"95.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"oe_wheel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"F/R 17x7.5J"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"flush_wheel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"18x8.0J ET30"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"max_wheel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"20x8.5J ET25"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is an OpenAPI 3 spec here: &lt;a href="https://ankusiwheels.com/wp-content/uploads/ankusi-feeds/openapi.json" rel="noopener noreferrer"&gt;https://ankusiwheels.com/wp-content/uploads/ankusi-feeds/openapi.json&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why center bore matters
&lt;/h2&gt;

&lt;p&gt;Grouping the dataset by bolt pattern shows how little the bolt pattern alone tells you:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bolt pattern&lt;/th&gt;
&lt;th&gt;Vehicles&lt;/th&gt;
&lt;th&gt;Distinct center bores&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5x114.3&lt;/td&gt;
&lt;td&gt;2,073&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5x112&lt;/td&gt;
&lt;td&gt;1,963&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5x120&lt;/td&gt;
&lt;td&gt;947&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6x139.7&lt;/td&gt;
&lt;td&gt;510&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Generation changes are the classic trap. The 2024 Tacoma kept 6x139.7 but its hub bore went from 106.1 mm to 95.1 mm. The C8 Corvette moved from 5x120.65 (C7) to metric 5x120. An assistant that only checks the PCD will say old wheels fit when they do not.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the values are checked
&lt;/h2&gt;

&lt;p&gt;Bolt pattern and center bore changes are only accepted when two independent references agree. Where sources conflict, the field is left blank rather than guessed, and every correction is logged in the changelog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dataset, CSV and JSON: &lt;a href="https://ankusiwheels.com/wheel-fitment-dataset/" rel="noopener noreferrer"&gt;https://ankusiwheels.com/wheel-fitment-dataset/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MCP docs: &lt;a href="https://ankusiwheels.com/wheel-fitment-mcp/" rel="noopener noreferrer"&gt;https://ankusiwheels.com/wheel-fitment-mcp/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;API docs: &lt;a href="https://ankusiwheels.com/wheel-fitment-api/" rel="noopener noreferrer"&gt;https://ankusiwheels.com/wheel-fitment-api/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/david025445/ankusi-wheel-fitment-data" rel="noopener noreferrer"&gt;https://github.com/david025445/ankusi-wheel-fitment-data&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build something with it, a link back to the dataset page is all the license asks for. Corrections are welcome.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>api</category>
      <category>opendata</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
