mcp-lnav-canbus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LNAV_PATH | No | Path to lnav binary | lnav |
| LOG_LEVEL | No | Logging verbosity | INFO |
| LNAV_TIMEOUT | No | Default timeout for lnav operations (seconds) | 30 |
| MAX_SESSION_COUNT | No | Maximum concurrent sessions | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| open_can_logA | Open a Kvaser CAN bus log file in the current session. Args: file_path: Path to the Kvaser CAN log file session_id: Optional session identifier (auto-generated if not provided) Returns: File information and session details |
| query_can_messagesA | Execute SQL queries against CAN bus log data using lnav's SQL engine. Args: query: SQLite query to execute (use table name 'frames') limit: Maximum rows to return (default: 100) session_id: Session identifier Returns: Query results with columns and rows |
| extract_can_framesA | Extract specific CAN frames by ID, channel, or time range. Args: can_id: CAN ID to filter (hex format, e.g., '0x123') channel: CAN channel number (0-based) start_time: Start timestamp end_time: End timestamp limit: Maximum frames to return (default: 1000) session_id: Session identifier Returns: List of CAN frames |
| get_statisticsC | Generate statistical analysis of CAN bus traffic. Args: stat_type: Type of statistics ("frequency", "timing", "load", "errors", "summary") interval: Time interval for aggregation (e.g., '1s', '100ms') can_id: Optional CAN ID to filter statistics session_id: Session identifier Returns: Statistical data |
| find_errorsA | Find error frames and anomalies in CAN bus logs. Args: error_type: Type of error ("all", "crc", "bit", "stuff", "form", "ack", "timeout", "gap") channel: Optional channel filter session_id: Session identifier Returns: List of error frames |
| analyze_payload_noiseA | Analyze CAN bus payload repetition to detect noise in logs. Uses MD5 hashes of payload data to identify repeated payloads that may represent noise or meaningless data in the log. Args: min_repetitions: Minimum number of repetitions to consider as noise (default: 10) session_id: Session identifier Returns: Analysis of payload repetition and potential noise patterns |
| scan_payload_for_valueA | Scan CAN bus payload bytes for a specific decimal value. Searches for frames where consecutive bytes in the payload match the binary representation of the given decimal value. Supports both big-endian and little-endian byte orders. Args: byte_value: Decimal value to search for (0 to unlimited, auto-calculates byte width) endianness: Byte order ("big" or "little"), default: "big" start_offset: Start searching from this byte offset (default: 0) end_offset: Stop searching at this byte offset (default: None, searches to end) limit: Maximum frames to return (default: 1000) session_id: Session identifier Returns: Matching frames with match position and context |
| get_session_infoA | Retrieve information about the current session state. Args: session_id: Session identifier (uses most recent if not provided) Returns: Session state information |
| close_sessionA | Close the current session and release resources. Args: session_id: Session identifier (uses most recent if not provided) Returns: Confirmation message |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have clear distinct purposes, but get_statistics with 'errors' type overlaps with find_errors, and query_can_messages can technically replace extract_can_frames. Overall, session management, analysis, and extraction tools are well-separated.
All tool names follow a consistent verb_noun snake_case pattern (open_can_log, query_can_messages, get_statistics, etc.) with no mixed styles or ambiguous generic verbs.
Nine tools is well within the ideal range for a focused domain. Each tool covers a distinct aspect of CAN bus log analysis without unnecessary bloat or missing essentials.
The toolset covers log opening, SQL querying, frame extraction, payload noise analysis, statistics, error detection, and session lifecycle. Minor gaps exist like export or DBC decoding, but core analysis workflows are fully supported.