EtherCAT MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ENDPOINT | No | URL of the external EtherCAT master daemon endpoint used in hardware mode, e.g. http://127.0.0.1:8088 (--endpoint=...). Required when hardware mode is enabled. | |
| HARDWARE | No | Set to "true" to enable hardware gateway mode (--hardware). When omitted, the built-in virtual bus simulation is used. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scan_slavesA | Scan the EtherCAT bus and list all connected slave devices with identity, current state, and port links. |
| get_slave_infoA | Get detailed information, SDO object dictionary, and PDO mappings for a specific slave device. |
| get_topologyA | Get the physical cable connection topology of the EtherCAT bus (port-to-port connections). |
| get_esm_stateA | Query the EtherCAT State Machine (ESM) state (INIT, PREOP, BOOT, SAFEOP, OP) for the bus or a specific slave. |
| set_esm_stateB | Request an EtherCAT State Machine (ESM) transition (INIT, PREOP, BOOT, SAFEOP, OP) for a slave or all slaves. |
| read_sdoA | Read a CANopen over EtherCAT (CoE) SDO object by Index (e.g. 0x6041 or "0x6041") and SubIndex. |
| write_sdoC | Write a value to a CANopen over EtherCAT (CoE) SDO object by Index and SubIndex. |
| read_pdoB | Read cyclic process data (TxPDO inputs: Digital Inputs, Analog Voltages, Motor feedback position/velocity). |
| write_pdoB | Write cyclic output process data (RxPDO outputs: Digital Outputs, motor target position/controlword). |
| get_diagnosticsA | Get EtherCAT bus diagnostic metrics including frame loss, jitter, cycle time, CRC errors, and active AL errors. |
| reset_errorB | Reset slave AL errors, clear alarms, and perform CiA 402 drive fault reset. |
| drive_controlC | High-level CiA 402 Servo Drive Motion Control (enable, disable, quick_stop, fault_reset, move_velocity, move_position). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool maps to a distinct resource/action (SDO vs PDO vs ESM vs diagnostics), and descriptions clarify the boundaries. Minor overlap exists between reset_error and drive_control's fault_reset action, and set_esm_state vs reset_error both touch fault/alarm clearing, but an agent can reasonably distinguish them.
Almost all tools use a clean verb_noun pattern (read_sdo, write_pdo, get_diagnostics, scan_slaves, set_esm_state). The lone outlier is drive_control, which inverts to noun_verb and slightly stands out.
12 tools is well within the ideal 3-15 range and each covers a meaningful EtherCAT operation (discovery, state machine, SDO/PDO I/O, diagnostics, drive control). No filler tools are present.
The surface covers the full master lifecycle: bus scan, topology, ESM get/set, SDO and PDO read/write, diagnostics, error reset, and CiA 402 drive control. Gaps are minor — no explicit PDO mapping/configuration write or slave EEPROM/firmware operations — but core workflows are fully supported.