This document presents the runtime view of the Industrial Core Hub. For this version, the process documented in this section is mainly based in the procedure followed in the ICH backend component. The document presents sequence diagram and the steps followed to retrieve a catalog, the enablement services, the business partner, the agreement and the twin. It also shows the step to generate and upload the submodel document related to a part type.
For this version, We have simplify the actors involved considering only the User. The user is the actor that interacts with the ICH through the FastAPI offered by the ICH backend component. In future versions this user will be the ICH frontend or any component of a use case that consumes the FastAPI.
| Actor | Description | Examples |
|---|---|---|
| User | The user is any actor that interacts with the ICH through the FastAPI offered by the ICH backend component. | The ICH Frontend or any application consuming the FastAPI. |
| AI Client (MCP) | An LLM-based client that invokes IC-Hub tools via the Model Context Protocol. | Claude Desktop, Microsoft Copilot Studio, custom LLM agents. |
The interactions are shown in the diagrams below. For the purpose of simplifying, the interactions via ICH Frontend are not shown completely.
The following figure presents the process followed at ICH Backend level.
The process consists of 8 steps:
The following diagrams present a closer view of Steps1-3, Step4-6 and Step7-8
The following figure presents the process followed at ICH Frontend level. The following images present the sequence followed in the two main pages of the component (ProductLists and ProductDetails)
TBC
The MCP Addon introduces new runtime flows for AI clients interacting with the dataspace via natural language. The following diagrams describe the key interaction patterns. The flows are represented as sequence diagrams below.
list_known_partners)sequenceDiagram
participant C as MCP Client (Claude Desktop)
box IC-Hub
participant M as MCP Addon (/addons/mcp-addon/mcp)
participant S as PartnerManagementService
end
C->>M: MCP call: list_known_partners
M->>M: auth.py: validate bearer token (Keycloak JWT or API key)
M->>M: session.py: resolve or create MCP session
M->>S: adapter (industry_core.py): call PartnerManagementService
S-->>M: partner list
M->>M: formatters.py: flatten result to LLM-friendly shape
M->>M: session.py: store returned BPNLs in session
M->>M: audit.py: log tool call with user identity
M-->>C: partner list response
list_partner_twins → fetch_submodel)sequenceDiagram
participant C as MCP Client
box IC-Hub
participant M as MCP Addon
participant CC as ConsumerConnectorManager
participant DC as DtrConsumerManager
participant SC as SubmodelConsumer
end
participant D as Dataspace (EDC/DTR)
C->>M: list_partner_twins(bpnl=…)
M->>M: auth + session resolution
M->>CC: adapter (discovery.py): discover twins
CC->>D: EDC catalog + negotiation
D-->>CC: EDR token
CC->>DC: DTR lookup
DC->>D: fetch shell descriptors
D-->>DC: shell descriptors
DC-->>CC: shell descriptors
CC-->>M: shell descriptors
M->>M: formatters.py: flatten shell descriptors
M->>M: session.py: store twin IDs
M-->>C: twin list response
C->>M: fetch_submodel(twin_id=…)
M->>M: adapter reuses EDR token from SDK cache
M->>SC: fetch submodel payload
SC->>D: SubmodelConsumer: fetch submodel payload
D-->>SC: submodel payload
SC-->>M: submodel payload
M-->>C: submodel payload
share_catalog_part)sequenceDiagram
participant C as MCP Client
box IC-Hub
participant M as MCP Addon
participant SS as SharingService
end
C->>M: share_catalog_part(part_id=…, partner_bpn=…)
M->>M: auth + session resolution
M->>M: confirmation.py: no staged action found
M->>M: build preview, stage {tool, args} in session
M-->>C: preview response
C->>C: user confirms via chat
C->>M: share_catalog_part(same args)
M->>M: confirmation.py: matching staged action → clear stage
M->>SS: adapter (industry_core.py): call SharingService
SS->>SS: submodel store + DTR shell + EDC asset + policy + contract
SS-->>M: sharing result
M->>M: audit.py: log with downstream IDs
M-->>C: success response
This work is licensed under the CC-BY-4.0.