Skip to main content
Glama
Edge-JB
by Edge-JB

tc_license

Manage TwinCAT TIRC^License dongle devices: list available hardware, add a license-device link to an existing dongle in the I/O tree, or activate an OEM license response file using ActivateResponseFile.

Instructions

TwinCAT licensing on the TIRC^License node (requires TC3.1 >= 4022.4; older targets have no AvailableLicenseDevices/ActivateResponseFile support and ProduceXml/ConsumeXml return empty or error — the HRESULT is surfaced, not masked). Nothing here touches the safety system (TIRC^License is real-time/licensing config). Actions: list (read-only) — discover available dongle license devices via ProduceXml; returns {treePath, devices:[{name,pathName,typeName,objectId}]} (pass raw:true to also include the full License-node ProduceXml blob). add (name, device) — OFFLINE config edit: CreateChild a license-device child under License bound to a dongle that MUST already exist in the I/O tree (device = its display-name e.g. "Term 2 (EL6070)" OR its ObjectID e.g. "50462722" from list). This only links the License node to existing hardware; it does NOT create the dongle terminal — add the EL6070 (etc.) first via tc_ethercat/tc_tree. Not confirm-gated (config-only). activate_response (confirm, path, oemGuid?) — GUARDED, requires confirm="ALLOW_LICENSE_ACTIVATE" and defaults to no-op: ConsumeXml the ActivateResponseFile command to activate an OEM license response file (path = absolute path to the .tmc/.reresponse file). oemGuid is "only required in special cases" and accepts any value; defaults to 0 when omitted. This is a license-activation state change.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNo
nameNo
pathNoabsolute path to the OEM license response (.tmc/.reresponse) file
actionYes
deviceNodongle display-name (e.g. "Term 2 (EL6070)") or ObjectID string from list
confirmNo
oemGuidNo
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses version-dependent behavior (older targets lack support, HRESULT surfaced), offline nature of 'add', guarded nature of 'activate_response' with confirm requirement, and the fact that 'add' only links to existing hardware. It also explains the raw parameter's effect and defaults for oemGuid. This is comprehensive behavioral disclosure.

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 long but packed with essential information; no sentence is wasted. However, it could be more structured using bullet points or separate sections for each action to improve readability. The version and safety notes are front-loaded, which is good.

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?

Given the complexity (7 params, 3 actions, version dependencies, no output schema), the description covers most aspects: return format for 'list', prerequisites for 'add' and 'activate_response', and behavioral details. However, it does not explicitly state what the 'add' or 'activate_response' actions return, though the 'config-only' and 'state change' labels imply no return value. Minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has only 29% description coverage (2 of 7 parameters described). The description adds meaning for all parameters: raw (pass true for full blob), name (for add), device (dongle display-name or ObjectID), path (absolute path to response file), confirm (requires specific value), oemGuid (optional, defaults to 0). It also explains the action enum values. This fully compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool handles TwinCAT licensing on the TIRC^License node and enumerates three specific actions (list, add, activate_response). It distinguishes from unrelated domains by explicitly noting it does not touch the safety system, and the sibling tool list includes many TwinCAT tools but the licensing focus sets it apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear prerequisites: version requirements (TC3.1 >= 4022.4), for the 'add' action it directs to create the dongle terminal first via tc_ethercat/tc_tree, and for 'activate_response' it specifies the required confirm value and no-op default. It also implies not to use for safety. However, it does not explicitly compare to sibling tools or provide when-not-to-use scenarios beyond the safety exclusion.

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

Install Server

Other Tools

Latest Blog Posts

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/Edge-JB/TwinCAT-XAE-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server