Skip to main content
Glama
MisakaMikoto128

J-Link RTT Viewer MCP

J-Link RTT Viewer MCP Server

English | 中文


English

An MCP server that wraps J-Link RTT Viewer, enabling AI assistants to control STM32 development boards via natural language.

Quick Start (3 steps)

# 1. Clone and install
git clone https://github.com/MisakaMikoto128/J-Link-RTT-Viewer-MCP.git
cd J-Link-RTT-Viewer-MCP
python -m venv .venv && .venv\Scripts\activate  # Windows
pip install -r requirements.txt

# 2. Configure Claude Desktop
# Add to %APPDATA%\Claude\claude_desktop_config.json:
# { "mcpServers": { "jlink-rtt": { "command": "python", "args": ["-m", "src.server"], "cwd": "C:\\path\\to\\J-Link-RTT-Viewer-MCP" } } }

# 3. Restart Claude Desktop and use natural language!

Tool Reference

Tool

Parameters

Description

connect

target, interface="SWD", speed=4000

Connect to MCU. Target example: STM32F103C8

disconnect

(none)

Disconnect from J-Link

read_rtt

channels=[0], max_size=4096

Read RTT log data from MCU

write_rtt

data, channel=0

Send command to MCU via RTT

reset

mode="normal"

Reset MCU. Modes: normal, auto_reconnect, halt

flash_firmware

firmware_path

Flash .hex or .bin file to MCU

get_device_info

(none)

Get connected device details

read_memory

address, size

Read MCU memory (hex address like 0x08000000)

write_memory

address, data

Write data to MCU memory

start_log_recording

log_dir="logs"

Record RTT output to file

stop_log_recording

(none)

Stop recording

set_rtt_channel

channel

Set default RTT channel (0-15)

Common Commands (for write_rtt)

freq 200      - Set LED blink interval to 200ms
freq 1000     - Set LED blink interval to 1s
mode on       - Turn LED on
mode off      - Turn LED off
mode blink    - Set LED to blink mode
status        - Get current settings
ping          - Test connection (returns "pong")
reset         - Reset MCU software

Example: Control LED

User: Connect to my STM32F103C8 board
AI: [connect] Connected to STM32F103C8

User: What's in the RTT logs?
AI: [read_rtt] STM32F103C8T6 LED Control ===\r\nCommands: freq, mode, status...

User: Make the LED blink faster
AI: [write_rtt, data="freq 200"] Done! LED now blinks every 200ms

User: Turn the LED on
AI: [write_rtt, data="mode on"] LED is now on

User: Flash new firmware
AI: [flash_firmware, firmware_path="path/to/firmware.hex"] Flash complete!

Supported Hardware

  • Debugger: SEGGER J-Link (V7-V10)

  • MCU: STM32F1xx, STM32F4xx, nRF52xxx, etc.

  • Interface: SWD, JTAG

Test with MCP Inspector

npx @modelcontextprotocol/inspector -- python -m src.server

Related MCP server: jlink-mcp

中文

封装 J-Link RTT Viewer 的 MCP 服务器,使 AI 助手能通过自然语言控制 STM32 开发板。

快速开始(3 步)

# 1. 克隆并安装
git clone https://github.com/MisakaMikoto128/J-Link-RTT-Viewer-MCP.git
cd J-Link-RTT-Viewer-MCP
python -m venv .venv && .venv\Scripts\activate  # Windows
pip install -r requirements.txt

# 2. 配置 Claude Desktop
# 添加到 %APPDATA%\Claude\claude_desktop_config.json:
# { "mcpServers": { "jlink-rtt": { "command": "python", "args": ["-m", "src.server"], "cwd": "C:\\path\\to\\J-Link-RTT-Viewer-MCP" } } }

# 3. 重启 Claude Desktop,用自然语言对话!

工具参考

工具

参数

说明

connect

target, interface="SWD", speed=4000

连接 MCU。示例: STM32F103C8

disconnect

(无)

断开 J-Link

