Skip to main content
Glama

t32-mcp

An MCP server for Lauterbach TRACE32, enabling AI agents to inspect embedded targets, run PRACTICE scripts, and control execution.

面向 Windows 的 MCP 服务端。Agent 可以启动或连接 Lauterbach TRACE32 PowerView,执行调试命令、运行 PRACTICE 脚本并读取窗口输出。

能解决什么

  • 命令batch和脚本可返回失败位置、PowerView 的诊断,以及从本机手册查到的语法提示。

  • view 通过 PowerView 的打印接口导出窗口。超过回包长度时会给出本地结果路径。

  • 长操作返回操作编号,供后续查询。同步调用超过期限时,服务可终止自己启动的 PowerView 并报告会话状态。

Related MCP server: trace32-mcp

安装

下载源码,在项目目录运行,Python版本要求为3.12或更高。

python --version
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m t32_mcp --help

使用

在 MCP 客户端中添加 t32 的 stdio 服务。如果客户端使用 mcpServers,示例如下。见配置模板。

{
  "mcpServers": {
    "t32": {
      "command": "C:/path/to/t32-mcp/.venv/Scripts/python.exe",
      "args": ["-m", "t32_mcp", "--sys", "C:/T32"]
    }
  }
}

command 指向.venv安装的 python.exe。路径可在根目录执行指令获得。

