MCP J-Link Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP J-Link ServerFlash firmware.hex to my STM32 and check the RTT logs."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP J-Link Server
透過 Model Context Protocol (MCP) 讓 AI 直接控制 SEGGER J-Link 嵌入式除錯探針。
讓 AI 自動讀取暫存器、分析記憶體、燒錄韌體、追蹤 RTT 日誌 — 用自然語言描述問題,AI 幫你除錯。
功能概覽
群組 | 工具 | 說明 |
探索 |
| 列舉探針、查看連線狀態 |
連線 |
| 開啟/連線/關閉探針 |
記憶體 |
| 讀寫記憶體(8/16/32-bit) |
燒錄 |
| 韌體燒錄、全片擦除 |
執行控制 |
| 重置/暫停/繼續/單步 |
暫存器 |
| 讀寫 CPU 暫存器 |
RTT |
| SEGGER RTT 即時通訊 |
共 21 個 MCP 工具,涵蓋嵌入式除錯的完整工作流程。
Related MCP server: jlink-mcp
前置需求
Python 3.10+
SEGGER J-Link Software — 下載安裝
J-Link 探針(USB 連接)
注意:Python 位元數必須與 J-Link DLL 匹配(64-bit Python 需要
JLink_x64.dll)。
安裝
git clone https://github.com/你的帳號/MCP_JLINK.git
cd MCP_JLINK
pip install -e .驗證安裝:
python -m mcp_jlink伺服器啟動後會透過 STDIO 等待 MCP 請求(按 Ctrl+C 結束)。
整合設定
Claude Code / Antigravity
將以下設定加入 MCP 設定檔:
{
"mcpServers": {
"jlink": {
"command": "python",
"args": ["-m", "mcp_jlink"],
"cwd": "/path/to/MCP_JLINK"
}
}
}Claude Desktop
在 claude_desktop_config.json 中加入相同設定。
使用範例
設定完成後,直接用自然語言與 AI 對話:
你:我的板子卡住了,幫我看一下停在哪裡
AI:(自動執行 jlink_open → jlink_connect → jlink_halt → 讀取 PC/LR 暫存器 → 分析)
程式停在 0x0800_1A3C,位於 SysTick_Handler 中。
LR = 0xFFFF_FFF9,表示從 Thread Mode 進入中斷。
看起來是 SysTick 中斷處理函式內的無限迴圈...你:幫我燒錄 firmware.hex 到 STM32F407VG
AI:(自動執行 jlink_open → jlink_connect("STM32F407VG") → jlink_flash_file → jlink_reset)
韌體燒錄完成!已寫入 32,768 bytes,耗時 1.2 秒。目標已重置並開始執行。你:開啟 RTT 日誌,讓我看看板子在印什麼
AI:(自動執行 rtt_start → rtt_read → 持續讀取)
RTT Channel 0 輸出:
[INFO] System boot OK
[INFO] Sensor init: BME280 detected
[WARN] WiFi connection timeout, retrying...J-Link DLL 搜尋
本專案不內含 J-Link SDK,DLL 搜尋優先順序:
環境變數
JLINK_SDK_PATHSEGGER 預設安裝路徑下的
JLink*目錄(自動匹配帶版本號名稱如JLink_V922)pylink-square 內建搜尋
專案架構
src/mcp_jlink/
├── server.py # FastMCP 伺服器 + 21 個 MCP tool 定義
├── connection.py # JLinkManager 連線狀態機(單例)
├── errors.py # 自訂例外 + 前置條件裝飾器
├── __main__.py # python -m mcp_jlink 進入點
└── __init__.py
skills/ # AI 除錯情境指南(按需載入)
├── SKILL.md # 主索引 + 情境路由表
├── crash-analysis.md
├── hardfault-diagnosis.md
├── peripheral-verification.md
├── flash-and-verify.md
├── rtt-logging.md
├── memory-leak-detection.md
├── variable-monitoring.md
├── interrupt-analysis.md
├── low-power-debug.md
└── batch-flashing.md連線狀態機
DISCONNECTED ──open()──> PROBE_OPEN ──connect()──> TARGET_CONNECTED ──rtt_start()──> RTT_ACTIVE
^ | | |
└──────close()─────────┴──────────close()──────────┴──────────close()─────────────┘每個工具透過裝飾器自動檢查前置條件,不需要手動管理連線狀態。
開發
# 安裝開發相依
pip install -e ".[dev]"
# 執行測試
pytestLicense
MIT
Available Tools
21 toolsjlink_closeA
關閉 J-Link 連線並釋放所有資源。
會自動停止 RTT(若啟動中)、斷開目標連線、關閉探針連線。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and effectively discloses key behavioral traits: it performs cleanup actions (closing connections, releasing resources) and automatically stops RTT if active. It covers the tool's effects well, though it could mention potential side effects like loss of debug state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action ('關閉 J-Link 連線並釋放所有資源') followed by specific details in a second sentence. It is concise, with every sentence adding value, and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a cleanup operation with no parameters) and the presence of an output schema, the description is mostly complete. It explains what the tool does and its automatic behaviors, but could benefit from mentioning prerequisites (e.g., requires an open connection) or confirmation of success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so no parameter documentation is needed. The description appropriately focuses on behavior without redundant parameter info, earning a baseline score of 4 for not adding unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('關閉', '釋放') and resources ('J-Link 連線', '所有資源'), distinguishing it from siblings like jlink_open or jlink_connect. It explicitly describes what the tool does beyond just the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by detailing what actions are performed (e.g., stopping RTT, disconnecting targets), which helps understand when to use it, such as after debugging sessions. However, it does not explicitly state when not to use it or name alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_connectA
連線到目標晶片。
必須先透過 jlink_open 開啟探針。常用晶片名稱範例: STM32F407VE, STM32F103C8, nRF52832_xxAA, LPC1768, ATSAMD21G18 等。
Args: chip_name: 目標晶片名稱(SEGGER 裝置資料庫中的名稱) speed: 通訊速率,可填 "auto"、"adaptive" 或數字 kHz(如 "4000") interface: 除錯介面,"SWD" 或 "JTAG"(預設 SWD)
| Name | Required | Description | Default |
|---|---|---|---|
| chip_name | Yes | ||
| speed | No | auto | |
| interface | No | SWD |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states this is a connection operation and mentions prerequisite (jlink_open), but doesn't disclose important behavioral aspects like error conditions, timeout behavior, authentication requirements, or what happens if connection fails. The description adds some context but leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with purpose statement, prerequisite, examples, and parameter documentation. It's appropriately sized for a 3-parameter tool with complex usage context. Every sentence serves a clear purpose, though the parameter documentation could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (connection operation with prerequisites), 0% schema coverage, but presence of output schema, the description does well. It covers purpose, prerequisites, parameter semantics, and examples. The output schema existence means return values don't need explanation. Some behavioral context is still missing for a connection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing detailed parameter explanations: chip_name is explained as target chip name from SEGGER device database with examples, speed is explained with options and format examples, and interface is explained with options and default. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('連線到目標晶片' - connect to target chip) and resource (target chip), making the purpose immediately understandable. It distinguishes from siblings like jlink_open (which must be called first) and jlink_close, but doesn't explicitly differentiate from other connection-related tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisites ('必須先透過 jlink_open 開啟探針' - must first open probe via jlink_open) and gives clear examples of when to use it (connecting to specific chips). It also implicitly distinguishes from jlink_open by stating the dependency relationship.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_erase_chipA
擦除目標晶片的整個 Flash 記憶體。
注意:此操作不可逆轉,將清除晶片上所有已燒錄的韌體。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job. It explicitly warns that the operation is irreversible ('不可逆轉') and will clear all firmware ('清除晶片上所有已燒錄的韌體'), which are critical behavioral disclosures for a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first states the purpose, the second provides critical warning. Both sentences earn their place by adding essential information beyond what's in the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, zero-parameter tool with no annotations but with an output schema, the description is complete. It explains what the tool does, its irreversible nature, and the scope of destruction. The output schema will handle return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the operation's implications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('擦除' - erase) and target resource ('目標晶片的整個 Flash 記憶體' - entire Flash memory of target chip). It distinguishes from siblings like jlink_flash_file (which writes) and jlink_memory_write (which writes specific addresses).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool - for erasing the entire chip's Flash memory. However, it doesn't explicitly mention when NOT to use it or name specific alternatives like jlink_memory_write for partial erasure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_flash_fileA
燒錄韌體檔案到目標晶片的 Flash 記憶體。
支援 .hex、.bin、.srec 等常見韌體格式。 燒錄前會自動擦除對應的 Flash 區塊。
Args: file_path: 韌體檔案的絕對路徑 address: 燒錄起始位址(.hex 檔通常忽略此參數),預設 "0x0"
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| address | No | 0x0 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully describes key behaviors: automatic erasure of corresponding Flash blocks before flashing, support for specific file formats, and the address parameter behavior with .hex files. It doesn't mention error handling, completion signals, or performance characteristics, but provides substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement, supported formats, key behavioral detail (automatic erasure), and parameter explanations. Every sentence adds value, and the information is front-loaded with the most important details first. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a potentially destructive operation (flashing firmware) with no annotations and an output schema exists, the description provides good coverage. It explains the core operation, file formats, automatic erasure behavior, and parameter semantics. The main gap is lack of explicit warning about the destructive nature, though the 'automatic erasure' mention implies data loss.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, which it does effectively. It explains both parameters: file_path as the absolute path to the firmware file, and address as the starting address for flashing with special handling for .hex files. The description adds meaningful context about format-specific behavior that the schema alone wouldn't provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('燒錄韌體檔案' - flash firmware file) and target resource ('目標晶片的 Flash 記憶體' - target chip's Flash memory). It distinguishes itself from siblings like jlink_erase_chip (which only erases) and jlink_memory_write (which writes raw data rather than firmware files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool - for flashing firmware files in specific formats (.hex, .bin, .srec) to Flash memory. It mentions that .hex files typically ignore the address parameter, which helps guide usage. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_get_statusA
取得目前 J-Link 連線狀態的完整摘要。
顯示探針連線狀態、目標晶片資訊、RTT 狀態等。 此工具隨時可以呼叫。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a read-only status check ('取得' - get/obtain) that can be called anytime, implying non-destructive and safe operation. However, it doesn't mention potential side effects (e.g., if calling it might reset connections), performance characteristics, or error conditions, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise and well-structured: two sentences that front-load the core purpose followed by additional detail about what information is included and usage guidance. Every sentence earns its place with no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, read-only status check) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers purpose, scope of information returned, and usage context. The main gap is lack of explicit behavioral details about potential side effects or error handling, but for this type of diagnostic tool, the description provides adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't waste space discussing non-existent parameters, maintaining focus on the tool's purpose. Since there are no parameters, the baseline score is 4 for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('取得' - get/obtain) and resource ('J-Link 連線狀態' - J-Link connection status), plus additional detail about what information is included ('完整摘要' - complete summary, '顯示探針連線狀態、目標晶片資訊、RTT 狀態等' - shows probe connection status, target chip information, RTT status, etc.). It distinguishes itself from siblings like jlink_connect, jlink_close, and rtt_get_status by focusing on status retrieval rather than connection management or RTT-specific operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with '此工具隨時可以呼叫' (this tool can be called at any time), indicating it's safe to use without prerequisites. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools, such as clarifying that rtt_get_status is for RTT-specific status while this is broader J-Link status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_goB
繼續執行目標晶片的 CPU(從目前位置繼續)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('continue execution from the current position') but doesn't cover critical aspects like whether this requires a connected/halted state, potential side effects, error conditions, or what the output schema contains. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Chinese that directly states the tool's function without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, an output schema exists, and no annotations are provided, the description is minimally adequate. However, it lacks details on behavioral context (e.g., state requirements) and doesn't leverage the output schema to hint at return values. For a tool interacting with hardware debugging, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it meets the baseline. A 5 would require adding value beyond the schema, but with no parameters, there's little opportunity for enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('繼續執行' meaning 'continue execution') and the target ('目標晶片的 CPU' meaning 'target chip's CPU'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'jlink_step' (single-step) or 'jlink_halt' (stop), which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the CPU must be halted first), exclusions, or comparisons to siblings like 'jlink_step' for stepping or 'jlink_reset' for restarting. This leaves the agent without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_haltB
暫停目標晶片的 CPU 執行。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a control operation ('pause/halt') but does not specify whether this is reversible, if it affects other system states, what permissions are needed, or the expected response format. This leaves significant gaps for a tool that likely interacts with hardware.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any fluff or redundant information. It is front-loaded and appropriately sized for its function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema exists (which should cover return values), and no annotations, the description provides a basic purpose but lacks details on behavior, usage context, or integration with siblings. It is minimally viable but has clear gaps in guidance and transparency for a hardware control tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description does not need to add parameter details, so it appropriately avoids redundancy. A baseline of 4 is given as it efficiently handles the lack of parameters without unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('暫停' meaning 'pause/halt') and the target ('目標晶片的 CPU 執行' meaning 'target chip's CPU execution'), providing a specific verb and resource. However, it does not explicitly distinguish this tool from its sibling 'jlink_reset' (which might also stop execution in a different way), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives like 'jlink_reset' or 'jlink_step', nor does it mention prerequisites such as requiring an active connection to the target chip. It merely states what the tool does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_list_emulatorsA
列舉所有透過 USB 連線的 J-Link 除錯探針。
回傳每支探針的序號與產品名稱。 此工具不需要先開啟連線即可使用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it enumerates connected probes, returns serial numbers and product names, and explicitly states it works without requiring an open connection first. This covers the essential 'what it does' and 'how it behaves' for a discovery tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with zero waste: first states purpose, second specifies return values, third provides important usage context. Every sentence earns its place and information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple enumeration tool with 0 parameters, no annotations, but an output schema (which handles return value documentation), the description is complete. It covers purpose, return data, and important behavioral context about not needing prior connection, which is exactly what an agent needs to understand when and how to use this discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool does and returns. This meets the baseline expectation for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('列舉所有透過 USB 連線的 J-Link 除錯探針' - enumerate all USB-connected J-Link debug probes) and distinguishes it from siblings by focusing on enumeration rather than connection, control, or RTT operations. It explicitly mentions the resource (J-Link debug probes) and scope (USB-connected).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('此工具不需要先開啟連線即可使用' - this tool can be used without first opening a connection), which implicitly suggests it's for initial discovery before using connection/control tools. However, it doesn't explicitly name alternatives or state 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.
jlink_memory_readB
讀取目標晶片的記憶體。
Args: address: 起始位址,支援十六進位格式如 "0x20000000" 或十進位 num_units: 讀取的單元數量(依 width 而定) width: 資料寬度,可選 8、16 或 32(位元),預設 32
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| num_units | No | ||
| width | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a read operation, implying it's non-destructive, but doesn't address critical aspects like required permissions, connection state prerequisites, error conditions, or rate limits. The description is minimal and lacks behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose first, followed by parameter details. Every sentence adds value, with no redundant information. The structure is clear, though it could benefit from brief usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (memory read operation with 3 parameters), no annotations, and an output schema present, the description is moderately complete. It covers parameter semantics well but lacks behavioral context and usage guidelines. The output schema likely handles return values, reducing the need for output description, but overall completeness is adequate with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant semantic value beyond the schema, which has 0% description coverage. It explains each parameter: 'address' supports hex/decimal formats, 'num_units' is the count of units based on width, and 'width' specifies bit width with allowed values and default. This compensates well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '讀取目標晶片的記憶體' (Read target chip memory). It specifies the verb ('讀取' - read) and resource ('記憶體' - memory), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'jlink_register_read' or 'rtt_read', which also perform read operations on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'jlink_register_read' (for registers) or 'rtt_read' (for RTT buffers), nor does it specify prerequisites such as requiring an active connection. Usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_memory_writeB
寫入資料到目標晶片的記憶體。
Args: address: 起始位址,支援十六進位格式如 "0x20000000" 或十進位 data: 要寫入的資料陣列,每個元素對應一個 width 單元 width: 資料寬度,可選 8、16 或 32(位元),預設 32
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| data | Yes | ||
| width | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a write operation, implying mutation, but doesn't disclose critical behavioral traits: whether it requires an active connection, has side effects (e.g., halting the chip), includes error handling, or has rate limits. The description lacks details on what happens if writes fail or overlap with protected memory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The Args section is structured but could be more concise; for example, combining format details into bullet points might improve readability. Overall, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (a write operation with 3 parameters, no annotations, but with an output schema), the description is partially complete. It explains parameters well but lacks behavioral context (e.g., connection requirements, error handling). The output schema exists, so return values needn't be described, but other gaps remain for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: address supports hex/decimal formats, data is an array where each element corresponds to a width unit, and width options are 8, 16, or 32 bits with default 32. This clarifies beyond the basic schema types, though it doesn't explain array length constraints or address alignment rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '寫入資料' (write data) and resource '目標晶片的記憶體' (target chip's memory), making the purpose explicit. It distinguishes from siblings like jlink_memory_read (read vs. write) but doesn't explicitly differentiate from other write operations like jlink_register_write or rtt_write.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description doesn't mention prerequisites (e.g., connection status), compare with siblings like jlink_register_write (memory vs. register writes) or rtt_write (RTT vs. direct memory writes), or specify when this tool is appropriate versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_openA
開啟與 J-Link 探針的連線。
若只有一支探針連線,可不指定參數。若有多支探針,需透過序號指定。 也可透過 IP 位址連線到遠端 J-Link(透過 J-Link Remote Server)。
Args: serial_no: J-Link 探針序號(可透過 jlink_list_emulators 取得) ip_addr: 遠端 J-Link 的 IP 位址與埠號,格式如 "192.168.1.100:19020"
| Name | Required | Description | Default |
|---|---|---|---|
| serial_no | No | ||
| ip_addr | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the connection behavior (local vs. remote, single vs. multiple probes) but lacks details on permissions, error handling, or what happens if connection fails. It mentions jlink_list_emulators as a way to get serial numbers, adding some context, but doesn't cover all behavioral aspects like timeouts or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: the first sentence states the purpose, followed by usage rules for parameters. The Args section is clearly labeled and provides necessary details without redundancy. Every sentence adds value, and there's no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which likely describes the connection result), the description doesn't need to explain return values. It covers the core functionality and parameter usage adequately. However, as a connection tool with no annotations, it could benefit from more behavioral context (e.g., idempotency, connection persistence), though the output schema may fill some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains both parameters: serial_no (J-Link probe serial number, obtainable from jlink_list_emulators) and ip_addr (remote J-Link IP address and port in format '192.168.1.100:19020'). This adds meaningful semantics beyond the bare schema, though it doesn't detail all edge cases (e.g., what if both parameters are provided).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('開啟與 J-Link 探針的連線' - open connection to J-Link probe) and specifies the resource (J-Link probe). It distinguishes from siblings like jlink_close (close connection) and jlink_connect (likely a different connection method), making the purpose specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use parameters: '若只有一支探針連線,可不指定參數' (if only one probe is connected, parameters can be omitted) and '若有多支探針,需透過序號指定' (if multiple probes, specify via serial number). It also mentions an alternative method for remote connections via IP address, giving clear context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_register_readB
讀取指定的 CPU 暫存器值。
Args: register: 暫存器索引(0=R0, 1=R1, ..., 13=SP, 14=LR, 15=PC, 16=xPSR)
| Name | Required | Description | Default |
|---|---|---|---|
| register | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation, it doesn't disclose important behavioral aspects: whether this requires the target to be halted, what happens if the register is invalid, whether there are permission requirements, or what the typical response format looks like. For a hardware debugging tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that both earn their place. The first states the core purpose, and the second provides crucial parameter semantics. The structure is front-loaded with the main purpose first. It could be slightly improved by integrating the parameter documentation more seamlessly rather than as a separate 'Args:' section.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which handles return value documentation), the description's main job is to explain purpose and parameters. It does this adequately for the single parameter. However, for a hardware debugging tool with no annotations, it should ideally mention behavioral constraints like requiring the target to be halted or connected. The presence of an output schema raises the baseline, but there are still contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage (the schema only shows 'register' is an integer), the description provides essential semantic information that compensates fully. It explains that the integer parameter represents register indices with specific mappings (0=R0, 1=R1, ..., 13=SP, 14=LR, 15=PC, 16=xPSR). This transforms an abstract integer parameter into meaningful register identifiers that the agent needs to use the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '讀取指定的 CPU 暫存器值' (read specified CPU register value), which is a specific verb+resource combination. It distinguishes itself from siblings like jlink_register_read_all (which reads all registers) and jlink_register_write (which writes to registers). However, it doesn't explicitly mention the J-Link debugger context that's implied by the tool name prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use jlink_register_read versus jlink_register_read_all, nor does it specify prerequisites like requiring an active J-Link connection. The only implicit guidance comes from the parameter documentation showing register mappings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_register_read_allA
讀取所有 CPU 暫存器的值。CPU 必須處於暫停狀態。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses one important behavioral trait: the CPU must be halted. However, it doesn't mention other potential behavioral aspects like whether this requires specific permissions, what happens if the CPU isn't halted, whether it's a read-only operation, or what the return format looks like. The description is minimal but doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just two short sentences that each earn their place. The first sentence states the purpose, the second states the prerequisite. There's zero waste or redundancy. It's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a read operation with 0 parameters and an output schema exists, the description is reasonably complete. It states what the tool does and the prerequisite condition. However, for a tool that reads hardware registers (which could have complex output), the description doesn't hint at what kind of data structure or format to expect in the output, relying entirely on the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description appropriately doesn't discuss parameters since none exist. It focuses on the tool's purpose and prerequisites instead. For a zero-parameter tool, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '讀取所有 CPU 暫存器的值' (Read all CPU register values). It specifies the verb ('讀取' - read) and resource ('所有 CPU 暫存器' - all CPU registers). However, it doesn't explicitly differentiate from its sibling 'jlink_register_read', which appears to read individual registers rather than all registers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'CPU 必須處於暫停狀態' (CPU must be in halted state). This is an important prerequisite. However, it doesn't explicitly mention when NOT to use it or compare it to alternatives like 'jlink_register_read' for reading individual registers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_register_writeB
寫入值到指定的 CPU 暫存器。
Args: register: 暫存器索引(0=R0, ..., 13=SP, 14=LR, 15=PC) value: 要寫入的 32 位元值
| Name | Required | Description | Default |
|---|---|---|---|
| register | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a write operation but doesn't mention important behavioral aspects: whether this requires the target to be halted, if it affects program execution, what permissions are needed, or what happens on invalid register/value combinations. The description is minimal and lacks crucial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with a clear purpose statement followed by parameter explanations. The two-sentence structure is efficient with no wasted words. It could be slightly improved by front-loading more critical information about when to use the tool, but within its current scope, it's well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a write operation to CPU registers (a potentially sensitive operation) with no annotations and an output schema (which handles return values), the description is moderately complete. It explains what the tool does and parameter semantics well, but lacks important contextual information about when/how to use it safely, prerequisites, and behavioral constraints that would be crucial for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant semantic value beyond the schema. The schema only shows 'register' as an integer and 'value' as an integer with 0% description coverage. The description provides the critical mapping: 'register: 暫存器索引(0=R0, ..., 13=SP, 14=LR, 15=PC)' which explains the register numbering scheme, and clarifies 'value: 要寫入的 32 位元值' indicating it's a 32-bit value. This compensates well for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '寫入值到指定的 CPU 暫存器' (Write value to specified CPU register). It uses a specific verb ('寫入' - write) and identifies the resource (CPU register). However, it doesn't explicitly distinguish itself from its closest sibling 'jlink_register_read', which would have earned a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., connection must be established), nor does it differentiate from similar tools like 'jlink_memory_write' or explain when register writes are appropriate versus memory writes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_resetB
重置目標晶片。
Args: halt: 重置後是否暫停 CPU(預設 True,暫停在重置向量)
| Name | Required | Description | Default |
|---|---|---|---|
| halt | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the reset can optionally halt the CPU, but doesn't explain what 'reset' entails (e.g., whether it reloads firmware, clears memory, or affects peripherals), nor does it cover error conditions, permissions needed, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by parameter details in a structured 'Args:' section. It's efficient with minimal waste, though the parameter explanation could be slightly more integrated into the main text for better flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a reset operation with one parameter) and the presence of an output schema (which handles return values), the description is adequate but incomplete. It lacks details on behavioral aspects like what 'reset' actually does, which is critical for a tool with potential side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'halt', explaining that it controls whether the CPU pauses after reset (defaulting to True at the reset vector). Since schema description coverage is 0% and there's only one parameter, this compensates well, though it could clarify what 'reset vector' means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('重置目標晶片' - reset target chip) with a precise verb and resource. It distinguishes itself from siblings like jlink_halt (which only pauses) and jlink_go (which resumes execution), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While the description implies it resets the chip, it doesn't specify prerequisites (e.g., whether the chip must be connected first using jlink_connect) or contrast with similar tools like jlink_erase_chip for more destructive resets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jlink_stepA
執行單一指令(單步執行)。CPU 必須處於暫停狀態。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses a critical behavioral constraint (CPU must be paused) which is valuable. However, it doesn't mention other important traits like whether this affects program state permanently, what happens after execution (CPU remains paused?), error conditions, or rate limits. For a debugging tool with zero annotation coverage, this is minimal but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the core purpose. Every word earns its place: it states what the tool does and the prerequisite condition without any fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is reasonably complete. It covers the core purpose and a critical prerequisite. However, as a debugging tool with no annotations, it could benefit from mentioning what the step executes (e.g., CPU instruction) or what the output contains, though the output schema may cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to explain parameters, and it doesn't add any parameter-specific information beyond what's already covered by the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('執行單一指令' - execute single instruction) and the resource/context ('單步執行' - single-step execution). It distinguishes from siblings like 'jlink_go' (continuous execution) and 'jlink_halt' (pause). However, it doesn't specify what type of instruction or at what level (CPU instruction, assembly, etc.), keeping it from being fully specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'CPU 必須處於暫停狀態' (CPU must be in paused state). This provides clear prerequisites and distinguishes it from tools like 'jlink_go' which requires CPU to be running. It implicitly suggests alternatives like 'jlink_go' for continuous execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rtt_get_statusB
取得 RTT 緩衝區狀態資訊。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does ('取得 RTT 緩衝區狀態資訊') without describing the behavior: whether it's read-only or has side effects, what the output contains (though an output schema exists), error conditions, or dependencies on other tools like 'rtt_start'. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese: '取得 RTT 緩衝區狀態資訊.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every word earns its place by specifying the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate. However, it lacks context about RTT (Real-Time Transfer) or how this fits with sibling tools like 'rtt_start'/'rtt_stop'. With no annotations and many sibling tools, more guidance would help the agent understand the tool's role in the broader debugging workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, and it correctly doesn't mention any. A baseline of 4 is appropriate for zero-parameter tools, as there's no parameter semantics to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool '取得 RTT 緩衝區狀態資訊' (gets RTT buffer status information), which provides a clear verb ('取得' - get) and resource ('RTT 緩衝區狀態資訊' - RTT buffer status information). However, it doesn't distinguish this from sibling tools like 'jlink_get_status' or 'rtt_start'/'rtt_stop', leaving ambiguity about when to use this specific RTT status tool versus other status-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether RTT must be started first), compare it to 'jlink_get_status', or specify scenarios where RTT buffer status is needed versus other operations. This leaves the agent without context for tool selection among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rtt_readA
從 RTT 上行緩衝區讀取資料(裝置→主機方向)。
讀取的資料會從緩衝區中移除。若無資料則回傳空結果。
Args: buffer_index: RTT 上行緩衝區索引,預設 0(通常是 Terminal) num_bytes: 最大讀取位元組數,預設 1024
| Name | Required | Description | Default |
|---|---|---|---|
| buffer_index | No | ||
| num_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: '讀取的資料會從緩衝區中移除' (read data is removed from buffer) indicates destructive consumption, and '若無資料則回傳空結果' (returns empty result if no data) clarifies the empty case behavior. However, it doesn't mention potential rate limits, error conditions, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement first, followed by behavioral notes, then parameter explanations. Every sentence adds value with no wasted words, and the bilingual presentation (Chinese with English parameter names) is practical for the context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which handles return values), no annotations, and good parameter coverage in the description, the description is quite complete. It covers purpose, key behavior, and parameter semantics. The main gap is lack of explicit usage guidelines compared to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining both parameters: buffer_index specifies 'RTT 上行緩衝區索引,預設 0(通常是 Terminal)' (RTT upstream buffer index, default 0, usually Terminal), and num_bytes specifies '最大讀取位元組數,預設 1024' (maximum bytes to read, default 1024). This adds meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('從 RTT 上行緩衝區讀取資料' - read data from RTT upstream buffer) and resource ('裝置→主機方向' - device to host direction). It distinguishes from sibling tools like rtt_write (which writes data) and other J-Link tools that perform different operations on the debugger/emulator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to read data from the RTT upstream buffer, but doesn't explicitly state when to use this vs alternatives like rtt_get_status (which provides status rather than data) or other buffer operations. No explicit 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.
rtt_startA
啟動 RTT(Real-Time Transfer)通訊。
目標韌體必須已整合 SEGGER RTT 函式庫。 啟動後可使用 rtt_read / rtt_write 進行雙向通訊。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the prerequisite (firmware must integrate SEGGER RTT library) and the post-start capabilities (using rtt_read/rtt_write), which adds useful context. However, it doesn't describe what the tool actually does behaviorally (e.g., initializes communication channels, returns status), potential side effects, error conditions, or what the output contains. The description is adequate but lacks depth for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: two sentences in Chinese that efficiently convey the purpose, prerequisite, and follow-up actions. Every sentence earns its place with no wasted words, and it's front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has 0 parameters, 100% schema coverage, no annotations, but has an output schema (which means the description doesn't need to explain return values), the description is reasonably complete. It covers the purpose, prerequisite, and post-execution context. However, for a tool with no annotations, it could benefit from more behavioral details about what 'starting RTT communication' entails operationally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain parameters, and it appropriately doesn't mention any. The baseline for 0 parameters is 4, as there's nothing to document and the description doesn't incorrectly reference parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '啟動 RTT(Real-Time Transfer)通訊' (Start RTT communication). It specifies the verb ('啟動' - start) and resource ('RTT通訊' - RTT communication). However, it doesn't explicitly differentiate from sibling tools like 'rtt_stop' or 'rtt_get_status' beyond mentioning that after starting, 'rtt_read' and 'rtt_write' can be used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: '目標韌體必須已整合 SEGGER RTT 函式庫' (Target firmware must already integrate SEGGER RTT library) and mentions that after starting, 'rtt_read' and 'rtt_write' can be used. However, it doesn't explicitly state when to use this tool versus alternatives like 'rtt_stop' or 'rtt_get_status', nor does it provide clear exclusions or prerequisites beyond the library requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rtt_stopB
停止 RTT 通訊。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action ('stop') but doesn't disclose behavioral traits such as whether this is a safe operation, if it requires specific permissions, what happens to ongoing communications, or error conditions. This is inadequate for a tool with potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core action, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters and an output schema exists (which handles return values), the description's minimalism is somewhat acceptable. However, for a tool that likely interacts with hardware/communication systems, more context on behavior and usage is needed, especially with no annotations provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it correctly implies no parameters are required, aligning with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('停止' meaning 'stop') and target ('RTT 通訊' meaning 'RTT communication'), providing a basic purpose. However, it's vague about what RTT communication entails and doesn't distinguish from sibling tools like 'rtt_start' or 'rtt_get_status' beyond the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., that RTT must be started first using 'rtt_start'), exclusions, or relationships with sibling tools like 'rtt_get_status' for checking status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rtt_writeB
寫入資料到 RTT 下行緩衝區(主機→裝置方向)。
Args: text: 要傳送的文字內容 buffer_index: RTT 下行緩衝區索引,預設 0
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| buffer_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a write operation but doesn't disclose important behavioral aspects: whether this is synchronous/asynchronous, error conditions, buffer overflow behavior, or what happens if RTT isn't active. The description is minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with zero wasted words. The description is front-loaded with the core purpose, followed by clear parameter explanations. Every sentence serves a distinct purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic operation and parameters adequately. However, for a write operation with no annotations and complex sibling tools, it should ideally mention prerequisites (RTT must be started) and behavioral expectations. The existence of an output schema helps but doesn't fully compensate for the lack of operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining both parameters: 'text' as the content to send and 'buffer_index' as the RTT downlink buffer index with default value 0. This adds meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('寫入資料' - write data) and target ('RTT 下行緩衝區' - RTT downlink buffer) with direction specified ('主機→裝置方向' - host→device direction). It distinguishes from sibling rtt_read but doesn't explicitly contrast with other RTT tools like rtt_start/stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it's clear this is for writing to RTT buffers, there's no mention of prerequisites (e.g., whether RTT must be started first using rtt_start) or when to choose this over other communication methods.
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.
21 tool updates
v0.1.0- First observed
jlink_close - First observed
jlink_connect - First observed
jlink_erase_chip - First observed
jlink_flash_file - First observed
jlink_get_status - First observed
jlink_go - First observed
jlink_halt - First observed
jlink_list_emulators - First observed
jlink_memory_read - First observed
jlink_memory_write - First observed
jlink_open - First observed
jlink_register_read - First observed
jlink_register_read_all - First observed
jlink_register_write - First observed
jlink_reset - First observed
jlink_step - First observed
rtt_get_status - First observed
rtt_read - First observed
rtt_start - First observed
rtt_stop - First observed
rtt_write
TDQS
Every tool has a clearly distinct purpose with no ambiguity. Tools are well-organized into categories: core J-Link operations (connect, open, close, reset, go, halt, step), memory operations (read/write), register operations (read/write), flash operations (erase, flash), emulator management (list), status queries (get_status), and RTT operations (start, stop, read, write, get_status). Even similar-sounding tools like jlink_memory_read and jlink_register_read target different resources (memory vs CPU registers).
Perfectly consistent snake_case naming throughout. All tools follow a clear prefix pattern: 'jlink_' for core debugger operations and 'rtt_' for RTT-specific operations, followed by descriptive verb_noun combinations (e.g., jlink_connect, jlink_memory_write, rtt_start). This creates a predictable and readable naming convention across all 21 tools.
21 tools is slightly high but reasonable for a comprehensive embedded debugging server. The server covers multiple aspects: probe management, target control, memory/register access, flashing, and RTT communication. While some consolidation might be possible (e.g., register read/write could be one tool with a mode parameter), each tool earns its place by providing distinct functionality needed for embedded development workflows.
The tool surface provides complete coverage for J-Link debugging operations. It includes all essential CRUD/lifecycle operations: connection management (open/close/connect), target control (reset/halt/go/step), memory access (read/write), register access (read/write), flash programming (erase/flash), status monitoring, and RTT communication (start/stop/read/write). No obvious gaps exist for typical embedded debugging scenarios.
Maintenance
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
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Live browser debugging for AI assistants — DOM, console, network via MCP.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseAqualityBmaintenanceStateful MCP server for driving debug probes (J-Link) to flash, debug, and inspect embedded targets. Enables AI agents to perform flash, memory, breakpoint, and ELF/SVD-aware operations conversationally.4110MIT
- AlicenseAqualityDmaintenanceEnables AI assistants like Claude to directly debug microcontrollers via JLink, supporting breakpoints, single-step, memory/register access, variable inspection, RTT logging, and firmware flashing.255MIT
- AlicenseAqualityCmaintenanceEnables LLMs to interact with embedded devices by reading and writing Segger RTT data through a J-Link debugger.91MIT
- AlicenseAqualityDmaintenanceEnables AI tools to perform full-featured embedded microcontroller debugging via pyOCD and CMSIS-DAP probes, including probe management, flashing, breakpoints, register/memory access, fault analysis, and RTT communication.581MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/gghammer/MCP_JLINK'
If you have feedback or need assistance with the MCP directory API, please join our Discord server