Hybrid Track: Govern Without Disrupting Production
Your SCADA, MES, and historians keep running. We add governance on top.
What You'll Achieve
By the end of this track:
- Unified production view across SCADA, MES, and historians
- Standardized OEE that everyone trusts
- Full audit trail of every query and metric
- MCP connection for AI-powered production analysis
All without touching your existing control systems.
Phase 1: Connect Your Data
Step 1.1: Create IoT Hub Connection
Connect your existing production data to OpenIndustrial.
Option A: Using the UI
- Open your workspace
- Drag a Connection node from the Node Bank onto your canvas
- Click the node to open the Inspector
- In Settings, configure for Azure IoT Hub
- Enter your connection string
- Commit your changes (click the save icon in the top-left)
Option B: Ask Azi
Step 1.2: Common Production Data Sources
| Source | Protocol | OI Connection |
|---|---|---|
| SCADA/PLC | OPC-UA via Edge | IoT Hub |
| MES | API/Database | Database connection |
| Historian | MQTT/OPC-UA | IoT Hub |
| Quality system | API/CSV | Database connection |
Start with your historian—it typically has the most complete production data.
Phase 2: Create Production Surfaces
Step 2.1: Create Line Surface
Ask Azi:
"Create a surface for Line 1 production monitoring that includes cycle time, quality, and availability data."
Azi proposes:
- Surface name:
Line-1-Production - Nodes: CycleTime, QualityMetrics, Availability
- Description: Line 1 OEE components
Review and approve.
Step 2.2: Create Additional Surfaces
Build out your production hierarchy:
| Surface | Nodes | Purpose |
|---|---|---|
Line-2-Production | Same structure | Line 2 monitoring |
Quality-Control | Defects, Inspections, Holds | QC visibility |
Downtime-Tracking | Stops, Causes, Duration | Availability analysis |
Surfaces become governed containers. The same query definition applies consistently across lines.
Phase 3: Build Production Queries with Azi
Every query is tracked, standardized, and auditable.
Step 3.1: OEE Query
Ask Azi:
"Create a warm query that calculates OEE (Availability × Performance × Quality) for Line 1 over the last shift."
Azi proposes:
let ShiftStart = ago(8h);
let Availability = ProductionData
| where Line == "Line1" and Timestamp > ShiftStart
| summarize RunTime = sum(iff(Status == "Running", Duration, 0)),
PlannedTime = sum(Duration)
| project Availability = RunTime / PlannedTime;
let Performance = ProductionData
| where Line == "Line1" and Timestamp > ShiftStart
| summarize ActualUnits = sum(Units),
IdealCycleTime = 60, // seconds
RunTime = sum(iff(Status == "Running", Duration, 0))
| project Performance = (ActualUnits * IdealCycleTime) / (RunTime * 60);
let Quality = QualityData
| where Line == "Line1" and Timestamp > ShiftStart
| summarize GoodUnits = sum(iff(Status == "Pass", 1, 0)),
TotalUnits = count()
| project Quality = GoodUnits / TotalUnits;
print OEE = toscalar(Availability) * toscalar(Performance) * toscalar(Quality) * 100
Review, adjust parameters, approve.
Step 3.2: Downtime Pareto
Ask Azi:
"Build a query that shows top 10 downtime causes by duration for this week."
Azi proposes:
DowntimeEvents
| where Timestamp > ago(7d)
| summarize TotalMinutes = sum(DurationMinutes), Count = count() by Cause
| top 10 by TotalMinutes desc
| project Cause, TotalMinutes, Count,
Percentage = TotalMinutes / toscalar(DowntimeEvents | where Timestamp > ago(7d) | summarize sum(DurationMinutes)) * 100
Step 3.3: Quality Trend
Ask Azi:
"Create a query that shows first-pass yield by day for the last 30 days."
Azi proposes:
QualityData
| where Timestamp > ago(30d)
| summarize GoodUnits = sumif(1, Status == "Pass"),
TotalUnits = count() by bin(Timestamp, 1d)
| extend FirstPassYield = GoodUnits * 100.0 / TotalUnits
| order by Timestamp asc
Phase 4: Access Your APIs
Step 4.1: Find Your Endpoint
- Open the APIs menu in the top bar
- Select Warm Query Manager
- Choose your warm query from the dropdown
- Copy the endpoint URL and code examples
Step 4.2: Integrate with Dashboards
Every warm query gets an API endpoint:
curl -X GET 'https://www.openindustrial.co/api/workspaces/explorer/warm-queries/line1-oee' \
-H 'Authorization: Bearer YOUR_TOKEN'
Step 4.3: Common Integrations
| Integration | Use Case |
|---|---|
| Andon board | Real-time OEE display |
| Shift handoff | Automated production summary |
| MES | Governed metrics in existing system |
| Alerting | Notify when OEE drops below target |
Phase 5: Connect MCP-Native AI
Step 5.1: Get MCP Configuration
- Open the APIs menu in the top bar
- Select API Keys to generate a JWT token
- Use the configuration below with your workspace ID and token
Step 5.2: Configure Claude Desktop
{
"mcpServers": {
"production-data": {
"command": "npx",
"args": [
"-y",
"@openindustrial/mcp-server",
"--workspace", "YOUR_WORKSPACE_ID",
"--token", "YOUR_TOKEN"
]
}
}
}
Step 5.3: Ask Production Questions
Ask Claude:
"What's causing the OEE drop on Line 1 this week compared to last week?"
Claude queries your governed data, correlates downtime with quality, and provides insights—all logged.
When the plant manager questions an AI recommendation, you can show exactly what data it used and what queries it ran.
What You Built
| Component | Status |
|---|---|
| IoT Hub connection | ✓ Connected to historian/SCADA |
| Production surfaces | ✓ Line-level organization |
| OEE queries | ✓ Standardized, governed |
| API endpoints | ✓ Dashboard integration |
| MCP integration | ✓ Claude analyzing production |
Category Metrics
| Metric | Your Result |
|---|---|
| Time to First Governed Query | ~30 minutes |
| Queries built | 3+ |
| Audit coverage | 100% |
| AI connected | Claude Desktop |
Before vs After
| Before Control Plane | After Control Plane |
|---|---|
| "Everyone calculates OEE differently" | One query, one definition, auditable |
| Spreadsheet shift reports | Governed API endpoints |
| AI guesses about root cause | AI insights with data lineage |
| Manual downtime analysis | Automated, traceable Pareto |
Next Steps
| If you want to... | Go to... |
|---|---|
| Try the Full track | Full Track → |
| See query patterns | Patterns → |
| Deep-dive on MCP | MCP Guide → |
| Explore energy | Energy Journey → |
On this page
- FrontmatterVersion: 1 DocumentType: Guide Title: "Manufacturing — Hybrid Rollout" Summary: "Leave SCADA, MES, and historians running, and add a standardized OEE and downtime layer on top, reachable by API and by any MCP client." Created: 2026-01-19
- Hybrid Track: Govern Without Disrupting Production