read_rtt

channels=[0], max_size=4096

读取 MCU 的 RTT 日志

write_rtt

data, channel=0

通过 RTT 发送命令到 MCU

reset

mode="normal"

重置 MCU。模式: normal, auto_reconnect, halt

flash_firmware

firmware_path

烧录 .hex 或 .bin 文件

get_device_info

(无)

获取设备详细信息

read_memory

address, size

读取 MCU 内存

write_memory

address, data

写入 MCU 内存

start_log_recording

log_dir="logs"

录制 RTT 输出到文件

stop_log_recording

(无)

停止录制

set_rtt_channel

channel

设置默认 RTT 通道 (0-15)

常用命令(用于 write_rtt)

freq 200      - 设置 LED 闪烁间隔为 200ms
freq 1000     - 设置 LED 闪烁间隔为 1s
mode on       - 打开 LED
mode off      - 关闭 LED
mode blink    - 设置 LED 闪烁模式
status        - 获取当前设置
ping          - 测试连接(返回 "pong")
reset         - 软件重置 MCU

示例:控制 LED

用户: 连接到我的 STM32F103C8 开发板
AI: [connect] 已连接到 STM32F103C8

用户: RTT 日志里有什么?
AI: [read_rtt] STM32F103C8T6 LED Control ===\r\nCommands: freq, mode, status...

用户: 让 LED 闪快一点
AI: [write_rtt, data="freq 200"] 完成!LED 现在每 200ms 闪烁一次

用户: 打开 LED
AI: [write_rtt, data="mode on"] LED 已打开

用户: 烧录新固件
AI: [flash_firmware, firmware_path="path/to/firmware.hex"] 烧录完成!

支持的硬件

  • 调试器: SEGGER J-Link (V7-V10)

  • MCU: STM32F1xx, STM32F4xx, nRF52xxx 等

  • 接口: SWD, JTAG

使用 MCP Inspector 测试

npx @modelcontextprotocol/inspector -- python -m src.server

Available Tools

12 tools
connectA

连接到 J-Link 调试器和目标 MCU

Args: target: 目标设备型号 (如 STM32F103C8, STM32F407VG, nRF52840) interface: 调试接口 (SWD 或 JTAG),默认 SWD speed: 连接速度 (kHz),默认 4000 channel: RTT 通道号,默认 0 retry_attempts: 重试次数,默认 3

Returns: 连接状态和设备信息的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
interfaceNoSWD
speedNo
channelNo
retry_attemptsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions retry_attempts but does not disclose behavior on failure, side effects, or required permissions. More detail on connection establishment consequences would be needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is structured with Args and Returns sections, concise (5 lines for args), front-loaded with purpose. Could integrate some default values more efficiently but overall well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 params (1 required), no annotations, and an output schema, the description covers connection intent, parameter meanings, and return type (JSON string). Explanation of output structure or error scenarios would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% coverage (no descriptions), but the description adds meaning for all 5 parameters: target examples, interface options (SWD/JTAG), speed unit (kHz), RTT channel, retry_attempts. Adds substantial context beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states '连接到 J-Link 调试器和目标 MCU' (connect to J-Link debugger and target MCU), with specific verb and resource. It further lists parameters like target, interface, speed, etc., distinguishing it from sibling tools like disconnect or read_memory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for establishing a connection but provides no explicit guidance on when to use vs. alternatives (e.g., disconnect for cleanup). No when-not-to-use or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnectA

断开 J-Link 连接

安全地断开与 J-Link 调试器的连接,清理所有资源。

Returns: 断开状态的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions safe disconnect and resource cleanup but lacks detail on side effects or permissions. Adequate for a simple destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with one clear sentence and return description. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema (though not shown), the description covers purpose, safety, and return value completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline 4 applies. Schema is empty, and description does not need to add meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool disconnects from a J-Link debugger and cleans up resources, with a verb+resource structure. It is distinct from siblings like connect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use vs alternatives. It implies use after connecting but does not specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flash_firmwareA

烧录固件到 MCU

将固件文件烧录到连接的目标 MCU。

Args: firmware_path: 固件文件路径 (.hex, .bin)

Returns: 烧录结果的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
firmware_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions only the action and return type (JSON string) but omits behavioral traits like destructiveness, required device state, or side effects beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly concise with two sentences and structured Args/Returns section. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description adequately explains purpose and return. However, it lacks behavioral context (e.g., device must be connected, destructive nature) that would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It adds that firmware_path is a file path supporting .hex and .bin formats, which is meaningful beyond the schema's bare type string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'flash' and resource 'firmware to MCU', specifies file extensions .hex and .bin, and distinguishes from siblings like write_memory by focusing on firmware flashing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like write_memory or prerequisites such as needing a connection. The description is purely declarative without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_device_infoA

获取当前连接设备的信息

返回 J-Link 调试器和目标 MCU 的详细信息。

Returns: 设备信息的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the burden. It does not disclose whether a connection is required, nor does it mention that the tool is read-only and non-destructive. The behavioral traits are only implied by the tool name and sibling context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short lines, with the purpose front-loaded. No redundant information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an existing output schema (though not displayed), the description sufficiently explains what is returned (JSON string with J-Link and target MCU details). It is complete for a simple info retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the schema coverage is 100%. The description adds no parameter-level information but none is needed. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves information about the connected J-Link debugger and target MCU, which is a specific verb+resource. It distinguishes itself from sibling tools like connect, disconnect, flash_firmware, etc., which are actions rather than queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. However, as a simple info retrieval tool, its usage is implied. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_memoryA

读取 MCU 内存

从目标 MCU 的指定地址读取内存数据。

Args: address: 起始地址 (如 0x08000000) size: 读取字节数 (1-1048576)

Returns: 内存数据的 JSON 字符串(十六进制格式)

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
sizeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It states the tool reads memory and returns JSON hex string, but does not disclose behavior on invalid addresses, side effects (though reading is non-destructive), connection requirements, or error handling. Adequate for a simple read but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is brief with a one-line title, one-line explanation, and structured Args/Returns sections. Front-loaded with key verb and resource. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, read-only, output schema exists), the description covers the core behavior and return format. Missing details like error handling, alignment, or byte order, but these are minor for this domain. Sufficient for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no property descriptions (0% coverage), but the description explains address as starting address with example (0x08000000) and size as byte count with range (1-1048576). This adds significant meaning beyond the schema's type-only definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '读取 MCU 内存' (read MCU memory) and '从目标 MCU 的指定地址读取内存数据' (read memory data from specified address of target MCU). It clearly identifies the verb (read) and resource (MCU memory), distinguishing it from sibling tools like write_memory (write) and read_rtt (RTT logging).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use read_memory versus alternatives like read_rtt or get_device_info. The context is implied by reading raw memory at an address, but absence of when-not-to-use or prerequisites limits its helpfulness for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_rttB

读取 RTT 日志数据

从目标 MCU 读取 RTT (Real-Time Transfer) 日志数据。 默认读取所有通道 (0-15),返回结构化的日志数据。

Args: channels: 要读取的通道列表,None 表示所有通道 (默认) max_size: 最大读取字节数,默认 4096

Returns: RTT 数据的 JSON 字符串,包含时间戳、通道、内容和元数据

ParametersJSON Schema
NameRequiredDescriptionDefault
channelsNo
max_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It describes a read operation ('读取') which is inherently non-destructive, but does not explicitly state safety, prerequisites, or side effects. The return format is mentioned, but details like rate limits or error behavior are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with Args and Returns sections, which aids readability, but includes verbose phrasing (e.g., '从目标 MCU 读取'). It could be more concise while retaining all necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two parameters and an output schema exists (though not shown), the description sufficiently covers the core functionality and return format. Minor gaps exist (e.g., behavior when max_size is exceeded), but overall it provides enough context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds semantic meaning beyond the input schema: it explains that channels default to read all (0-15) and that max_size has a default of 4096 bytes. This compensates for the schema lacking descriptions. However, it does not detail edge cases like invalid channel values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads RTT log data from a target MCU, using specific verbs ('读取') and resource ('RTT日志数据'). While it doesn't explicitly differentiate from siblings, the purpose is distinct and unambiguous given sibling names like write_rtt and set_rtt_channel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as write_rtt or set_rtt_channel. The description implies use for reading logs but does not specify scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resetA

重置目标 MCU

重置连接的目标 MCU。支持多种重置模式。

Args: mode: 重置模式 - "normal": 标准重置,保留连接会话 (默认) - "auto_reconnect": 重置后自动断开重连 - "halt": 重置后暂停 CPU(停在复位状态) wait_time: 重置后等待时间(秒),默认 0.3

Returns: 重置结果的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNonormal
wait_timeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description explains reset modes, wait time, and return value, providing adequate behavioral context for most use cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections, though a bit verbose; it efficiently conveys necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and presence of output schema reference, the description covers key aspects, though lacks explicit details on return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds crucial meaning to both parameters, explaining mode options and default wait_time beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it resets the target MCU and lists specific modes, distinguishing it from sibling tools like connect and disconnect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for resetting a connected MCU but lacks explicit guidance on when to choose this tool over siblings or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_rtt_channelB

设置默认 RTT 通道

设置后续 RTT 操作使用的默认通道。

Args: channel: 通道号 (0-15)

Returns: 设置结果的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states that the tool sets a default channel for subsequent operations, which is a state change. However, it does not disclose prerequisites (e.g., whether a connection is needed), potential side effects (e.g., overwriting previous default), or error conditions. The behavioral coverage is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using a clear structure with a one-line summary, then Args and Returns sections. It is front-loaded with the main purpose. Every sentence adds value, though the 'Args' and 'Returns' sections could be slightly more compact. Overall, it is well-structured and not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (setting a single integer parameter) and the presence of sibling tools like read_rtt and write_rtt, the description covers the essential context. However, it lacks details about the output JSON structure (though no output schema is provided) and does not mention if the tool requires a prior connection or if it can fail. It is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only the type 'integer' for the channel parameter, with no description. The tool description adds meaningful context by specifying that it is a channel number in the range 0-15, which is not present in the schema. This adds significant value beyond the schema, especially given 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the default RTT channel, including the specific verb 'set' and resource 'default RTT channel'. It mentions it affects subsequent RTT operations, which distinguishes it from other RTT tools like read_rtt and write_rtt. However, it does not explicitly differentiate from siblings that might also affect state, but the purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: before subsequent RTT operations, by stating 'set the default channel for subsequent RTT operations'. It does not provide explicit guidance on when not to use it or mention alternative tools. The usage context is implied but lacks exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_log_recordingC

开始日志记录

开始将 RTT 数据记录到文件。

Args: log_dir: 日志目录,默认 "logs"

Returns: 记录状态的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
log_dirNologs

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions starting recording and returning a status JSON, but does not disclose potential side effects (e.g., file overwriting, performance impact), required state (e.g., must be connected), or relationship to other tools like set_rtt_channel.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the purpose. Each sentence is relevant. It could be slightly more structured (e.g., separate sections), but it is appropriately concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, an output schema exists (though not shown here), and no annotations, the description covers the basic purpose and parameter. However, it lacks completeness in terms of required prior steps or potential impact, making it just adequate for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the log_dir parameter as 'log directory, default logs', adding meaning beyond the schema which only shows the default. However, with 0% schema coverage, the description compensates minimally but adequately for a single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts recording RTT data to a file. It uses the verb 'start' and specifies the resource 'log recording' of RTT data. It is distinct from siblings like stop_log_recording, but does not explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not state prerequisites (e.g., need connection or channel setup) or when not to use it. The description only explains what it does, not the context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_log_recordingB

停止日志记录

