Skip to main content
Glama

TRACE32 MCP Server

An MCP server that wraps Lauterbach TRACE32's public remote API (RCL) via the official lauterbach-trace32-rcl (PyRCL) package. It lets an AI agent (e.g. GitHub Copilot agent mode) drive TRACE32 PowerView for three MVP use cases:

  • Debugging — read/write memory, registers and variables; run control (go / break / step); breakpoints

  • Resource inspection — connection/run state, CPU, memory & register snapshots, PRACTICE function evaluation

  • Script execution & flash — run PRACTICE .cmm scripts, including SW target flash

Prerequisites

  • Python 3.9+

  • TRACE32 PowerView already running with the remote API (RCL) enabled. Add this to your config.t32 (blank line before/after each block):

    RCL=NETTCP
    PORT=20000

    Sanity-check it works before wiring up MCP:

    t32rem localhost PRINT VERSION.SOFTWARE()

Related MCP server: GDB MCP Server

Install

pip install -e .

Configuration (environment variables)

Variable

Default

Description

T32_NODE

localhost

PowerView host

T32_PORT

20000

RCL port

T32_PROTOCOL

TCP

TCP (recommended) or UDP

T32_PACKLEN

1024

UDP packet length (ignored for TCP)

T32_TIMEOUT

10

Connection/request timeout (s)

T32_ALLOW_WRITE

false

Enables t32_write_memory, t32_write_register, t32_run_command, t32_run_script

T32_ALLOW_FLASH

false

Enables t32_flash

Safety guards

All read and debug-control tools are always available. Destructive operations are OFF by default and must be explicitly enabled:

  • T32_ALLOW_WRITE=true → memory/register writes, arbitrary command passthrough, script execution

  • T32_ALLOW_FLASH=true → flash programming (independent of T32_ALLOW_WRITE)

When a guard is closed, the tool returns an error explaining which flag to set — it never silently touches the target.

Register with GitHub Copilot (VS Code)

Workspace file .vscode/mcp.json is included. Adjust the env values (host/port, and the guard flags when you intend to write/flash), then start the server from the MCP view or the MCP: List Servers command. You can also run it standalone:

python -m trace32_mcp

Tools

Tool

Guard

Purpose

t32_status

Connection, run state, CPU, software build

t32_read_memory

Read N bytes → hex

t32_read_register / t32_list_registers

Read register(s)

t32_read_variable

Read an HLL variable/symbol

t32_eval

Evaluate a PRACTICE function expression

t32_go / t32_break / t32_step

Run control

t32_set_breakpoint / t32_clear_breakpoint / t32_list_breakpoints

Breakpoints

t32_write_memory / t32_write_register

ALLOW_WRITE

Write memory/register

t32_run_command

ALLOW_WRITE

Arbitrary TRACE32 command

t32_run_script

ALLOW_WRITE

Run a PRACTICE .cmm (DO)

t32_flash

ALLOW_FLASH

Program target flash via a flash .cmm

Tests

pytest

Unit tests mock PyRCL, so no running TRACE32 is required. For end-to-end checks, the TRACE32 Instruction Set Simulator can stand in for real hardware.

Roadmap (post-MVP)

Trace/CTS inspection, symbol/source browsing, multicore selection, call stack, peripheral register views, structured variable trees, multi-instance routing.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/coldclosewin-design/trace32-mcp'

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