Skip to main content
Glama
baxtheman

mcp-lnav-canbus

by baxtheman

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LNAV_PATHNoPath to lnav binarylnav
LOG_LEVELNoLogging verbosityINFO
LNAV_TIMEOUTNoDefault timeout for lnav operations (seconds)30
MAX_SESSION_COUNTNoMaximum concurrent sessions10

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues