Skip to main content
Version: 2.1

MTConnect Nodes

MTConnect is the open, royalty-free standard for monitoring manufacturing equipment. MaestroHub provides a single MTConnect Request node that supports all four standard MTConnect operations: Probe, Current, Sample, and Assets.

Read-Only Protocol

MTConnect is a read-only protocol by design. All operations retrieve data from the MTConnect agent — there are no write nodes.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

MTConnect Request node configuration

MTConnect Request Node

MTConnect Request Node

Query MTConnect agents for device data, capabilities, and assets.

Supported Function Types:

Function NamePurposeCommon Use Cases
Probe (mtconnect.probe)Discover device capabilities and structureDevice commissioning, tag discovery, building data catalogs
Current (mtconnect.current)Get latest data item valuesReal-time dashboards, current machine state, alarm monitoring
Sample (mtconnect.sample)Retrieve historical time-series dataTrend analysis, data export, quality correlation
Assets (mtconnect.assets)Query asset informationTool life tracking, fixture inventory, asset management

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesMTConnect connection profile to use
FunctionSelectionYesFunction from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your MTConnect connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Input

The node receives the output of the previous node as input. Input data can be referenced in function parameter expressions using $input.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": { ... },
"durationMs": 120,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
dataobjectMTConnect response data — structure varies by function type (see below)
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

Function Types

Probe

Discover the capabilities and structure of devices connected to an MTConnect agent. Returns device metadata, component hierarchy, and available data items.

Parameters:

ParameterTypeRequiredDescription
deviceStringNoDevice name to probe. Omit to probe all devices.
pathStringNoXPath filter for device components (e.g., //Axes)
timeoutNumberNoTimeout override in milliseconds (1000–300000)

Output data:

{
"Header": {
"@version": "2.0",
"@instanceId": "12345",
"@sender": "agent",
"@bufferSize": "131072",
"@creationTime": "2026-01-15T08:30:00Z"
},
"Devices": [
{
"@id": "mill-1",
"@name": "Mill-001",
"@uuid": "...",
"Description": {
"@manufacturer": "Haas",
"#text": "VF-2SS CNC Mill"
},
"Components": {
"Axes": { ... },
"Controller": { ... },
"Systems": { ... }
},
"DataItems": { ... }
}
]
}
FieldTypeDescription
HeaderobjectAgent metadata — version, instance ID, buffer size, creation time
DevicesarrayList of device structures, each with components and data items

Current

Get the most recent values of all data items from one or more devices. Returns a snapshot of the current device state.

Parameters:

ParameterTypeRequiredDescription
deviceStringNoDevice name to query. Omit for all devices.
pathStringNoXPath filter for data items (e.g., //DataItem[@type='POSITION'])
atNumberNoRetrieve data at a specific sequence number (>= 0)
timeoutNumberNoTimeout override in milliseconds (1000–300000)

Output data:

{
"Header": {
"@version": "2.0",
"@instanceId": "12345",
"@sender": "agent",
"@bufferSize": "131072",
"@creationTime": "2026-01-15T08:30:00Z",
"@firstSequence": "1000",
"@lastSequence": "5000",
"@nextSequence": "5001"
},
"Streams": [
{
"@name": "Mill-001",
"@uuid": "...",
"ComponentStream": [
{
"@component": "Linear",
"@name": "X",
"Samples": {
"Position": {
"@dataItemId": "x_pos",
"@timestamp": "2026-01-15T08:30:00Z",
"#text": "125.500"
}
},
"Events": {
"Execution": {
"@dataItemId": "exec",
"@timestamp": "2026-01-15T08:30:00Z",
"#text": "ACTIVE"
}
}
}
]
}
]
}
FieldTypeDescription
HeaderobjectResponse metadata including sequence numbers for pagination
StreamsarrayDevice streams, each containing component streams with their latest data values

The Header includes sequence tracking fields:

FieldDescription
@firstSequenceOldest sequence number in the agent buffer
@lastSequenceMost recent sequence number
@nextSequenceNext expected sequence number (use as from in Sample calls)

Sample

Retrieve historical time-series data from the agent's buffer. Returns multiple data values over time, useful for trend analysis and data export.

Parameters:

ParameterTypeRequiredDefaultDescription
deviceStringNoDevice name to sample. Omit for all devices.
pathStringNoXPath filter for data items (e.g., //DataItem[@category='SAMPLE'])
fromNumberNoStarting sequence number (>= 0)
countNumberNo100Maximum samples to return (1–10000)
timeoutNumberNoTimeout override in milliseconds (1000–300000)

Output data:

{
"Header": {
"@version": "2.0",
"@instanceId": "12345",
"@sender": "agent",
"@bufferSize": "131072",
"@creationTime": "2026-01-15T08:30:00Z",
"@firstSequence": "1000",
"@lastSequence": "5000",
"@nextSequence": "1100"
},
"Streams": [
{
"@name": "Mill-001",
"@uuid": "...",
"ComponentStream": [
{
"@component": "Linear",
"@name": "X",
"Samples": {
"Position": [
{
"@dataItemId": "x_pos",
"@timestamp": "2026-01-15T08:29:55Z",
"@sequence": "1050",
"#text": "124.200"
},
{
"@dataItemId": "x_pos",
"@timestamp": "2026-01-15T08:30:00Z",
"@sequence": "1075",
"#text": "125.500"
}
]
}
}
]
}
]
}
FieldTypeDescription
HeaderobjectResponse metadata. @nextSequence points to the next batch for pagination.
StreamsarrayDevice streams with multiple sample values per data item
Pagination

Use the @nextSequence value from the Header as the from parameter in the next Sample call to page through historical data.


Assets

Query asset information such as cutting tools, fixtures, and other tracked assets.

Parameters:

ParameterTypeRequiredDefaultDescription
assetIdStringNoSpecific asset ID to retrieve. When set, returns that single asset.
assetTypeStringNoFilter by asset type (e.g., CuttingTool, Fixture)
countNumberNo100Maximum assets to return (1–1000)
timeoutNumberNoTimeout override in milliseconds (1000–300000)

Output data:

{
"Header": {
"@version": "2.0",
"@instanceId": "12345",
"@sender": "agent",
"@assetBufferSize": "1024",
"@assetCount": "15",
"@creationTime": "2026-01-15T08:30:00Z"
},
"Assets": [
{
"@assetId": "TOOL-001",
"@deviceUuid": "...",
"@timestamp": "2026-01-15T08:00:00Z",
"CuttingTool": {
"@toolId": "T1",
"@serialNumber": "SN-12345",
"CuttingToolLifeCycle": {
"ToolLife": {
"@type": "MINUTES",
"@countDirection": "DOWN",
"@limit": "120",
"#text": "85"
}
}
}
}
]
}
FieldTypeDescription
HeaderobjectResponse metadata including asset buffer size and total asset count
AssetsarrayList of asset objects. Structure varies by asset type.

Response Format

The shape of the data object depends on the Response Format configured on the MTConnect connection profile:

FormatBehavior
XML (default)The agent's XML response is parsed into a structured map. XML attributes are prefixed with @, text content uses #text. Single child elements become objects; repeated elements become arrays.
JSONThe agent's JSON response is returned as-is. Structure follows the MTConnect JSON specification.
note

Not all MTConnect agents support JSON responses. XML is universally supported and is the default.


Settings Tab

The MTConnect Request node uses the standard Settings tab:

SettingTypeDefaultDescription
DescriptionTextOptional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.