Sigmatek LASAL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LASAL_CLASS2_EXE | No | Full path to Lasal2.exe (Defaults to C:\Program Files (x86)\Sigmatek\Lasal\Class2\Bin\Lasal2.exe) | C:\Program Files (x86)\Sigmatek\Lasal\Class2\Bin\Lasal2.exe |
| LASAL_VISUDESIGNER_EXE | No | Full path to VISUDesigner.exe (Defaults to C:\Program Files\Sigmatek\Lasal\VISUDesigner\VISUDesigner.exe) | C:\Program Files\Sigmatek\Lasal\VISUDesigner\VISUDesigner.exe |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| select_projectA | Set the active LASAL project by its full path. All subsequent tools will operate on this project. |
| open_visudesignerA | Open VISUDesigner with a station from the active project. Omit lcp_path to see available stations. |
| close_visudesignerA | Close VISUDesigner (kills the process). |
| open_class2B | Open LASAL CLASS 2 with the active project's .lsm file. |
| close_class2A | Close LASAL CLASS 2 (kills the process). |
| inspect_projectA | Parse a LASAL CLASS 2 project (.lcp) and return a complete structural inventory: all classes with their Server/Client channels, all networks with their objects and connections. Use this before making any changes to understand what exists and how things are connected. |
| inspect_visu_projectA | Read a VISUDesigner (.lvp) project's current state from disk: stations (connection targets), datapoints (HMI-visible PLC values with types), languages, text list names, and schemes. Use this before apply_visu_changes to understand what already exists. |
| read_class_sourceA | Return the full source of a CLASS 2 class (.st file). Use this to read method implementations, variable declarations, and logic before modifying a class. |
| write_class_sourceA | Write the full source of a CLASS 2 class back to its .st file (and optionally its .h header). Use this after read_class_source to apply code changes — method bodies, variable declarations, logic — directly to the file. The IDE must be closed; use close_class2 first if needed. Content must be latin1-compatible. |
| set_target_ipA | Change the online connection target for a station in the project's .lss file. Surgically updates only the TCPIP element, preserving all other file content. Use before compile_project / download_project when targeting a different device. |
| apply_project_changesA | Apply structural changes to a LASAL CLASS 2 project. Channel operations (add/remove/rename_server, add/remove/rename_client) edit .st files directly and cascade to all .lcn network files automatically. Network operations (create/delete/rename_network, add/remove/rename_object, create/delete_connection, set_init_value, delete_class) run via Lasal2.exe batch script. The IDE is killed before any changes are made. |
| compile_projectA | Compile the active LASAL CLASS 2 project. Kills any open CLASS 2 instance first. Returns compiler errors and warnings from the log. |
| download_projectA | Download the compiled CLASS 2 project to a PLC over the Sigmatek online protocol (TCP port 1954). Uses the project's saved connection if none is specified. |
| get_plc_stateA | Query the runtime state of a PLC (e.g. Running, Stopped, Offline). Uses the project's saved connection if none is specified. |
| read_plc_valuesA | Read live channel values from a running PLC. Opens a connection, reads all requested channels, then closes the connection. Each channel is specified as 'ObjectName.ChannelName'. |
| write_plc_valuesA | Write values to channels on a running PLC. Opens a connection, writes all values, then closes the connection. Each channel is specified as 'ObjectName.ChannelName'. |
| start_plcB | Start the running project on the PLC. Uses the project's saved connection if none is specified. |
| stop_plcA | Stop the running project on the PLC. Uses the project's saved connection if none is specified. |
| apply_visu_changesA | Apply changes to a VISUDesigner (.lvp) project using the headless VISUDesigner API. Kills any running VISUDesigner first, runs the operations as a Python 3.12 script, then saves and closes. Supports: update_all_stations, update_station (single station by number), publish, text list/text management (add/remove/change/set_revisions), CSV import/export for translations, datapoint/datatype property editing, scheme management (add/remove/configure entries), media items (images, video, audio, docs, fonts), code modules, and HMI download. Run 'update_all_stations' or 'update_station' after CLASS 2 channel changes to sync datapoints into the VISUDesigner project. |
| download_visu_projectA | Download a VISUDesigner (.lvp) project to an HMI device. Does not save the project — use apply_visu_changes with a 'download' operation if you need to make changes and deploy in one step. |
| deploy_allA | Run the full deploy pipeline in one call: compile CLASS 2 → download to PLC → update VISUDesigner stations → optionally download visu to HMI. Each step is skipped if its flag is false. Stops immediately on any failure and reports which step failed. Use after making CLASS 2 or VISUDesigner changes to push everything to the target hardware. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Svel26/Lasal-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server