Skip to main content
Glama
Svel26

Sigmatek LASAL MCP Server

by Svel26

lse_project

Destructive

Run LASAL SCREEN engine operations on .lpr projects: inspect inventory, create projects, compile, download to panels, and apply changes such as merges, XML imports, translations, and theming.

Instructions

Run LASAL SCREEN (LSE) engine operations on a .lpr screen project via the LASALScreen COM automation: info (screens/windows/servers/text lists/languages/settings inventory), create (fresh project), compile (Runtime output folder), download to a panel (Download & Run), and apply_changes with granular operations: merge/fuse projects, export_xml/import_xml text round-trips, import_variables (CLASS 2 references), textlist_* translations, server_get_property/server_set_property (limits, unit, menu, state schema, hostname, …), bulk update_buttons/update_softkeys theming, settings_set (resolution/compiler/online), image_insert. The .lpr itself is binary — never edit it directly; use this tool or the editor. Supports async: true — the call then returns immediately with a jobId and you MUST poll check_job_status until it reports status completed/failed (the result is delivered there).

Input Schema

NameRequiredDescriptionDefault
runNoWith action 'download': start the screen runtime on the target after the transfer (Download & Run).
saveNoWith action 'apply_changes': save the project after the operations (set false for read-only exports).
asyncNoRun in the background: returns { status: 'pending', jobId } — poll with check_job_status. Default false.
actionYes'info' inventories the project (screens, windows, servers, text lists, languages, settings) read-only. 'compile' rebuilds the Runtime output folder. 'download' pushes the project to the panel (F6-equivalent) via the project's online settings. 'apply_changes' loads the project, runs the operations list, saves, and closes. 'create' generates a NEW empty .lpr project at lpr_path (screens can then be laid out in the editor; text lists/data can be prepared via operations).
lpr_pathNoFull path to the .lpr project file. Omit to auto-detect from the selected project.
timeout_sNoTimeout override in seconds.
connectionNoDownload target, e.g. 'TCPIP:192.168.1.50'. Omit to use the station that owns the .lpr in the solution (its .lss target).
operationsNoOrdered operations for action 'apply_changes'. Each has a 'type' field: compile | merge | fuse | export_xml | import_xml | export | import_variables | import_scl | textlist_import_file | textlist_import | textlist_create | textlist_add_text | textlist_set_text | textlist_get_texts | add_language | clear_languages | set_actual_language | update_buttons | update_softkeys | settings_set | image_insert | server_get_property | server_set_property

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.2

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare openWorldHint=true and destructiveHint=true, so the description does not need to establish that this is a mutating tool. It adds useful behavioral context by warning that the .lpr file is binary, stating that apply_changes loads/saves/closes the project, and explaining the async=true jobId polling flow via check_job_status. It does not detail permissions, reversibility, or operation-specific side effects, but it covers the most important hidden behaviors.

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 description is front-loaded with the core purpose and then covers the main actions, binary handling, and async polling. It is dense and packs many operation names into the first sentence, but the length is justified by the tool's breadth and the information is relevant. It could be more readable with slight restructuring, but it avoids redundant explanation.

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 complex tool with many operations, the description provides the essential context: what the tool operates on, the main action modes, the binary .lpr constraint, and the critical async polling requirement. Since the input schema is fully described and annotations cover the mutation/open-world safety profile, the remaining gap is mainly operation-level return behavior. That is a minor completeness gap rather than a blocking omission.

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 the schema already documents all parameters and operation variants in detail. The description adds some semantic grouping for the operations array (merge/fuse, XML round-trips, textlist translations, server properties, theming, settings, images), but it does not add meaningfully more than the schema for individual parameters. Baseline 3 is appropriate 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 clearly states a specific verb and resource: run LASAL SCREEN engine operations on a .lpr screen project via COM automation. It enumerates the main action categories (info, create, compile, download, apply_changes), making the tool's scope unmistakable. It stops short of naming sibling tools or explicitly differentiating itself from manage_lasalscreen or apply_project_changes.

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 description implies when the tool is used by listing its actions and operations, and it warns that the .lpr is binary and should not be edited directly. However, it does not explicitly say when to choose this tool over sibling tools such as manage_lasalscreen, apply_project_changes, or build_project. Usage is therefore inferable but not fully guided.

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