Skip to main content
Glama
Svel26

Sigmatek LASAL MCP Server

by Svel26

read_class_source

Read or write the source code of a CLASS 2 class (.st) by class name, with optional .h file access. Writes require latin1 compatibility and a closed IDE.

Instructions

Read or write a CLASS 2 class source (.st) by class name, with optional .h access. Writes are latin1-validated and require the CLASS 2 IDE to be closed.

Input Schema

NameRequiredDescriptionDefault
actionYes'read' returns the source; 'write' overwrites it.
sourceNoFull content to write to the .st file — must be latin1-compatible (write only).
lcp_pathNoAbsolute path to the .lcp file. Omit to use the selected project.
class_nameYesName of the CLASS 2 class (e.g. 'Palletizer').
header_sourceNoContent to write to the .h file. Omit to leave it unchanged (write only).
include_headerNoAlso return the .h file contents (read only). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.2
  2. Removed
  3. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare openWorldHint=false, so the description carries most of the behavioral load and does so usefully: it discloses that writes overwrite the file, are latin1-validated, and require the IDE to be closed. This exceeds what the annotations provide. It stops short of describing failure behavior when validation fails or how the write interacts with the .h file when header_source is omitted.

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?

A single dense sentence with the class/resource up front and the write precondition trailing. No filler. Slightly compressed given the dual read/write mode and the .st/.h duality, but nothing is wasted.

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 six-parameter tool with no output schema and no nested objects, the description covers the operation, the write preconditions, and the optional header access. The remaining gap is that read-side return behavior is only implied ('read returns the source' lives in the schema), and error/rollback behavior is unspecified.

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 schema already documents all six parameters, including the read/write enum and the .h handling. The description's only added meaning is the latin1 validation constraint and that .h access is optional; the baseline of 3 applies when the schema does the heavy lifting.

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 states a specific verb and resource: read or write a CLASS 2 class source (.st) by class name, with optional .h access. It is clear and concrete, though it does not distinguish itself from the sibling manage_class2, so an agent cannot tell which to prefer without checking both. The tool name ('read_class_source') understates the write capability, but the description corrects that.

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?

It gives one real usage constraint — writes are latin1-validated and require the CLASS 2 IDE to be closed — which is actionable guidance about preconditions. However, it offers no when-to-use-vs-alternatives routing against manage_class2 or run_class2_script, so the selection decision is left partly to inference.

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