CANExplorer MCP

The can-mcp MCP server opens a CAN bus to an agent: traffic, decoding, reverse engineering and OBD-II codes by tier.

  • 150 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • On the `control` and `send` tiers an agent can reset ECUs, clear trouble codes and transmit arbitrary frames onto a live bus.
  • Wrong frames on the bus of a real vehicle or machine can cause equipment faults; test only your own devices.
All reasons and checks

akj7/canexplorer

Install

Manual install

git clone https://github.com/AKJ7/CANExplorer.git && cd CANExplorer && uv sync

Install from source; installers and a Linux snap also exist. Requires uv and Python 3.10 or newer.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • On the `control` and `send` tiers an agent can reset ECUs, clear trouble codes and transmit arbitrary frames onto a live bus.
  • Wrong frames on the bus of a real vehicle or machine can cause equipment faults; test only your own devices.

This is third-party code. Review the repository files before installing.

What it does

CANExplorer is an application for monitoring, analysing, diagnosing and simulating CAN, CAN FD and LIN buses. The `can-mcp` command opens a bus to an AI agent over MCP: the agent inspects identifiers, decodes frames and protocols, runs reverse-engineering analysis, correlates fields, promotes findings to a DBC and reads trouble codes over OBD-II and UDS. Tools, resources and prompts sit behind permission tiers. The server comes in two forms: a standalone `can-mcp` process over stdio and an in-app server that shows the agent the same live bus you have open.

Who it is for. Automotive engineers and CAN bus researchers who want an agent to analyse traffic without letting it transmit frames.

Good fit when

  • A bus dump holds hundreds of identifiers and the agent must find counters, checksums and signal fields.
  • Found fields must be turned into a DBC file and checked against live traffic.
  • An OBD-II vehicle needs its trouble codes read without manual work in the app.
  • An agent attaches to a bus already open in the app and sees the same trace you do.

Not a fit when

  • The bus is not yours and you have no permission to test it; ECU resets and frames can disable equipment.
  • The agent will run on a bus where any write is unacceptable; stay in read-only mode and check the launch flags.
  • You need log recording, replay or a signal database editor; that work belongs to the application itself.

Example request

Connect to the virtual bus, load `vehicle.dbc` and show which identifiers change bytes most often and where counter-like fields appear.

MCP

Transport
stdio, http
Authentication
not required

Limitations

You need an adapter supported by python-can or a virtual bus with no hardware. Most USB and serial adapters can be opened by one process only, so a separate `can-mcp` cannot open a channel the app already holds; the in-app server covers that case. Read-only is the default, while `--allow-diagnostics`, `--allow-control` and `--allow-send` enable diagnostics, ECU resets with code clearing and arbitrary frames. The in-app server listens on `127.0.0.1` and requires a token; port and token change on every start. Install from the installers or from source with `uv sync`.

How to disable. Remove the `canexplorer` entry from the MCP client config. The in-app server stops with the Agent button on the Trace toolbar, and the application is uninstalled the usual way.

FAQ

How do I connect `can-mcp` to an MCP client?

Add `{"mcpServers":{"canexplorer":{"command":"can-mcp"}}}` to the config. The agent picks a bus itself with the `connect` and `disconnect` tools. To open one immediately pass `-i socketcan -c can0`, optionally with `-d vehicle.dbc`.

What can the agent do by default?

Read the bus only. `--allow-diagnostics` enables OBD-II and UDS diagnostics, `--allow-control` resets and code clearing, `--allow-send` frame transmission.

How do I attach an agent to the bus open in the app?

Press Agent… on the Trace toolbar, choose an access tier and Start. The app shows an address on `127.0.0.1` and a token for the `Authorization: Bearer` header over streamable HTTP.

Can I try it without hardware?

Yes. Connect to the `VirtualBus` virtual bus and load the `examples/simulation/vehicle.dbc` sample.

Which signal database formats does the application support?

DBC, DBF, ARXML, KCD, SYM and LDF. A database can be loaded into an agent session with the `load_database` tool.

Discussion

No questions or reviews yet.

Three Claude Code skills that decode CAN bus signals into DBC files from CANsub recordings, with verification and merging

SkillExtended access255Repository stars

Command-line inspector for HTTP MCP servers: lists tools, schemas, prompts and resources and calls any tool by hand.

CLIExtended access134Repository stars

An MCP server that lets an agent read files, search code and run commands in a workspace

MCP serverBroad access1.2KRepository stars

The openmcp CLI and a VS Code extension for debugging MCP servers: tools, prompts and resources, chat with a model, test cases

CLIExtended access750Repository stars

MCP Server for WinDbg

MCP Server for WinDbg Crash Analysis

An MCP server that hands the agent the Windows debuggers: crash dump analysis, remote and kernel debugging in natural language

MCP serverExtended access1.7KRepository stars
Official

MCP server from the OpenROAD project: an agent opens OpenROAD sessions, runs commands, checks history, metrics and ORFS reports

MCP serverExtended access35Repository stars

README in short

The documentation lists the application features: monitoring, recording and replay, signal databases, UDS, OBD-II, DoIP, J1939 and CANopen diagnostics, ECU simulation and test automation. A separate documentation page covers the MCP server modes and permission tiers.

README badge

Report a problem