
T32 Lsp Mcp Server
io.github.ormastesPublished by GitHub account ormastesv0.9.8Updated Oct 24, 2026
TRACE32 CMM LSP via MCP — parse, diagnostics, completions, hover, symbols
Overview
Analyzes TRACE32 CMM scripts through an LSP, offering parsing, diagnostics, completions, hover information, and symbol lookup without hardware.
- What you can do
- This server wraps a TRACE32 CMM language server and exposes it over MCP. It parses CMM scripts and reports diagnostics, and provides completions, hover information, and symbol listings for CMM files. It is aimed at script analysis rather than controlling a live debugger session.
- When to use it
- Use it when you want an assistant to review, validate, or navigate Lauterbach TRACE32 CMM scripts, for example checking for undefined macros or unreachable code, or getting completion suggestions for commands such as Data.LOAD. It is not needed if you do not work with TRACE32 tooling.
- Requirements
- Runs as a local process over stdio, installed from the npm package @simple-lang/t32-lsp-mcp-server. The README registers it from a Simple repository checkout using the simple binary and a script path. No authentication, environment variables, or headers are declared.
Installation
In SourceWeft
- Open T32 Lsp Mcp Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Simple Language
[Production Ready] [Tests] [LLVM Cross] [License]
Simple is a self-hosted language and toolchain that combines a readable Python-like surface with compiler-integrated testing, documentation, architecture rules, and baremetal-oriented execution paths.
The repo is unusually broad: language, compiler, interpreter, loader, test runner, doc generation, traceability tooling, SDN-backed project databases, editor tooling, and hardware-oriented test flows all live together.
Quick Navigation: Distinctive Features | Feature Status | Quick Start | Language Basics | Examples | Editor Plugins | Documentation
Distinctive Features
- Self-hosted staged toolchain: real source layers for frontend, type analysis, borrow checking, backend, driver, interpreter, and loader live in-tree.
- Verification-native workflow: SSpec tests, the SPipe runner/docgen process, SDoctest executable docs, coverage, traceability checks, and generated spec docs are part of the toolchain rather than bolted on.
- MDSOC architecture support: virtual capsules, manifests, and architecture-aware repository structure are first-class concepts.
- Parser-friendly macro system: macro definitions, expansion, validation, and hygiene are compiler features rather than editor-hostile text substitution.
- Math-oriented syntax blocks:
m{},loss{}, andnograd{}are implemented syntax with parsing, evaluation, five rendering backends (text, debug, Unicode, LaTeX, Markdown), and editor integration (query/LSP hover, VSCode highlighting/preview, Neovim inline Unicode preview with conceal). The autograd path is complete for the promoted torch-backed C/LLVM scope. - SDN-backed textual databases: tests, todos, dashboards, and other project metadata are stored through repo-native SDN data flows.
- Multiple execution paths: interpreter, loader, SMF/module loading, and native/LLVM-oriented compilation paths coexist in one system.
- Baremetal-oriented build and test plumbing: QEMU, semihosting, MMIO mailbox, remote baremetal flows, and adapter-backed hardware lanes (8 authoritative) are built into the repo story.
- Tooling-aware language rules: Tree-sitter integration, primitive-public-API linting, traceability tooling, and language statistics are part of the platform.
- Shared UI contract across supported surfaces: one HTTP-based test protocol (Protocol V1) with
UITestClientdrives both the web backend and the TUI-web proxy through a sharedhandle_test_requesthandler, verified by a cross-surface contract suite. Contract: doc/04_architecture/shared_ui_contract.md
Feature Status Highlights
Implemented and safe to advertise:
- SSpec tests, SPipe runner/docgen, SDoctest, coverage, traceability checks, and generated spec docs
- SPipe mock policy: system-test mock ban, HAL-only and custom pattern modes
- Self-hosted staged compiler, interpreter, and loader architecture
- MDSOC manifests and architecture-focused project structure
- Parser-friendly macros with validation and hygiene
- Tree-sitter outline/query tooling
- SDN-backed project, test, and todo databases
- Primitive-public-API linting and semantic wrapper/unit-type patterns
- Borrow-checking infrastructure
- Watch mode and auto-build support
- mmap-backed loader support and executable-memory plumbing
- Baremetal build/test plumbing and host-aware remote baremetal flows
- C/C++ bidirectional SFFI for the supported ABI subset: exports, imports, callback trampolines, layout verification, and round-trip proof tests
Implemented, but best described with qualifiers:
- LLVM full-family closure is complete for the declared public matrix: every
llvm-libandllvmbackend row is now explicitlystableorunsupported, with no ambiguous middle states.rust-llvmremains a bootstrap-only seed path outside the public family claim - Lean verification workflow is complete for the supported verification subset: deterministic Lean generation, proof artifact inventory, Lean/Lake checking, cache invalidation, and verification-state reporting. Contract: doc/04_architecture/lean_verification_contract.md. Report: doc/09_report/lean_verification_complete_2026-04-04.md
- GC and no-GC runtime families: 5 public families (
common,nogc_sync_mut,nogc_async_mut,gc_async_mut,nogc_async_mut_noalloc) with compiler boundary enforcement, interpreter warnings, and target preset mapping. Support matrix: doc/04_architecture/runtime_family_support_matrix.md - Shared UI contract across web backend and TUI-web proxy (Protocol V1): shared handler, structured error model, stable element IDs, cross-surface contract suite — but this is a shared test protocol, not a full unified UI rendering layer
- Remote baremetal execution has 8 authoritative lanes (3 stable + 5 host-aware including both GHDL semihost and mailbox simulation), but hardware-dependent lanes remain host- and board-aware rather than universally complete. Lane matrix: doc/08_tracking/lane_matrix.md
Implemented with bounded scope:
m{}/loss{}/nograd{}are complete for the promoted torch-backed C/LLVM scope, including backward, detached-input failure, andnograd{}restore semantics. Other backends remain deferred- AOP provides predicate-based pointcuts (
execution,within,attr), deterministic before/after/around advice, compile-time weaving as the default backend, and scoped runtime interception. Support matrix: doc/05_design/aop_support_matrix.md - VHDL backend compiles a documented hardware-oriented Simple subset to synthesizable VHDL-2008, validated through GHDL analysis/elaboration. Strict fail-fast on unsupported constructs. Two GHDL RV32 simulation lanes are operational: semihost (GDB-backed, ARM semihosting traps) and mailbox (debugger-independent, MMIO at 0x80FF0000 with ram_sentinel result collection). Support matrix: doc/04_architecture/vhdl_support_matrix.md. Mailbox protocol: doc/04_architecture/ghdl_rv32_mailbox_protocol.md
Implemented:
- Anti-dummy / anti-stub enforcement is active on the primary source and compiled CLI surfaces (
simple lint,simple verify quality). All public-facing proof suites (SFFI, T32 hardware, compiler/runtime/system) now pass the gate. Remaining debt is only in deferred OS/GPU/experimental areas — all active surfaces are clean.
See doc/report/unique_features.md for the evidence-backed audit.
Runtime Families
Simple organizes its standard library into runtime families based on allocation, mutation, and concurrency requirements:
The compiler enforces family boundaries: importing a GC module from a no-GC context produces a diagnostic warning. Target presets (Baremetal, Hosted, EmbeddedWithHeap) automatically restrict module resolution to compatible families.
For advanced use: nogc_async_immut provides persistent data structures with lock-free concurrency.
See Runtime Family Support Matrix for full contracts, and Known Limitations for current caveats.
Quick Start
Installation
What you get:
- Complete Simple compiler and toolchain source
- Standard library and generated spec manuals
- Development tools, including MCP server, LSP, and debugger surfaces
Use a source checkout for the current beta. It also initializes the example and tooling submodules used by the docs and tests:
For an existing checkout:
Note: Rust remains present as the bootstrap seed and host substrate. Product compiler, library, and tool work should stay in Simple source wherever the repo can express it; do not read "pure Simple" as "there is no Rust source in this checkout" today.
Source Footprint
Snapshot generated 2026-04-23 from existing tracked .spl, .rs, .c, .h, .s, .S, and .asm files. Blank lines and comment-only lines are excluded; examples/ code is included; vendored and third-party source is excluded.
From Source (Developers Only)
Only needed if you want to modify the runtime:
Direct commands behind the wrapper:
See doc/02_requirements/app/build/bootstrap.md and doc/03_plan/compiler/bootstrap/pure_simple_bootstrap_stage2_remaining_2026-05-04.md for the current bootstrap flow and remaining pure-Simple self-hosting notes.
Build with GPU Support
Your First Program
CLI Usage
The simple command works like Python:
Examples
Language Basics
Variables & Types
Control Flow
Functions
Structs & Classes
Collections
Unit Types (Postfix Literals)
Type-safe units prevent mixing incompatible values:
Pattern Matching
Parser-Friendly Macros
Simple macros are contract-first and LL(1) parseable - the IDE can provide autocomplete without expanding the macro:
Built-in macros:
Const-unrolled macro (generate multiple functions):
AOP & Aspect-Oriented Programming
Predicate-based pointcuts with compile-time weaving as the default execution model:
Supported selectors: execution(*), within(*), attr(*) with & (AND), | (OR), ! (NOT) operators.
Advice kinds: before, after_success, after_error, around (proceed exactly-once).
Ordering: priority (descending) > specificity > lexicographic name.
Zero overhead: no weaving metadata when no aspects are defined.
Runtime interception: scoped, opt-in only, disabled in release builds.
See AOP Support Matrix for the full contract.
SDN Configuration
Simple Data Notation - a minimal, token-efficient format for config files:
Load SDN in Simple:
SDoctest
Executable examples are part of the maintained test surface. Simple supports both demonstration blocks and verified sdoctest blocks, with sdoctest intended for examples that must run and match output.
Run SDoctest examples:
--doctest is still accepted as a compatibility alias, but --sdoctest is the clearer name for the implemented path.
In the canonical release command, the positional test selects the spec tree
only. --whole still discovers Markdown from config/sdoctest.sdn and comment
sdoctests from the production src/lib, src/compiler, and src/app roots.
Functional Update Operator (->)
GPU Computing
GPU Thread Indexers:
GPU Examples: See examples/gpu/vulkan/ for vector add, matrix multiply, reduction, and image blur.
Documentation
Quick Links by Topic
Core Documentation
Getting Started:
- Documentation Hub - Current entry point for the numbered doc tree
- Getting Started - Project setup and first steps
- Syntax Quick Reference - Canonical public syntax cheat sheet
- Testing Guide - Testing workflow and command surface
Language Reference:
- Syntax Guide - Surface syntax and examples
- Type System Guide - Types, mutability, and usage
- Module System Guide - Imports, packages, and layout
- Standard Library Guide - Stdlib organization and usage
GPU Computing:
- Deep Learning Guide - Pure Simple, model-oriented, and training flows
- GPU Programming Guide - Backend and kernel-oriented GPU usage
- GPU API - API-level GPU reference
- LLVM Backend Architecture - Backend implementation details
Development:
- Build Guide - Building Simple and common workflows
- Testing Guide - Test runner behavior and flags
- SSpec Scenario Manual Guide -
step(...), inline scenarios, capture, and generated manual style - Mock Policy Guide - System test mock ban and test level enforcement
- Coverage Guide - Coverage, SDoctest, and enforcement
- MCP Tooling Guide - MCP registration and usage
Advanced Features:
- Macro System - Executable macro spec and status
- AOP Support Matrix - Supported selectors, advice kinds, backends, and error codes
- SDN Format - Note/SDN storage and indexing format
- SDoctest - Documentation testing and verified examples
- Feature Documentation - Generated feature-doc artifact format
Examples
Deep Learning Examples
Simple ships multiple deep learning examples across pure-Simple, model-training, and GPU-oriented flows:
Pure Simple Neural Networks:
MedGemma Korean Fine-Tuning:
CUDA Programming:
See Deep Learning Guide for current documentation.
Other Examples
The examples/ directory contains additional working examples:
Run an example:
SSpec Scenario Manuals
Feature and system documentation is generated from executable SSpec .spl
scenarios. SPipe is the related runner/docgen process; SSpec is the authoring
style: write readable step("...") actions, keep executable assertions in the
same scenario, and let docgen render compact manual steps with folded source.
Example 1: TUI Selection
This follows the real Code Actions picker flow exercised by
test/03_system/gui/editor_controller_spec.spl: populate a selectable panel,
choose a row, and apply it with Enter. Keep the interaction and its visible
selection contract together.
Generated operator manual:
Example 2: Tabular Output
This is shortened from the dashboard HTML rendering system spec at
test/03_system/feature/app/web_dashboard/dashboard_render_spec.spl. It is the
same table-shaped contract useful for compression, storage/NVMe, security, and
HTML test reports: stable columns, representative rows, and assertions over
the generated surface.
Generated QA evidence can retain the compact tabular result:
Given_*, When_*, and Then_* helper naming is legacy style. Use
step("...") for new SSpec manuals. See the
SSpec Scenario Manual Guide.
Generated docs land in the numbered documentation tree under doc/06_spec/.
Docgen mirrors a test path without its leading test/ component; for example,
test/03_system/plan_acceptance/evidence_showcase_spec.spl generates
doc/06_spec/03_system/plan_acceptance/evidence_showcase_spec.md.
Grammar & Specification
Language Grammar
Simple’s current language references are split between the guide tree for user-facing explanations and the spec tree for executable or generated reference material.
Current Reference Documents:
- Syntax Quick Reference - Fast public-language reference
- Syntax Guide - User-facing language walkthrough
- Language Spec Index - Current generated spec index
- Syntax Spec - Spec artifact for syntax coverage
- Types Spec - Spec artifact for type-system coverage
- Modules Spec - Spec artifact for module-system coverage
Quick Grammar Reference:
Specification Index
The current spec and guide material is organized under the numbered documentation tree:
Core Language:
- Syntax Spec - Syntax-oriented spec material
- Types Spec - Type-system spec material
- Data Structures Spec - Data-structure coverage
- Functions Spec - Functions and pattern matching
- Traits Spec - Traits and implementations
- Memory Spec - Ownership and borrowing
- Modules Spec - Import/export system
Advanced Features:
- Concurrency Spec - Async and concurrency behavior
- Metaprogramming Spec - Macros and decorators
- Macro Spec - Macro-specific executable coverage
- Capability Effects - Capability/effect system
- Standard Library Guide - Stdlib structure and usage
- SFFI Guide - Interop guidance
- External Native Libraries - Optional host-library integration
Testing & Tooling:
- Testing Guide - Test runner and matchers
- SSpec Scenario Manual Guide - Scenario manuals generated from executable specs
- Coverage Guide - Coverage and SDoctest enforcement
- Lint Guide - Lint rules and workflow
- MCP Guide - MCP workflow and registration
GPU & Platform:
- GPU Programming Guide - GPU usage
- Deep Learning Guide - Model-oriented examples
- Baremetal Guide - Platform and baremetal flows
See doc/README.md, doc/06_spec/README.md, and doc/07_guide/README.md for the current documentation entry points.
Project Structure
Incremental Compile and Interpreter Boundaries
The reverse-reference records under src/compiler/80.driver/cache/reference/
map changed declarations and artifacts to their known consumers. The build
driver uses them to select invalidation and reuse candidates; the loader uses
the same dependency facts for scheduling. They make incremental compilation
more selective when receipts and cache keys match, but do not alter language
semantics or turn an interpreter run into a native compilation. Interpreter
execution remains owned by src/compiler/95.interp/.
The admission model and current evidence limits are documented in the reverse-reference harmonization plan.
Development
Building
Testing
Full-suite snapshot (2026-02-14): 4,067/4,067 passing
Simple uses a broad test strategy spanning spec tests, SDoctest, coverage, and system lanes. The counts below are from the linked 2026-02-14 report:
Test Coverage:
- Core interpreter: 227 tests
- Compiler: 306 tests
- Standard library: 428 tests
- Applications: 142 tests
- Libraries (ML, Physics, Game): 185 tests
- Integration & Coverage: 2,779 tests
Performance:
- Total execution: 17.4 seconds
- Average per test: 4.3ms
- All tests deterministic and fast
Performance Profiles:
- Language profile: scripts/check/check-cross-language-perf.shs generates doc/09_report/cross_language_perf_2026-06-06.md
- GUI profile: tools/gui_perf_bench/run_all_benchmarks.shs generates doc/09_report/gui_perf_benchmark_2026-06-06.md
- Startup/TUI profile: scripts/check/check-startup-size-performance-audit.shs records TUI startup rows in doc/09_report/startup_size_performance_audit_2026-05-27.md
See doc/09_report/session/full_test_suite_results_2026-02-14.md for detailed test analysis.
Code Quality
AI Tooling (MCP, LSP, Plugin)
Simple ships with MCP servers, LSP servers, and Claude Code plugins — all written in Simple.
Install Simple MCP Server
The Simple MCP server exposes repo-native tools for code diagnostics, VCS, build, test, debug, and related workflows. For current registration details, use the repo scripts and guide docs rather than relying on hardcoded counts here.
Install Simple MCP Plugin
The simple-mcp Claude plugin is a repo-checkout plugin. Install it from a
Simple repository checkout; it is not a standalone portable runtime bundle.
The plugin launches bin/simple_mcp_server from the repository root.
Install Simple LSP Plugin
The Simple language server provides completions, hover, go-to-definition, diagnostics, and semantic tokens for .spl / .shs files.
Binary full path: bin/simple run src/app/lsp/main.spl
Install Both (Quick Setup)
Prompt Examples
Once the MCP server and LSP plugin are installed, try these prompts in Claude Code:
Editor Plugins
VSCode Extension
Full-featured extension with Tree-sitter highlighting, LSP integration, and math block support.
Key features:
- Semantic syntax highlighting (Tree-sitter powered)
- LSP: completions, hover, go-to-definition, diagnostics
- Math block highlighting for
m{},loss{},nograd{}with nested brace support - Test CodeLens: "Run Test/File/Doctest" gutter arrows on
describe/it/context/sdoctestblocks - AI-powered completions and chat (requires GitHub Copilot)
See src/app/vscode_extension/README.md for full documentation.
Neovim Plugin
Key features:
- LSP integration with auto-detection
- Math block conceal with inline Unicode preview (
frac(1,2)->(1)/(2),alpha->α,sqrt(x)->√(x)) - Test lens: "Run" virtual text beside test blocks
- Tree-sitter queries (highlights, folds, text objects, injections)
- Brief view (fold to signatures)
See src/app/nvim_plugin/README.md for full documentation.
TRACE32 Tools
MCP servers, CMM language server, and CLI tools for Lauterbach TRACE32 debuggers. See examples/10_tooling/trace32_tools/README.md for full documentation.
The repo-managed container flow is headless and uses t32mciserver. It does
not ship bundled TRACE32 GUI compatibility libraries; vendor runtime files must
come from your local /opt/t32 installation.
Primary lifecycle wrapper:
GUI container reopen path:
gui-on uses the Docker/Podman TRACE32 GUI path with host X11 forwarding, so
it requires a real host X11 session (DISPLAY, /tmp/.X11-unix, and usually
XAUTHORITY). For quick diagnostics use:
Hello-world firmware smoke:
Optional: Install T32 MCP Servers
These TRACE32 MCP servers are not installed by the default project MCP setup. Register them manually only if you actively use TRACE32 tooling.
Binary full paths:
- T32 MCP:
bin/simple run examples/10_tooling/trace32_tools/t32_mcp/main.spl - T32 LSP MCP:
bin/simple run examples/10_tooling/trace32_tools/t32_lsp_mcp/main.spl
Install CMM LSP Plugin
Binary full path: bin/simple run examples/10_tooling/trace32_tools/cmm_lsp/mod.spl --lsp
T32 Prompt Examples
Contributing
See CLAUDE.md for development guidelines and AGENTS.md for AI agent instructions.
Documentation Structure:
- Specifications go in doc/06_spec/ (what the language supports)
- Guides go in doc/07_guide/ (how to use features)
- Research goes in doc/01_research/ (why/how decisions were made)
- Plans go in doc/03_plan/ (implementation roadmaps)
- Reports go in doc/09_report/ (session summaries and completion reports)
License
Apache License 2.0. See LICENSE.
Bundled third-party runtime components and redistribution notices are listed in THIRD_PARTY_NOTICES.md.
Release packages also include THIRD_PARTY_NOTICES.md.
Resources
Official Documentation:
- Documentation Hub - Entry point for the numbered docs tree
- Language Specification - Current spec index
- User Guides - Practical tutorials
Quick References:
Development:
Source: README.md at commit bf9c7fd
Tools
0Version history
1- v0.9.8LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.