MCP server for openinverter / EV-CAN work: parameter DB inspection, CAN frame decode, DBC operations, and recorded-log analysis
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"openinverter-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# openinverter-mcp MCP server for [openinverter](https://openinverter.org/) / EV-CAN work: inspect openinverter parameter databases, decode and encode CAN frames via DBC files, and analyze recorded CAN logs — from Claude Code, Claude Desktop, or any MCP client. Built for DIY EV builders (Leaf/Tesla drive units, stm32-sine firmware). **No CAN hardware required**: the DBC, log, and param-DB lanes are fully usable standalone on files. Live device access exists but is deliberately locked behind a feature flag (see Safety). ## Install Requires Python 3.10+. ```sh pip install openinverter-mcp # once published; from a clone: git clone <this repo> && cd openinverter-mcp uv sync # or: pip install -e . ``` ## Register with Claude Code From a clone (project-scoped `.mcp.json` in this repo already does this): ```sh claude mcp add openinverter -- uv run --directory C:/path/to/openinverter-mcp openinverter-mcp ``` Once on PyPI, no clone needed: ```sh claude mcp add openinverter -- uvx openinverter-mcp ``` Then in a session: "load assets/sample.dbc and decode 0x156 701C2D2ED40D4A00". ## Tools Handles (`dbc:1`, `log:1`, `paramdb:1`) are returned by the load tools; every tool that takes a handle also accepts a file path directly. | Tool | What it does | |---|---| | `server_info` | Version, device-lane status, loaded handles. Smoke test. | | `dbc_load` | Load a DBC file → handle + message/node summary. | | `dbc_info` | List messages (with `search` over message/signal names) or full signal detail for one message. | | `decode_frame` | One raw frame (id + hex data) → named signal values. | | `encode_message` | Signal values → frame bytes (hex + candump form), range-checked. | | `log_open` | Open a recorded log: candump `.log`, Vector `.blf`, python-can `.csv`, `.asc`, `.trc`. | | `log_stats` | Bus overview: per-id counts, rates (Hz), time span, DLC profile. | | `log_decode` | Decode a log through a DBC; id filter + pagination; unknown id…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.