# USB LIN Converter

Wires an AI agent to the USB LIN dongle so it can capture bus traffic, find the speed and decode signals from an LDF file.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 92
- Author: uCAN-LIN
- License: GPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/uCAN-LIN/LinUSBConverter
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/usb-lin-converter

## What it does

The `ucan-lin-mcp` server ships inside the `ucanlintools` package and talks to the USB LIN Converter (uLC) dongle. An agent gets tools such as `device_info`, `monitor_bus`, `detect_bus`, `load_ldf`, `decode_frame` and `encode_frame`. With them it records frames with their per-id periods, tracks which bits flip when you press a button, figures out the bus speed and checksum flavour, then decodes or builds signals against an LDF.

Read-only is the default. Sending frames, running as master or acting as a slave stay locked until you pass `--allow-transmit`; without it `send_frame`, `run_master` and `run_slave` are not available. That is the right default for a live vehicle bus, where a stray write costs more than an extra flag.

The server runs as a stdio process, needs Python 3.10+ and a dongle on a port like `COM3` or `/dev/ttyACM0`. Pass `--mock` to work against a simulated bus with no hardware attached. The dongle itself is a separate purchase at around $27 on Tindie; firmware and the Python library are open under GPL-3.0.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add lin-usb-converter -- uvx ucan-lin-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from ucan-lin-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add usb-lin-converter -- uvx ucan-lin-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from ucan-lin-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "usb-lin-converter": {
            "command": "uvx",
            "args": [
                "ucan-lin-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from ucan-lin-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "usb-lin-converter": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "ucan-lin-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from ucan-lin-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add usb-lin-converter uvx ucan-lin-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from ucan-lin-mcp <command>

## When to use it
- capture LIN traffic and list frame periods per id
- log which bits change while a button is pressed
- detect bus speed and checksum type without manual setup
- turn signals from an LDF file into readable values
- build and send a frame from inside the agent

## Example prompts
- Capture traffic on the LIN bus and show me the period of each id
- Find the bus speed and checksum type
- Load `signals.ldf` and decode the frame with id 0x0A

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
