Skip to main content
Glama
jdbruh18

IndustrialOps Industry 4.0 PLC Monitor MCP Server

by jdbruh18

๐Ÿญ IndustrialOps Industry 4.0 PLC Monitor MCP Server

License: MIT Python 3.10+ Protocol Domain

A Model Context Protocol (MCP) server that connects LLMs to factory PLC sensors, machinery health metrics, and predictive maintenance diagnostics.


๐Ÿงฐ Available MCP Tools

This server exposes 3 tools over standard I/O (stdio) transport:

1. read_plc_registers

Fetches current register readings (RPM, PSI, Temperature, Vibration, Status) for a designated PLC.

  • Parameters:

    • plc_id (string, required): PLC identifier (e.g., "PLC_ASSEMBLY_01", "PLC_PACKAGING_02").

2. get_predictive_maintenance_report

Analyzes machinery vibration telemetry and temperatures to estimate Remaining Useful Life (RUL) hours and schedule preventative inspections.

3. get_energy_consumption

Exposes active power draw (kW) profiles and efficiency ratings for factory equipment load planning.


Related MCP server: OPC UA MCP Server

๐Ÿ“ฆ Installation & Quickstart

# 1. Setup environment
cd industrialops-mcp-server
python -m venv venv
.\venv\Scripts\activate

# 2. Install package
pip install -e .

Claude Desktop Config

{
  "mcpServers": {
    "industrialops": {
      "command": "D:/Projects/industrialops-mcp-server/venv/Scripts/python.exe",
      "args": [
        "-m",
        "industrialops_mcp.server"
      ]
    }
  }
}

๐Ÿงช Testing

python -m pytest -o pythonpath=src

Available Tools

3 tools
get_energy_consumptionB

Fetches active power draw (kW) metrics and energy efficiency ratings for factory machinery.

ParametersJSON Schema
NameRequiredDescriptionDefault
plc_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It correctly implies a read operation but does not detail potential failures, authorization needs, or side effects. The description is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that is front-loaded and contains no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description provides the core functionality. However, it lacks usage guidance and parameter description, making it minimally sufficient.

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

Parameters2/5

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

The input schema has 0% coverage (parameter descriptions missing), and the description does not elaborate on the required 'plc_id' parameter. While the parameter is intuitive given the tool name, the description adds no additional meaning beyond the schema.

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 uses a specific verb 'Fetches' and clearly identifies the resources: active power draw metrics and energy efficiency ratings. It distinguishes itself from sibling tools like read_plc_registers and get_predictive_maintenance_report by focusing on energy consumption data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its siblings. There is no mention of prerequisites, context, or scenarios where this tool is appropriate.

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

get_predictive_maintenance_reportB

Calculates machinery wear coefficients and Remaining Useful Life (RUL) hours for preventative repairs.

ParametersJSON Schema
NameRequiredDescriptionDefault
plc_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It discloses that the tool calculates wear coefficients and RUL, implying a read-only, computational operation. However, it does not mention authorization, side effects, rate limits, or any computational intensity.

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?

Single sentence, efficiently conveys the core purpose without extra words. However, it could be improved by integrating parameter context without significant length increase.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one required input and an output schema (not shown). The description fails to explain the input semantics or output format. Given the complexity of predictive maintenance, more detail is needed for the agent to invoke correctly.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not mention the only parameter (plc_id) or its role. The agent has no context on what plc_id represents or how it affects the report.

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 it 'calculates machinery wear coefficients and Remaining Useful Life (RUL) hours for preventative repairs,' which specifies the verb, resource, and outputs. It distinguishes from siblings like read_plc_registers and get_energy_consumption.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. The context of preventative repairs is implied but no alternatives or prerequisites mentioned. The sibling tools suggest possible complementary use, but not directly stated.

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

read_plc_registersA

Fetches real-time sensor metrics (RPM, PSI, Temperature, Vibration, Status) for a factory PLC (e.g. 'PLC_ASSEMBLY_01', 'PLC_PACKAGING_02').

ParametersJSON Schema
NameRequiredDescriptionDefault
plc_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It mentions 'fetches' and 'real-time' which imply a read operation, but does not disclose potential side effects, error handling for invalid PLC IDs, authentication requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the key information (purpose and examples) without any fluff. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no annotations, output schema exists), the description is adequate but lacks details on behavior for invalid inputs or how to obtain the list of valid PLC IDs. It does not explain the output format beyond mentioning metrics.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates by providing example PLC IDs ('PLC_ASSEMBLY_01', 'PLC_PACKAGING_02'), adding value to the parameter semantics. However, it does not specify format or enumeration constraints.

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 it fetches real-time sensor metrics (RPM, PSI, Temperature, Vibration, Status) for a factory PLC, with specific example IDs. It uses a specific verb and resource, and distinguishes from siblings like get_predictive_maintenance_report and get_energy_consumption.

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

Usage Guidelines3/5

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

The description implies usage for real-time sensor data but does not explicitly state when to use this tool versus alternatives or provide exclusions. No guidance on prerequisites or scenarios where other tools are better suited.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_energy_consumption
    • First observedget_predictive_maintenance_report
    • First observedread_plc_registers

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct aspect of PLC monitoring: real-time registers, predictive maintenance, and energy consumption. No overlap or confusion possible.

Naming Consistency5/5

All tool names follow the consistent 'verb_noun' pattern using snake_case ('read_plc_registers', 'get_predictive_maintenance_report', 'get_energy_consumption').

Tool Count5/5

With 3 tools, the server is focused and each tool earns its place. The count is within the 3-15 well-scoped range.

Completeness5/5

For a monitoring-only server, the tools cover real-time data, predictive maintenance, and energy metrics. No obvious gaps for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to monitor and interact with industrial systems, providing real-time system health monitoring, operational data analytics, and equipment maintenance tracking. Built with Next.js and designed for industrial automation environments.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI agents to OPC UA-enabled industrial systems for real-time monitoring and control of operational data. It enables users to read, write, and browse industrial device nodes through natural language interactions.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with safe, governed read access to industrial control systems (OPC-UA, Modbus, S7, Mitsubishi, MTConnect, MQTT/Sparkplug) plus cross-protocol diagnostics for troubleshooting data breaks, alarm floods, and unhealthy tags.
    2
    153
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI agents to Siemens industrial PLCs for automatic monitoring and control of industrial equipment.
    21
    MIT

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/jdbruh18/industrialops-mcp-server'

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