We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/keptlive/vin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VIN Decoder — mcp.vin</title>
<meta name="description" content="Free VIN decoder — decode any vehicle by VIN number. Safety ratings, recalls, complaints, fuel economy, photos. Also available as an MCP server for Claude.">
<meta name="theme-color" content="#6366f1">
<link rel="canonical" href="https://mcp.vin">
<!-- Open Graph -->
<meta property="og:title" content="mcp.vin — Free VIN Decoder & MCP Server">
<meta property="og:description" content="Free VIN decoder — decode any vehicle by VIN number. Safety ratings, recalls, complaints, fuel economy, photos. Also available as an MCP server for Claude.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://mcp.vin">
<meta property="og:image" content="https://mcp.vin/og-image.png">
<meta property="og:site_name" content="mcp.vin">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="mcp.vin — Free VIN Decoder & MCP Server">
<meta name="twitter:description" content="Free VIN decoder — decode any vehicle by VIN number. Safety ratings, recalls, complaints, fuel economy, photos. Also available as an MCP server for Claude.">
<meta name="twitter:image" content="https://mcp.vin/og-image.png">
<!-- Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "mcp.vin",
"description": "Free VIN decoder",
"url": "https://mcp.vin",
"applicationCategory": "UtilitiesApplication",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"operatingSystem": "Any"
}
</script>
<link rel="stylesheet" href="style.css?v=2">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
</head>
<body>
<!-- User area -->
<div id="user-area" class="user-area">
<button id="login-btn" class="login-btn">Log In</button>
<div id="user-menu" class="user-menu" hidden>
<span id="user-email" class="user-email"></span>
<button id="my-vins-btn" class="user-menu-item">My VINs</button>
<button id="settings-btn" class="user-menu-item">Settings</button>
<button id="logout-btn" class="user-menu-item logout">Log Out</button>
</div>
</div>
<!-- Auth Modal -->
<div id="auth-modal" class="modal-overlay" hidden>
<div class="modal">
<button class="modal-close" id="auth-close">×</button>
<h2 class="modal-logo">mcp<span class="dot">.</span>vin</h2>
<div class="modal-tabs">
<button class="modal-tab active" data-tab="login">Log In</button>
<button class="modal-tab" data-tab="register">Sign Up</button>
</div>
<form id="login-form" class="modal-form">
<input type="email" id="login-email" placeholder="Email" required autocomplete="email">
<input type="password" id="login-password" placeholder="Password" required autocomplete="current-password">
<button type="submit" class="modal-submit">Log In</button>
<div class="form-error" id="login-error" hidden></div>
</form>
<form id="register-form" class="modal-form" hidden>
<input type="email" id="reg-email" placeholder="Email" required autocomplete="email">
<input type="text" id="reg-name" placeholder="Display name (optional)" autocomplete="name">
<input type="password" id="reg-password" placeholder="Password (min 8 chars)" required minlength="8" autocomplete="new-password">
<button type="submit" class="modal-submit">Create Account</button>
<div class="form-error" id="reg-error" hidden></div>
</form>
</div>
</div>
<!-- Settings Modal -->
<div id="settings-modal" class="modal-overlay" hidden>
<div class="modal modal-settings">
<button class="modal-close" id="settings-close">×</button>
<h2 class="modal-title">Report Settings</h2>
<p class="modal-desc">Choose which sections appear in VIN reports.</p>
<div class="settings-toggles" id="settings-toggles">
<label class="toggle-row"><input type="checkbox" data-pref="show_overview" checked><span>Vehicle Overview</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_engine" checked><span>Engine & Drivetrain</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_safety_ratings" checked><span>Safety Ratings</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_fuel_economy" checked><span>Fuel Economy</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_recalls" checked><span>Recalls</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_complaints" checked><span>Consumer Complaints</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_safety_equipment" checked><span>Safety Equipment</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_photos" checked><span>Vehicle Photos</span></label>
<label class="toggle-row"><input type="checkbox" data-pref="show_raw_nhtsa"><span>Raw NHTSA Data</span></label>
</div>
</div>
</div>
<!-- Landing / Input -->
<header id="hero">
<div class="hero-inner">
<h1 class="logo">mcp<span class="dot">.</span>vin</h1>
<p class="tagline">Free VIN decoder — NHTSA, EPA, safety ratings, recalls & more</p>
<form id="vin-form" autocomplete="off" toolname="decode_vin" tooldescription="Decode a Vehicle Identification Number to get make, model, year, safety ratings, recalls, complaints, fuel economy, and photos">
<div class="input-row">
<input
id="vin-input"
type="text"
maxlength="17"
placeholder="Enter 17-character VIN"
spellcheck="false"
autocapitalize="characters"
aria-label="Vehicle Identification Number"
>
<button id="decode-btn" type="submit">
<span class="btn-text">Decode</span>
<span class="btn-spinner" hidden></span>
</button>
</div>
<div id="input-error" class="input-error" hidden></div>
<p class="example">Try: <a href="#" data-vin="1HGCM82633A004352">1HGCM82633A004352</a> (2003 Honda Accord)</p>
</form>
</div>
</header>
<!-- Results -->
<main id="results" hidden>
<!-- Vehicle Hero -->
<section id="vehicle-hero" class="vehicle-hero">
<div class="hero-photos">
<img id="photo-main" class="photo-main" alt="Vehicle photo" loading="lazy">
<div class="photo-thumbs" id="photo-thumbs"></div>
</div>
<div class="hero-info">
<h2 id="vehicle-title" class="vehicle-title"></h2>
<div id="vin-display" class="vin-display"></div>
<div id="hero-badges" class="hero-badges"></div>
<button id="save-vin-btn" class="save-vin-btn" hidden>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z"/></svg>
<span id="save-vin-text">Save</span>
</button>
</div>
</section>
<!-- Info Cards Grid -->
<div class="cards-grid">
<!-- Overview -->
<section class="card" id="card-overview">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
Vehicle Overview
</h3>
<div class="card-body" id="overview-body"></div>
</section>
<!-- Engine -->
<section class="card" id="card-engine">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"/></svg>
Engine & Drivetrain
</h3>
<div class="card-body" id="engine-body"></div>
</section>
<!-- Safety Ratings -->
<section class="card" id="card-safety-ratings">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>
Safety Ratings
</h3>
<div class="card-body" id="safety-ratings-body"></div>
</section>
<!-- Fuel Economy -->
<section class="card" id="card-fuel">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 22V8l4-6h6l4 6v14"/><path d="M17 12h2a2 2 0 012 2v4"/><rect x="5" y="12" width="8" height="5" rx="1"/><path d="M6 2h8"/></svg>
Fuel Economy
</h3>
<div class="card-body" id="fuel-body"></div>
</section>
<!-- Recalls -->
<section class="card card-wide" id="card-recalls">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
Recalls
<span id="recall-count" class="count-badge"></span>
</h3>
<div class="card-body" id="recalls-body"></div>
</section>
<!-- Complaints -->
<section class="card card-wide" id="card-complaints">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg>
Consumer Complaints
<span id="complaint-count" class="count-badge"></span>
</h3>
<div class="card-body" id="complaints-body"></div>
</section>
<!-- Safety Equipment -->
<section class="card card-wide" id="card-safety-equip">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
Safety Equipment
</h3>
<div class="card-body" id="safety-equip-body"></div>
</section>
<!-- Manufacturing -->
<section class="card" id="card-plant">
<h3 class="card-title">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 20h20"/><path d="M5 20V8l5 4V8l5 4V4l5 4v12"/></svg>
Manufacturing
</h3>
<div class="card-body" id="plant-body"></div>
</section>
<!-- Raw Data -->
<section class="card card-full" id="card-raw">
<h3 class="card-title card-title-toggle" data-target="raw-body">
<svg class="card-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
Raw NHTSA Data
<svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
</h3>
<div class="card-body card-body-collapsed" id="raw-body"></div>
</section>
</div>
</main>
<!-- History sidebar -->
<aside id="history-panel" class="history-panel" hidden>
<div class="history-header">
<h4>Recent VINs</h4>
<button id="history-close" class="history-close" aria-label="Close">×</button>
</div>
<ul id="history-list"></ul>
<button id="clear-history" class="clear-history">Clear History</button>
</aside>
<button id="history-toggle" class="history-toggle" title="Recent VINs">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
</button>
<!-- My Saved VINs panel -->
<aside id="saved-vins-panel" class="history-panel" hidden>
<div class="history-header">
<h4>My Saved VINs</h4>
<button id="saved-vins-close" class="history-close" aria-label="Close">×</button>
</div>
<ul id="saved-vins-list"></ul>
</aside>
<!-- Toast container -->
<div id="toast-container" class="toast-container"></div>
<!-- MCP Connection Info -->
<section id="mcp-info" class="mcp-info">
<div class="mcp-info-inner">
<h2 class="mcp-info-title">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="24" height="24"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
Connect via MCP
</h2>
<p class="mcp-info-desc">Use this server as an MCP tool in Claude Code, Claude Desktop, or any MCP-compatible client. No API key needed.</p>
<div class="mcp-methods">
<!-- Claude Code (stdio) -->
<div class="mcp-method">
<h3>Claude Code <span class="mcp-tag">stdio</span></h3>
<p>Add to your project's <code>.mcp.json</code>:</p>
<div class="code-block">
<button class="copy-btn" onclick="copyCode(this)" aria-label="Copy">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>
</button>
<pre><code>{
"mcpServers": {
"vin-mcp": {
"command": "npx",
"args": ["-y", "vin-mcp"]
}
}
}</code></pre>
</div>
<p class="mcp-alt">Or clone and run locally:</p>
<div class="code-block">
<button class="copy-btn" onclick="copyCode(this)" aria-label="Copy">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>
</button>
<pre><code>{
"mcpServers": {
"vin-mcp": {
"command": "node",
"args": ["/path/to/vin-mcp/server.mjs"]
}
}
}</code></pre>
</div>
</div>
<!-- Remote HTTP -->
<div class="mcp-method">
<h3>Claude Desktop / Remote <span class="mcp-tag">HTTP</span></h3>
<p>Use the remote MCP endpoint:</p>
<div class="code-block">
<button class="copy-btn" onclick="copyCode(this)" aria-label="Copy">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>
</button>
<pre><code>https://mcp.vin/mcp</code></pre>
</div>
<p class="mcp-alt">Or in config:</p>
<div class="code-block">
<button class="copy-btn" onclick="copyCode(this)" aria-label="Copy">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>
</button>
<pre><code>{
"mcpServers": {
"vin-mcp": {
"url": "https://mcp.vin/mcp"
}
}
}</code></pre>
</div>
</div>
</div>
<!-- Available Tools -->
<div class="mcp-tools">
<h3>Available Tools</h3>
<div class="tools-grid">
<div class="tool-card">
<code class="tool-name">decode_vin</code>
<p>Full VIN decode with specs, recalls, complaints, safety ratings, fuel economy, and photos</p>
</div>
<div class="tool-card">
<code class="tool-name">validate_vin</code>
<p>Quick checksum validation, WMI decode, and year detection — no API calls</p>
</div>
<div class="tool-card">
<code class="tool-name">lookup_recalls</code>
<p>Search recalls by VIN or make/model/year</p>
</div>
<div class="tool-card">
<code class="tool-name">batch_decode</code>
<p>Decode up to 50 VINs in a single request</p>
</div>
</div>
</div>
<!-- REST API -->
<div class="mcp-api">
<h3>REST API</h3>
<p class="mcp-info-desc">All endpoints are free and require no authentication.</p>
<div class="api-endpoints">
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin</code><span>Full decode</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/validate</code><span>Quick validation</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/recalls</code><span>Recalls only</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/complaints</code><span>Complaints only</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/safety</code><span>Safety ratings</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/fuel</code><span>Fuel economy</span></div>
<div class="api-row"><code class="api-method">GET</code><code class="api-path">/api/vin/:vin/photo</code><span>Vehicle photo (redirect)</span></div>
<div class="api-row"><code class="api-method post">POST</code><code class="api-path">/api/batch</code><span>Batch decode (up to 50)</span></div>
</div>
</div>
<p class="mcp-source">Open source: <a href="https://github.com/keptlive/vin-mcp" target="_blank" rel="noopener noreferrer">github.com/keptlive/vin-mcp</a></p>
</div>
</section>
<footer class="footer">
<p>Data from <a href="https://vpic.nhtsa.dot.gov/api/" target="_blank" rel="noopener noreferrer">NHTSA</a>, <a href="https://fueleconomy.gov" target="_blank" rel="noopener noreferrer">EPA</a>, <a href="https://www.imagin.studio" target="_blank" rel="noopener noreferrer">IMAGIN.studio</a> — All free, no API key required</p>
</footer>
<script src="app.js?v=3"></script>
</body>
</html>