WiCAN Vehicle
Universal OBD-II vehicle monitoring via WiCAN Pro and MQTT
Universal vehicle monitoring via meatPi WiCAN Pro OBD-II adapter — standard PIDs over MQTT, raw CAN bus decoding, diagnostic trouble codes, and trip data. Works with any OBD-II vehicle.
Service Contract
Highlights
About
What it does
WiCAN Vehicle gives your AI agent access to real-time vehicle data from any OBD-II compliant car, truck, or motorcycle through a meatPi WiCAN Pro adapter. The WiCAN plugs into the vehicle's OBD-II port and bridges CAN bus frames over WiFi to an MQTT broker — the MCP server subscribes to those topics.
Your agent can read standard OBD-II data (speed, RPM, fuel, coolant temperature, battery voltage), check and clear diagnostic trouble codes, and — with optional DBC file configuration — decode manufacturer-specific CAN data (door states, tyre pressures, EV battery SoC, steering angle).
Built on paho-mqtt for broker communication and cantools for DBC file parsing. Compatible with the opendbc community CAN database covering hundreds of vehicle models.
How it differs from cloud vehicle MCPs
| This plugin | Tesla / Tessie MCP | BMW CarData MCP | |
|---|---|---|---|
| Vehicle support | Any OBD-II (1996+ US, 2001+ EU, 2005+ AU) | Tesla only | BMW/MINI only |
| Interface | Local hardware (OBD-II → WiFi → MQTT) | Cloud API | Cloud API |
| Auth required | MQTT broker credentials (local) | API key or OAuth | OAuth |
| Works offline | Yes (local network only) | No | No |
| Subscription cost | None (one-time hardware ~$40-50) | Tessie ~$5/mo | Free (EU only) |
| Remote commands | DTC clear, raw CAN send | Lock, climate, charge | Lock, climate, charge |
| Raw data access | Full CAN bus | Summary only | Summary only |
| Open source | Hardware + firmware + MCP | MCP only | MCP only |
This is the only vehicle MCP that talks directly to hardware. Cloud MCPs give you manufacturer-curated data through proprietary APIs; WiCAN gives you raw bus access to whatever the vehicle broadcasts.
How it works
The WiCAN Pro is an ESP32-S3-based WiFi/BLE OBD-II adapter with native MQTT support. It connects to your WiFi network and publishes vehicle data to configurable MQTT topics. This MCP server subscribes to those topics via a local or remote MQTT broker.
No Bluetooth pairing. No serial ports. No USB drivers. Just MQTT.
Vehicle OBD-II port
│
▼
WiCAN Pro (ESP32-S3, WiFi + BLE)
│
▼ MQTT publish
MQTT Broker (Mosquitto / HA built-in)
│
▼ MQTT subscribe
wican-blade-mcp
What data is available
Standard OBD-II PIDs (universal, any compliant vehicle):
- Engine RPM, vehicle speed, throttle position
- Coolant temperature, intake air temperature
- Fuel level, fuel system status, calculated engine load
- Battery voltage, oxygen sensor readings
- Diagnostic trouble codes (DTCs) and MIL status
- VIN (Vehicle Identification Number)
- Odometer (where supported by the vehicle)
Raw CAN bus (manufacturer-specific, requires DBC files):
- Door and window states, lock status
- Tyre pressures (TPMS)
- EV battery SoC, charging state, range estimate
- Steering angle, individual wheel speeds
- Gear position, ambient temperature
- Any data the vehicle puts on the CAN bus
Manufacturer-specific decoding uses DBC files from the opendbc project (comma.ai). Coverage varies by make/model — well-decoded for Honda, Toyota, Hyundai, GM, and many others.
Token efficiency
OBD-II responses are compact by nature — a PID response is a single value with a unit. The server formats state as pipe-delimited one-liners (SPEED | 60 km/h) with null-field omission, so only active data appears in the response.
Raw CAN frames are denser. The wican_can_read tool returns a bounded buffer (default 50 frames, max 200) with optional frame ID filtering. For continuous monitoring, configure the WiCAN firmware to poll only the PIDs you need rather than broadcasting the full bus — this reduces both MQTT traffic and token usage.
A typical wican_state response is 8–10 lines. A wican_diagnostics response with no active DTCs is 2 lines.
Network requirements
The WiCAN Pro needs to be on the same WiFi network as your MQTT broker, or configured to reach a cloud-hosted broker.
Home use (car in garage or driveway with WiFi coverage): works out of the box. The WiCAN connects to your home WiFi and publishes to your local Mosquitto or Home Assistant broker.
Third-party router setups (UniFi, pfSense, OPNsense): the WiCAN connects as a standard WiFi client — no special routing needed. Just ensure the MQTT broker is reachable from the WiFi VLAN the WiCAN joins.
Remote access (car parked away from home WiFi): requires a mobile hotspot, cellular-to-MQTT bridge, or a cloud MQTT broker (e.g. HiveMQ Cloud, EMQX Cloud). This is outside the scope of the plugin but documented in the WiCAN firmware docs.
Multi-vehicle setups: each WiCAN device gets a unique device ID. Set WICAN_DEVICE_ID to target a specific vehicle, or use multi_instance: true to run one MCP instance per vehicle with different MQTT topic filters.
The WiCAN Pro has sleep mode — it draws minimal power when the vehicle is off and reconnects automatically when the ignition is on.
Safety model
Read tools work immediately — vehicle state, diagnostics, trip data.
Write operations are dual-gated:
WICAN_WRITE_ENABLED=trueenvironment variable (persistent, set in plugin config)confirm=trueparameter on each call (per-invocation, prevents accidental execution)
Both gates must pass. Your agent can inspect the vehicle freely but must be explicit about write operations.
Gated operations: clearing diagnostic trouble codes, sending raw CAN frames. Standard OBD-II reads and passive CAN monitoring are always safe.
CAN bus safety note: wican_can_send transmits arbitrary frames on the vehicle bus. Incorrect frames can cause ECU faults, warning lights, or unsafe behaviour. Use with extreme caution and only with known-good frame definitions. This tool is intended for diagnostics and research, not routine automation.
Hardware required
A meatPi WiCAN Pro (~$40-50 USD). Open-source hardware and firmware (meatpiHQ/wican-fw, 1.5k+ stars). Available from meatPi's website, Crowd Supply, and Tindie.
| Variant | WiFi | BLE | Sleep Mode | Price |
|---|---|---|---|---|
| WiCAN Pro | Yes | Yes | Yes | ~$45 |
| WiCAN (original) | Yes | No | No | ~$35 |
Both variants work with this plugin. The Pro is recommended for always-plugged-in use (sleep mode prevents battery drain).
Tool reference
| Tool | Type | What it does |
|---|---|---|
| wican_vehicles | read | List connected WiCAN devices with vehicle identity and connection status |
| wican_state | read | Speed, RPM, fuel, coolant, battery voltage, throttle, engine load |
| wican_diagnostics | read | DTC codes, MIL status, freeze frame, monitor readiness |
| wican_battery | read | Battery voltage, alternator state, EV SoC (if CAN-decoded) |
| wican_trip | read | Speed, RPM, run time, odometer, fuel level |
| wican_can_read | read | Raw CAN frames from buffer, optional frame ID filtering |
| wican_dtc_clear | gated | Clear diagnostic trouble codes and reset MIL |
| wican_can_send | gated | Send a raw CAN frame to the vehicle bus |
Conformance
Setup
You need a meatPi WiCAN Pro plugged into your vehicle's OBD-II port and connected to your WiFi network. The WiCAN publishes vehicle data to an MQTT broker — this plugin subscribes to those topics. First-time setup: 1. Plug the WiCAN into your vehicle's OBD-II port (usually under the dashboard, driver side) 2. Connect to the WiCAN's setup WiFi hotspot and configure your home WiFi credentials 3. Set the MQTT broker address to your local Mosquitto or Home Assistant broker 4. Configure which OBD-II PIDs to poll in the WiCAN web interface For manufacturer-specific data (doors, tyres, EV battery), download the appropriate DBC file from github.com/commaai/opendbc and set the WICAN_DBC_PATH. The WiCAN Pro sleeps when the vehicle is off and reconnects automatically on ignition.
MQTT_BROKER MQTT Broker required MQTT_PORT MQTT Port MQTT_USERNAME MQTT Username MQTT_PASSWORD MQTT Password secret WICAN_DEVICE_ID Device ID WICAN_DBC_PATH DBC File Path WICAN_WRITE_ENABLED Enable Write Operations Prerequisites
- meatPi WiCAN Pro adapter (~$40-50 USD)
- Vehicle with OBD-II port (1996+ US, 2001+ EU, 2005+ AU)
- WiFi coverage at the vehicle's parking location
- MQTT broker (Mosquitto, Home Assistant, or cloud)
Scenarios
Call wican_vehicles to confirm the device is online, then wican_state with refresh=true for fresh readings. Report battery voltage, coolant temp baseline, and any anomalies. Check wican_diagnostics for active DTCs or pending trouble codes.
Call wican_diagnostics with refresh=true to read all active and pending DTCs with freeze frame data. Look up each code and provide a plain-language explanation, severity, and recommended action. Offer to clear codes if the issue has been resolved.
Call wican_trip for accumulated distance and fuel consumption. Call wican_state for current fuel level. Calculate average fuel economy and estimated range remaining.
Call wican_battery with refresh=true to get the current voltage reading. Compare against the 12.4-12.7V resting range (engine off) or 13.7-14.7V charging range (engine running). Flag if the voltage suggests alternator or battery degradation.
Call wican_can_read with no filter to see what frames the vehicle is broadcasting. Identify high-frequency frame IDs and cross-reference with opendbc DBC files for the vehicle's make/model. Report which manufacturer-specific signals are decodable.
Both use vehicle. Tesla vehicle monitoring and control via the Tessie API — state, battery, charging, climate, drives, and 26 vehicle commands with confirmation-gated safety.
Use the Forge to design an automation pack powered by wican-blade-mcp for vehicle operations.
Install
sidereal install wican-blade-mcp