jlink-mcp
Version:
MCP server for SEGGER J-Link debug probes — LLM-driven embedded debugging with RTT, GDB server, and Trice/Pigweed support
72 lines • 2.22 kB
TypeScript
import { EventEmitter } from "events";
export interface ParsedLogLine {
/** Device uptime timestamp like "00:03:09.516,100" */
deviceTime: string | null;
/** Log level: dbg, inf, wrn, err */
level: string | null;
/** Module name like "main", "inference_engine" */
module: string | null;
/** The actual log message */
message: string;
/** Original raw line */
raw: string;
}
export interface RTTMessage {
channel: number;
timestamp: Date;
/** Raw data from the device */
rawData: string;
/** Cleaned lines (ANSI stripped, headers removed) */
lines: ParsedLogLine[];
}
/**
* Connects to RTT via telnet (when JLinkGDBServer is running).
* JLinkGDBServer exposes RTT channel 0 on a configurable telnet port (default 19021).
*
* Automatically strips ANSI escape codes and SEGGER banners.
* Parses Zephyr-style log lines into structured fields.
*/
export declare class RTTClient extends EventEmitter {
private socket;
private host;
private port;
private messages;
/** Flat buffer of all parsed log lines for searching */
private allLines;
private maxMessages;
private maxLines;
private reconnectTimer;
private connected;
private lineBuffer;
constructor(host?: string, port?: number);
/** Connect to RTT telnet port */
connect(): Promise<void>;
/** Disconnect */
disconnect(): void;
/** Send data to RTT down-channel (host → device) */
send(data: string): boolean;
/** Get recent log lines as formatted text */
getLines(count?: number): string[];
/** Search/filter log lines */
search(opts: {
level?: string;
module?: string;
pattern?: string;
count?: number;
}): ParsedLogLine[];
/** Get messages (for backward compat / resource access) */
getMessages(count?: number): RTTMessage[];
/** Clear all buffers */
clearBuffer(): void;
/** Check connection status */
isConnected(): boolean;
/** Get buffer stats */
getStats(): {
connected: boolean;
lineCount: number;
messageCount: number;
host: string;
port: number;
};
}
//# sourceMappingURL=rtt-client.d.ts.map