停止将 RTT 数据记录到文件。

Returns: 停止状态的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description only states the basic action and return value. It does not disclose any side effects, whether the operation is idempotent, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and clear, but it could be structured better with more details. It is concise but lacks elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and an output schema, the description covers the action and return. However, it misses context like prerequisites (e.g., must be recording) and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. Baseline score of 3 applies as description adds no param info, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool stops recording RTT data to file, using a specific verb and resource. It implicitly distinguishes from the sibling 'start_log_recording' by being the inverse operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'start_log_recording' or other management tools. No prerequisites or context about when to stop recording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_memoryB

写入 MCU 内存

向目标 MCU 的指定地址写入数据。

Args: address: 起始地址 (如 0x08000000) data: 要写入的数据(十六进制字符串或普通字符串) is_hex: 是否为十六进制数据,默认 True

Returns: 写入结果的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
dataYes
is_hexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It lacks details on destructive potential, address validation, connection requirements, or error handling. The return format is mentioned but not behavior traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with Args/Returns structure. Every sentence is relevant, though the Chinese text is succinct and clear. Slightly front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, description misses prerequisites (connection via connect tool), side effects, and safety context. Output schema presence reduces need to describe return, but overall context for a mutation tool is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description adds meaning: address example (0x08000000), data format flexibility (hex or string), and is_hex default. This compensates significantly, though constraints on data length or alignment are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool writes data to a specified address in MCU memory, distinguishing it from siblings like read_memory and write_rtt. The verb 'write' and resource 'MCU memory' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., flash_firmware, write_rtt). No prerequisites or exclusion criteria mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_rttA

向 RTT 通道写入数据

向目标 MCU 的 RTT 通道发送数据。

Args: data: 要写入的数据 channel: 通道号,None 使用默认通道 is_hex: 是否为十六进制数据,默认 False

Returns: 写入结果的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
channelNo
is_hexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states the basic function without disclosing behavioral traits like prerequisites (e.g., device connection), idempotency, or side effects. Significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded, and well-structured with a summary, Args, and Returns. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values are not needed. However, the description lacks context about prerequisites and workflow integration (e.g., requires connection, channel setup). Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explicitly explains each parameter's role (data, channel, is_hex) and provides context about defaults. This compensates well, though format constraints are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'write' (写入/发送) and the resource 'RTT channel', and it distinguishes from sibling tools like read_rtt and set_rtt_channel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like read_rtt or set_rtt_channel. The purpose is implied but not differentiated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedconnect
    • First observeddisconnect
    • First observedflash_firmware
    • First observedget_device_info
    • First observedread_memory
    • First observedread_rtt
    • First observedreset
    • First observedset_rtt_channel
    • First observedstart_log_recording
    • First observedstop_log_recording
    • First observedwrite_memory
    • First observedwrite_rtt

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation (connect, disconnect, flash, memory read/write, RTT read/write, logging, reset, device info) with no overlapping purposes.

Naming Consistency5/5

All tools use consistent verb_noun snake_case naming (e.g., read_memory, write_rtt) with no deviations or mixed conventions.

Tool Count5/5

12 tools is well-scoped for a J-Link/RTT debugger, covering essential operations without being excessive or minimal.

Completeness4/5

Core operations (connect, flash, memory R/W, RTT R/W, logging, reset) are covered, but minor gaps like erase or verify exist.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI to directly control SEGGER J-Link embedded debug probes via the Model Context Protocol for debugging and firmware management. Users can perform tasks like reading registers, analyzing memory, flashing firmware, and tracking RTT logs using natural language commands.
    21
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants like Claude to directly debug microcontrollers via JLink, supporting breakpoints, single-step, memory/register access, variable inspection, RTT logging, and firmware flashing.
    25
    5
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to debug embedded devices via SEGGER J-Link probes, including reading memory, flashing firmware, streaming RTT logs, and diagnosing crashes.
    47
    539
    25
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MisakaMikoto128/J-Link-RTT-Viewer-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server