Beta

Your car, in your AI assistant.

Battery, range, locks and climate — ask Claude, ChatGPT or Grok about your car, and have it warm the cabin before you leave. One connector for every supported brand, using your car maker’s own official API.

Connect in 2 minutes Server URL: https://missingmcp.com/car/mcp

See it in Claude

A real conversation in claude.ai with this connector (parking address blurred).

What is this?

Your car’s app knows the battery level, whether the doors are locked and how warm the cabin is — but you have to open it and tap around. This connector lets you just ask: “Do I have enough range to get to Prague and back?”, “Did I lock the car?”, “Warm the car to 21 degrees, I’m leaving in 15 minutes.”

It’s a hosted MCP (Model Context Protocol) server — the open standard Claude, ChatGPT, Grok and most AI apps speak. You connect it once with your own API key from your car maker’s app.

Supported brands

Beta

Škoda

Through the official MyŠkoda Public API. Status, battery & range, charging, climate, and ventilation where your car has it.

Beta

BMW, Mini, Rolls-Royce, Toyota Supra & BMW Motorrad

Through the official BMW CarData API, shared by every BMW Group make. Status, battery or fuel & range, charging, doors, locks and location — read-only, as BMW’s API doesn’t take commands.

Tested on BMW so far. Connected a Mini, Rolls-Royce, Supra or a BMW motorbike? Tell Vaclav Slajs ([email protected]) how it went — especially if something’s missing.

Soon

Hyundai & Kia

Through the official Pleos Vehicle Data API (EU). Status, battery & range and charging — read-only, as the API doesn’t take commands.

More brands follow as soon as they offer owners an official API. Volkswagen, Audi, Cupra and Seat don’t yet.

What your assistant can do

Status

Locks, doors, windows, lights, odometer — each with the time the car last reported it.

Battery & charging

Battery level, range, charging state; start or stop charging and set the charge limit.

Climate

Pre-heat or pre-cool the cabin to a temperature you pick, and stop it again. Ventilation too, on cars that have it.

Location

Where the car is parked — only when you ask. Status answers never include it.

Your assistant only sees the actions your car supports, and asks before running any of them.

How to connect

Step 1

Get your key

Škoda: in the MyŠkoda phone app, Profile → Smart home → Create key, and note the Vehicle VIN on the same screen. BMW Group (BMW, Mini, Rolls-Royce, Toyota Supra, BMW Motorrad): in your brand’s web portal, your vehicle → BMW CarData → Technical access → Create Client ID, tick CarData API, and note the VIN.

Step 2

Add the server URL

https://missingmcp.com/car/mcp — see your assistant below.

Step 3

Fill in the form

A sign-in page opens: pick your brand, enter your email, paste the key (or Client ID) and the VIN. We check it with your car maker once — BMW also asks you to approve the sign-in on its own page — and you’re connected.

Step 4

Start asking

Try “How much range do I have?” or “Warm the car to 21 °C.”

Adding the URL in your assistant

Claude

Customize → Connectors → + Add → Add custom connector, name it “Car” and paste the URL. For the OAuth client pick Register automatically. On Team or Enterprise an owner adds it once under Organization settings → Connectors, then everyone clicks Connect and signs in with their own car. Add it on web or desktop; it syncs to the phone apps.

ChatGPT

On the web: chatgpt.com/plugins → + → Add custom MCP server, name it “Car”, choose a public endpoint, paste the URL and pick OAuth, then Create as a plugin. Availability depends on your plan; ChatGPT asks before every action.

Grok

On grok.com/connectors → New Connector → Custom, paste the URL and complete the sign-in. On Grok Business an admin adds it first in the xAI console under Connectors.

Good to know: AI apps move these menus around; if a path above doesn’t match, look for Connectors, Plugins or Apps in settings. The URL is the same everywhere.
Before you connect: your API key and VIN are stored encrypted (AES-256-GCM) so the gateway can reach your car; car data passes through on demand and is not stored. You can delete the key in the MyŠkoda app anytime, which cuts access immediately. Only use this gateway if you trust the operator: this instance is run by Vaclav Slajs ([email protected]). Details in Security & trust.

Free to use — if it earns a spot in your routine, buy me a beer to keep it running.

Tips & tricks

Prompt

Before you leave

“I’m leaving in 15 minutes — warm the car to 21 °C, and tell me if the battery is enough for 120 km.”

Prompt

Peace of mind

“Is the car locked, and are all the windows closed?”

Prompt

Charging plan

“Set the charge limit to 80 % for everyday driving and remind me to raise it before the weekend trip.”

Limits

  • Škoda: 20 requests per hour per car — shared with any other app using a key for the same car. Every answer shows how many are left; status is cached for a minute.
  • BMW: about 50 requests a day per Client ID — shared with any other app on the same Client ID. Data is cached for 15 minutes and is what the car last reported; BMW never wakes the car.
  • A sleeping car takes about 2 minutes to react to a command. Your assistant sends it and doesn’t keep checking — ask again in a moment.
  • Keys last about 6 months. You’ll get a heads-up two weeks before; then create a new key and reconnect.
  • No locking, unlocking or honking — Škoda’s API doesn’t offer them. Auxiliary heating isn’t supported yet. BMW’s API is read-only: no climate or charging commands.

Terms & risks

Škoda’s Public API and BMW CarData are meant for personal use by the car’s owner. This connector is a free, unofficial beta: you bring your own key or Client ID, and you can revoke it in the MyŠkoda app or the MyBMW portal anytime. Commands reach a real car — your assistant asks before running them, but you stay responsible for what you approve.

Under the hood

The connector is built into the gateway itself, on each car maker’s official API — for Škoda the MyŠkoda Public API, for the BMW Group makes BMW CarData. No reverse engineering, and your password never reaches this gateway.

Everything is open source in missingmcp — audit it, or self-host the whole thing.

Škoda® is a trademark of ŠKODA AUTO a.s.; BMW®, MINI® and Rolls-Royce® are trademarks of BMW AG or its affiliates; Supra® is a trademark of Toyota. MissingMCP is an independent project and is not affiliated with, endorsed by, or sponsored by any car maker.

All tools

All 10 tools this connector exposes. Actions show up only when your car supports them.

Read · 3 tools
get_vehicle_capabilities
What this car supports (available tools), its brand, key expiry and the request budget. Free: makes no request to the car.
get_vehicle_status
Current state: locks, doors, windows, battery %, range, charging, climate, ventilation, odometer, each with the time the car reported it. Counts against the car maker's request limit (see budget), so it's cached briefly. No location — see get_vehicle_location.
get_vehicle_location
Where the car is parked: address and GPS coordinates. Only call when the user asks where the car is.
Actions · 7 tools
start_climate
Start climate control (pre-heat or pre-cool the cabin). A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
stop_climate
Stop climate control. A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
start_ventilation
Start cabin ventilation. A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
stop_ventilation
Stop cabin ventilation. A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
start_charging
Start charging (the car must be plugged in). A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
stop_charging
Stop charging. A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.
set_charge_limit
Set the target battery level charging stops at. A sleeping car can take ~2 minutes to react; don't poll — check get_vehicle_status later if the user asks.

Your car has the answers.

Two minutes from now you can ask for them — free, open source, revocable anytime.

Connect your car