(Resolve-Path .\.venv\Scripts\python.exe).Path.Replace('\', '/')

C:/T32 改为实际的 TRACE32 安装目录,无参数默认值为 C:\T32,可由T32SYS环境变量覆盖。

工具

工具

用途

session_open

启动 PowerView,或Attach到当前已运行实例

session_status

版本、探头、License、目标状态、各目录路径

session_close

关闭,或把 PowerView 留给用户

command

执行 PRACTICE 命令

evaluate

批量求值 PRACTICE 函数

script

运行 .cmm 脚本

view

读 T32 窗口

run

运行控制,等到目标停下

manual

查手册:给名字返回语法,给几个词返回候选,不需要会话

operation_get

继续等待未结束的操作

operation_cancel

取消等待或中止操作

三种连接

  • usb:在探头上启动一台 PowerView,窗口可见,你可以旁观。

  • sim:启动指令集模拟器,有空闲探头时用探头授权。

  • attach:连上你已经开着的 PowerView,默认只读。

Attach时如果 PowerView 没开 API,在命令行输入:

SETUP.API.RCL.Enable /PRotocol TCP /Port AUTO /RemoteHost DENY

不用重启,也不影响已经连着的目标。端口由服务端自己查找。

运行记录

从源码安装时,会话文件放在本仓库的 tmp/sessions/。安装 wheel 时,目录在虚拟环境的 t32_mcp/tmp/sessions/ 下。MCP 和 PowerView 都需要能读写这个位置。每个会话一个子目录,保留最近 20 个:

  • journal.jsonl 记录操作开始、参数和已取得的结果。进程意外退出时,最后一次操作可能只有开始记录。

  • view-<op>.txt 保存 PowerView 导出的窗口内容。

  • script-<op>.cmm、script-<op>.log:脚本和它的输出。

测试

.venv\Scripts\python -m pip install "pytest>=8"
.venv\Scripts\python -m pytest                       # 默认离线,包含模拟的板级与 Trace 场景
.venv\Scripts\python -m pytest -m hw                 # 运行需要 PowerView 和探头的集成测试
.venv\Scripts\python tools\mutation_check.py          # 离线变异检查
.venv\Scripts\python tools\mutation_check.py --live   # 也运行需要 PowerView 的变异检查
  • 板级与 Trace 场景在 RAPI 边界提供模拟响应,用实际的服务代码验证运行控制、错误传播和结果交付。默认测试可在没有探头或实验固件的环境中运行。

  • hw 集成测试用于配有一台空闲 PowerDebug 的独占测试台。它们会启动真实 PowerView,部分用例会终止测试进程并验证探头恢复。

  • 检查特定版本的窗口导出时,使用自己的匹配 ELF 和 Trace 归档。运行 python tools/window_sweep.py --help 可查看参数。

许可证

本项目采用 MIT 许可证。运行实机调试需要另行安装并授权 Lauterbach TRACE32。

Available Tools

11 tools
commandA
Destructive

Run PRACTICE commands in order. Stops at the first failure and reports what ran.

OK means TRACE32 accepted the command, so read settings back with evaluate. Use script for DO, session_close for QUIT, and run for Go when you need to wait for the target to stop. Commands can execute host programs through OS.Command. Wait for this reply before calling run: calls sent together run even if the setup failed.

NameRequiredDescriptionDefault
linesYesPRACTICE commands, one per item.
wait_sNoHow long this call waits before replying Running. The work continues either way.
deadline_sNoLimit for the whole operation. Raise it for slow work such as flash programming.
stop_on_errorNoSkip the remaining lines after a failure.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the destructive/openWorld annotations it discloses the fail-fast policy and a crucial caveat that OK only means TRACE32 accepted the command, so effects must be read back with evaluate. It also warns that commands can execute host programs via OS.Command. What it does not cover — irreversibility of destructive commands or concurrency across sessions — is minor given the annotations already flag destructiveness.

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?

Front-loaded with the action and stop policy, then alternatives, then ordering constraint. Sentences are terse and occasionally clipped ('OK means TRACE32 accepted the command'), but nothing is filler.

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?

For a destructive four-parameter tool with no output schema, it covers failure behavior, verification via evaluate, host-command risk, and call ordering. The only gap is any detail about what the per-line report looks like, which is left vague as 'reports what ran'.

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?

Schema description coverage is 100%, so lines, wait_s, deadline_s and stop_on_error are already documented. The description only adds that lines run in order and that stop_on_error governs skipping remaining lines, which is essentially a restatement of 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?

States a specific verb and resource ('Run PRACTICE commands in order') plus the execution policy (stops at first failure, reports what ran), which separates it from script, run, and session_close without needing their schemas.

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

Usage Guidelines5/5

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

Explicitly routes alternatives: script for DO, session_close for QUIT, run for Go when waiting for the target to stop. It also gives an ordering rule — wait for this reply before calling run because co-sent calls execute even if setup failed.

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

evaluateA
Read-only

Evaluate PRACTICE functions, for example Register(PC), Data.Long(D:0x20000000), Var.VALUE(counter), Trace.RECORDS(). Each expression succeeds or fails on its own, so pass everything you need in one call. An expression that calls a target function runs it on the target.

NameRequiredDescriptionDefault
expressionsYesPRACTICE function expressions.

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, yet the description adds non-obvious semantics: expressions are evaluated independently, and 'An expression that calls a target function runs it on the target', which is important context an agent would not get from the schema. That statement also softly qualifies the read-only framing, since target invocation may have effects, but the examples themselves are reads and there is no direct contradiction.

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?

Three short sentences, front-loaded with the purpose and immediately followed by illustrative examples. Every sentence carries information: what it does, what the input looks like, and how batching/failure behaves.

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?

For a one-parameter tool with annotations and no output schema, the definition covers purpose, input shape, and failure isolation. The remaining gap is result shape — it says expressions succeed or fail but not how per-expression results are returned — which matters somewhat since no output schema exists.

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 100% and the single 'expressions' array is documented only as 'PRACTICE function expressions', so the description's concrete expression syntax examples add genuine meaning about expected input format. It still does not state whether expressions are evaluated in order or whether the array elements can depend on each other, which caps it below 5.

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 names a specific verb and resource: 'Evaluate PRACTICE functions', and backs it with concrete examples (Register(PC), Data.Long(D:0x20000000), Var.VALUE(counter), Trace.RECORDS()). An agent can tell this is expression evaluation rather than a stateful 'command' or 'run'. It does not explicitly contrast itself with siblings like command, script, or run, which keeps it at 4.

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?

'Each expression succeeds or fails on its own, so pass everything you need in one call' is real batching guidance, telling the agent not to split work across calls. However, there is no indication of when to prefer this tool over the neighboring command, script, run, or view tools, so the choice between siblings is left to inference.

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

manualA
Read-only

Look something up in the TRACE32 manuals installed here. Give a name for its syntax, options and subcommands, or a few English words for candidates: Break.Set, Data.Long, PERF, flash programming. Add the target when a page differs by target: SYStem.MemAccess cortexm. An RTOS name alone lists its commands and setup: freertos. Needs no session. The manuals cover every target, so a name found here may not exist on yours: PRACTICE.CoMmanD.AVAILable() and PRACTICE.FUNCtion.AVAILable() tell.

NameRequiredDescriptionDefault
queryYesA command or function name, or a few words for what you want to do.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare a safe read (readOnlyHint=true, destructiveHint=false), and the description adds real context beyond that: the tool needs no session, the corpus spans every target so results may not apply to the user's target, and it names the verification path (PRACTICE.CoMmanD.AVAILable / PRACTICE.FUNCtion.AVAILable). It doesn't mention result size or pagination, so one notch below top.

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?

Front-loaded with purpose, then examples, then the session and target caveats. Dense but nearly every clause carries information; the telegraphic fragments ('Needs no session.') are slightly terse but never wasteful.

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?

For a one-parameter documentation lookup with no output schema, the description covers what goes in (four query shapes), what comes out (syntax, options, subcommands, candidate lists), prerequisites (no session), and the main failure mode (a name may not exist on the user's target, with the check to confirm).

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 100% and the parameter description already covers name-or-words, so the baseline is 3. The description adds genuine meaning the schema lacks: how to combine a name with a target qualifier, and that an RTOS name alone yields its commands and setup.

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?

States a specific verb and resource: 'Look something up in the TRACE32 manuals installed here.' It also enumerates what a lookup returns (syntax, options, subcommands, candidate matches), which separates it cleanly from execution-oriented siblings such as command, evaluate, and script.

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

Usage Guidelines4/5

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

Gives concrete invocation patterns — exact command name (Break.Set, Data.Long), keyword search (flash programming), target-qualified names (SYStem.MemAccess cortexm), and RTOS-only names (freertos) — plus 'Needs no session,' which tells the agent it can call this before/without session_open. It stops short of naming an explicit alternative or exclusion, so not a full 5.

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

operation_cancelA

Cancel an operation. A queued one is dropped, a script is stopped, a run stops waiting and leaves the target running. A blocked command can only be ended with kill=true, which kills PowerView and loses target state.

NameRequiredDescriptionDefault
killNoKill PowerView to end a blocked command. Target state is lost.
operationYesOperation number from the reply header.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries the real burden and does so well: it discloses state-dependent outcomes per operation type and warns that kill=true terminates PowerView and loses target state. There is mild tension with destructiveHint=false given the opt-in kill path, but the default path (kill=false) is genuinely non-destructive, so this reads as under-specification rather than contradiction.

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?

Three dense sentences, front-loaded with the core action before the state breakdown and the danger warning. The telegraphic style ("a run stops waiting and leaves the target running") is efficient but slightly compressed and open to misreading.

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?

For a two-parameter control tool with no output schema, the description covers the important unknowns: what cancellation means per state and the cost of the kill path. It does not say what the call returns or whether the cancellation is reversible, which an agent might want before invoking it.

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?

Schema coverage is 100% and the schema already explains that kill terminates PowerView and loses target state, so the description largely restates it. The one addition is the necessity qualifier ("can only be ended with kill=true"), which is useful but modest; baseline 3 is appropriate.

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?

States a specific verb and resource ("Cancel an operation") and immediately differentiates by operation state — queued operations are dropped, scripts are stopped, runs stop waiting. This lets an agent distinguish it from operation_get, though it never names a sibling explicitly.

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

Usage Guidelines4/5

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

"A blocked command can only be ended with kill=true" gives an explicit conditional for the non-obvious path, which is exactly the guidance an agent needs. It stops short of saying when not to cancel or whether to inspect the operation with operation_get first.

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

operation_getA
Read-only

Wait for an operation that replied Running, and return its final reply. Finished operations return the same reply again.

NameRequiredDescriptionDefault
wait_sNoHow long to wait, up to 30 seconds.
operationYesOperation number from the reply header.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real value by disclosing idempotency ('finished operations return the same reply again'), which annotations cannot express. It omits what happens when wait_s expires without completion (does it return 'Running' again, error, or partial?) and whether the call blocks the whole time.

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?

Two short sentences, zero filler, with the core behavior stated first and the idempotency caveat second. Every sentence earns its place.

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?

There is no output schema, so the description must explain the return value, and 'return its final reply' is vague about the shape of that reply and how it relates to the original tool's output. Timeout behavior, the most likely failure mode for a polling tool with a 30-second cap, is also undocumented.

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?

Schema description coverage is 100%, with both parameters documented in the schema including the 0-30 second range for wait_s. The description adds no meaning beyond the schema for either parameter — notably it does not say whether omitting wait_s means a non-blocking poll or the default 30-second block. Baseline 3 applies when the schema carries the full parameter burden.

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?

States a specific action on a specific resource: wait on an operation that returned 'Running' and return its final reply. The idempotent re-read behavior ('Finished operations return the same reply again') further pins down what the call does. It does not distinguish itself from the sibling operation_cancel, which is the only closely related tool.

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?

Usage is implied by the condition 'an operation that replied Running', so an agent can infer this is the follow-up to a long-running call. However, there is no explicit guidance on when not to call it, no mention of operation_cancel as the alternative when the agent wants to abandon the operation rather than wait, and no advice on choosing a wait_s value.

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

runA

Control the target: go, step, step_over, go_up, go_return, break. go waits until the target stops, also when it is already running. break stops the target now, wherever it is, so to wait for a breakpoint use go, not break. With until, go runs to that address and the reply says whether it got there. Reaching the deadline leaves the target running: nothing stops it for you.

NameRequiredDescriptionDefault
untilNoAddress expression where go should stop, such as a symbol.
actionYesWhat to do to the target.
wait_sNoHow long this call waits before replying Running. The work continues either way.
deadline_sNoLimit for the whole operation. Raise it for slow work such as flash programming.

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds genuinely non-obvious behavior beyond that: go blocks until the target stops, including when it is already running, and "Reaching the deadline leaves the target running: nothing stops it for you." That last point is a real operational hazard disclosed in prose. It does not describe permission or error behavior, so not a 5.

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?

It is short and front-loaded, leading with the action vocabulary before the behavioral caveats, and nearly every sentence carries new information. A few clauses are tightly packed ("go waits until the target stops, also when it is already running") and read slightly clipped, but nothing is redundant.

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?

With no output schema, the description must carry return-value burden; it partially does by noting the reply says whether go reached the `until` address, and it explains the deadline-left-running outcome. It does not describe what a normal reply looks like after step/step_over/break, leaving a gap for a four-parameter control 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?

Schema coverage is 100%, so the baseline is 3, but the description still adds meaning: it ties `until` to the go action specifically and says the reply reports whether that address was reached, which the schema does not state. It also reframes deadline behavior in terms of the target being left running rather than just a numeric limit.

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 opens with a specific verb-plus-resource framing ("Control the target") and enumerates the exact action vocabulary (go, step, step_over, go_up, go_return, break), so the tool's scope is unambiguous. It stops short of naming sibling tools (session_status, command, evaluate) to distinguish itself, which keeps it below a 5.

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

Usage Guidelines4/5

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

It gives explicit when-not guidance: "break stops the target now... so to wait for a breakpoint use go, not break," which directly prevents a common misuse. It also explains the until condition on go. It does not contrast this tool with siblings like `command` or `evaluate`, so routing among tools remains implicit.

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

scriptA
Destructive

Run a PRACTICE script from a file or from text and wait for it to end. Output from PRINT is returned. If it stops on an error the reply gives the failing command, and commands before it have already taken effect. A script that opens a dialog cannot continue, because nobody can click it.

NameRequiredDescriptionDefault
argsNoArguments passed to the script.
pathNoAbsolute path of a .cmm script.
textNoScript text, used when there is no file.
wait_sNoHow long this call waits before replying Running. The work continues either way.
deadline_sNoLimit for the whole operation. Raise it for slow work such as flash programming.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true; the description adds real value on top by disclosing that PRINT output is captured, that a mid-script failure reports the failing command with earlier commands already applied, and that dialog-opening scripts hang. That partial-effect warning is exactly the context a destructive tool needs. It stops short of noting reversibility or permissions.

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?

Four short sentences, front-loaded with what the tool does, followed by output and failure behaviour. The final sentence about dialogs is longer than needed but earns its place as a real hazard warning.

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?

For a five-parameter, potentially destructive execution tool with no output schema, the description covers the return value (PRINT output), the error shape, and the blocking caveat. Gaps remain around argument passing and the wait_s/deadline_s split, which the schema covers but the description never reconciles.

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?

Schema coverage is 100%, so the baseline applies and the description adds little: it only reinforces the path-vs-text choice already documented. It says nothing about 'args', 'deadline_s', or how 'wait_s' interacts with 'wait for it to end' — the latter is slightly at odds with the schema's note that the call may reply 'Running' while work continues.

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?

States a specific verb and resource ('Run a PRACTICE script') plus the two input modes (file or text) and that it blocks until completion. It implicitly separates itself from single-command siblings like command/evaluate by emphasising script execution, but never names an alternative, so differentiation is left to inference.

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?

Usage is only implied: multi-step scripts should go here rather than through command/evaluate/run, and scripts that show dialogs are ruled out. There is no explicit statement of when to prefer this over the four sibling execution tools, nor prerequisites such as needing an open session.

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

session_closeA

End the session. A PowerView started here quits, unless leave_running is true, which hands it to the user. An attached PowerView is only disconnected.

NameRequiredDescriptionDefault
leave_runningNoKeep the PowerView open for the user instead of quitting it.

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries the real burden and does so well: it discloses that an owned PowerView is quit (a process-terminating side effect) unless leave_running is true, while an attached PowerView is merely disconnected. That distinction is genuinely useful and not inferable from annotations. It stops short of stating whether in-flight operations are cancelled or what happens to a session with no PowerView.

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?

Two short sentences with the primary action front-loaded and the conditional behavior following immediately; every clause conveys distinct information about real consequences.

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?

For a one-optional-parameter tool with no output schema and annotations covering the safety profile, the description supplies the essential effect semantics across both session types. Minor gaps remain around return values and behavior when no PowerView or no session is present.

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?

Schema coverage is 100% and the parameter already documents its own default and meaning, so the description only restates the leave_running effect in narrative form ("hands it to the user"). It adds a little framing about who receives control but no format or edge-case detail 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?

Opens with a specific verb+resource ("End the session") and immediately qualifies the outcome for two different session states. An agent can distinguish this from session_open or session_status without opening any schema.

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 intent to terminate the session is implied clearly by name and text, but there is no explicit guidance on when to call it versus alternatives (e.g., session_status, or simply leaving a session idle), nor any stated prerequisites such as whether an active session must exist.

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

session_openA

Start or join a TRACE32 PowerView. Connects only: it does not reset, download or run.

connection:

  • usb: start a PowerView on the probe.

  • sim: start the instruction set simulator, licensed by the probe when one is free.

  • attach: join a PowerView the user already opened. Read-only unless access="control". Open it read-only and look first. Stopping the target or writing to it changes what the user is debugging, so ask the user before asking for control.

Installed targets: none found. TRACE32 directory: C:\T32.

NameRequiredDescriptionDefault
portNoRemote API TCP port of the PowerView to attach to. Found automatically when omitted.
accessNoattach only. observe is read-only and the default; control also allows command, script and run. Ask the user before using control.
serialNoProbe serial number. Needed when several probes are connected.
targetNoPowerView flavour, from the installed targets.arm
takeoverNoReset a probe held by an unknown PowerView. Ends that PowerView's session.
connectionNousb, sim or attach.usb

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only supply readOnlyHint=false and destructiveHint=false, so the description carries most of the behavioral burden and does so well: it clarifies that this is connect-only and that attach defaults to read-only. It also discloses that takeover "Ends that PowerView's session", which is a destructive side effect worth knowing about even though destructiveHint is false.

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 purpose is front-loaded in the first sentence and the mode details are cleanly separated. Minor waste from restating the ask-the-user warning that also appears in the access parameter text, and the trailing installed-targets note reads like runtime context rather than tool documentation.

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?

With six optional parameters, no required fields, and no output schema, the agent still gets no hint about what the call returns, such as a session handle that later sibling calls (session_status, session_close) presumably need. Everything about how to invoke the tool, including the risky takeover path, is covered.

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 100%, so the baseline is 3, but the description adds real meaning beyond the schema: what each connection mode actually does, that sim is licensed by the probe when one is free, and that no installed targets were found, which warns the agent that the default target of arm may not resolve. Port and serial are left to the schema, which is acceptable at full coverage.

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?

"Start or join a TRACE32 PowerView" gives a specific verb and resource, and the follow-up clause "Connects only: it does not reset, download or run" draws a hard line between this tool and siblings like run, command, or script. The three connection modes further sharpen what kind of connection is being opened.

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

Usage Guidelines5/5

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

Each mode (usb, sim, attach) is given an explicit situation in which it applies, including the licensing condition for sim. The attach guidance goes further, telling the agent to open read-only and look first, and to ask the user before requesting control.

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

session_statusA
Read-only

Report the session: PowerView version, probe, license, CPU, target state, script depth, and the demo, manual and session directories. Works while an operation is blocked.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds non-obvious behavior beyond that: it is usable while an operation is blocked, and it lists the exact diagnostic fields returned, which matters because there is no output schema.

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?

Two short sentences, front-loaded with the verb and the report contents, followed by the one behavioral caveat that could change an agent's decision. No redundant restatement of the name or of the annotations.

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?

With no output schema, enumerating the reported fields in the description is exactly the right compensation, and it does so. The only shortfall is that it does not indicate the shape/format of the report (structured object vs. formatted text), which an agent might want to know.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies a no-argument call and spends its words on reported contents instead.

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?

States a specific verb ('Report') and resource ('the session'), then enumerates exactly what is reported: version, probe, license, CPU, target state, script depth, and directories. That enumeration makes it trivially distinguishable from session_open and session_close among its siblings.

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 clause 'Works while an operation is blocked' gives one genuine operational condition under which to reach for this tool, which is useful implied guidance. However, it never explicitly contrasts with siblings like operation_get (which also inspects operation state), nor states 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.

viewA
Read-only

Read a TRACE32 window as text, for example Register.view, Frame.view /Locals /Caller, Data.dump D:0x20000000++0xFF, Break.List, Trace.STATistic.Func, TASK.List.tasks, PER.view. Output past max_chars stays in a file, and its path is in the reply.

Use full command names. Only display windows are accepted; for anything else use command with PRinTer.FILE and WinPrint.

Give Trace.List a record range such as Trace.List (-1000.)--(-1.): a full list can be gigabytes. Reading PER windows can touch registers that have read side effects.

NameRequiredDescriptionDefault
formatNotext, or csv for tables with raw numbers and fewer characters.text
windowYesCommand that opens the window, with its arguments.
max_charsNoCharacters returned in the reply.
deadline_sNoLimit for the whole operation. Raise it for slow work such as flash programming.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/destructiveHint annotations, the description discloses that output beyond max_chars is written to a file whose path appears in the reply, that deadlines may need raising for slow work such as flash programming, and that PER reads can touch registers with read side effects. That last caveat is exactly the kind of non-obvious behavior an agent could not infer from the structured fields.

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 main purpose is front-loaded in the first clause, and the long example list is dense but informative. The three short paragraphs are somewhat disjointed transitions rather than a flowing structure, but each sentence carries a distinct constraint.

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?

For a 4-parameter read tool with full schema coverage and no output schema, nearly everything an agent needs is present: accepted input class, truncation behavior, timeout tuning, and side-effect warnings. The only unaddressed item is when to prefer csv output, which is minor.

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 100%, so the baseline is 3, but the description adds real semantics: max_chars truncation behavior and where the overflow goes, the expectation that `window` is a full command with arguments, and why deadline_s might be raised. It does not describe the csv format option, which is left to 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?

States a specific verb and resource ("Read a TRACE32 window as text") and immediately grounds it with concrete examples like Register.view, Frame.view /Locals /Caller, and Data.dump D:0x20000000++0xFF. It also distinguishes itself from the sibling `command` tool by stating that only display windows are accepted here and that everything else should go through PRinTer.FILE and WinPrint.

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

Usage Guidelines5/5

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

Explicit routing rules are present: use this only for display windows, otherwise use `command` with PRinTer.FILE/WinPrint, and use full command names. It also gives conditional guidance per case — a record range for Trace.List because a full list can be gigabytes, and a warning before reading PER windows.

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.

  1. 11 tool updatesv0.1.0
    • First observedcommand
    • First observedevaluate
    • First observedmanual
    • First observedoperation_cancel
    • First observedoperation_get
    • First observedrun
    • First observedscript
    • First observedsession_close
    • First observedsession_open
    • First observedsession_status
    • First observedview

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation4/5

The tools have mostly distinct purposes: session lifecycle, command execution, expression evaluation, script running, window reading, target control, manual lookup, and async operation management. There is some conceptual overlap between command, script, evaluate, and run since all interact with the debugger, but the descriptions draw clear boundaries (e.g. use script for DO, read settings back with evaluate, use go not break to wait). An agent can reliably pick the right tool.

Naming Consistency3/5

There are recognizable prefix groups (session_status/session_open/session_close, operation_get/operation_cancel), but the remaining tools are bare verbs or nouns (command, evaluate, script, view, run, manual) with no consistent verb_noun pattern. The conventions are mixed, though all names are readable and unambiguous in context.

Tool Count5/5

Eleven tools is well within the ideal 3-15 range and each tool earns its place: session management, core execution primitives, manual lookup, and async operation handling. The surface is neither bloated nor thin for a debugger-control server.

Completeness4/5

The surface covers the full session lifecycle (open/status/close), command and script execution, expression evaluation, window reading, target control (go/step/break), manual lookup, and async operation get/cancel. Minor gaps exist in dedicated breakpoint, memory-write, and register tools, but these are largely reachable through command, evaluate, and view, so no major dead ends remain.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI agents to debug embedded systems by providing a comprehensive interface for GDB operations across multiple architectures like ARM and x86. It supports remote debugging via gdbserver or QEMU, allowing for detailed inspection of memory, registers, stack frames, and variables.
    31
    -
  • A
    license
    A
    quality
    C
    maintenance
    MCP server bridging Lauterbach TRACE32 debuggers to AI agents for autonomous debugging, providing 47 tools for execution control, breakpoints, memory, registers, variables, and symbol inspection.
    100
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to control TriCore/AURIX debug sessions, including workspace loading, target connection, flashing, run control, breakpoints, and reading variables, registers, memory, and call stacks via the UDE Object Model.
    MIT