Skip to main content
Glama
OlubunmiAde

plc-mcp-server

by OlubunmiAde

PLC MCP Server

A Model Context Protocol (MCP) server for industrial PLC integration. Enables AI assistants to read tags, monitor alarms, and interact with Allen-Bradley ControlLogix PLCs using natural language.

Features

  • 🏭 Tag Operations - Read/write PLC tags

  • 🚨 Alarm Management - View and acknowledge alarms

  • 📊 Diagnostics - PLC status, I/O health, connection info

  • 🔒 Safety First - Read-only by default, write whitelist, audit logging

  • 🔌 MCP Standard - Works with Claude Desktop, Cursor, and any MCP client

Related MCP server: wago-plc-mcp-server

Quick Start

# Install dependencies
pip install -r requirements.txt

# Configure your PLC connection
cp config.example.yaml config.yaml
# Edit config.yaml with your PLC IP and settings

# Run the server (stdio mode for MCP)
python -m plc_mcp_server

# Or run in HTTP/SSE mode
python -m plc_mcp_server --transport sse --port 8080

Claude Desktop Configuration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "plc": {
      "command": "python",
      "args": ["-m", "plc_mcp_server"],
      "cwd": "/path/to/plc-mcp-server"
    }
  }
}

Project Structure

plc-mcp-server/
├── plc_mcp_server/
│   ├── __init__.py
│   ├── __main__.py          # Entry point
│   ├── server.py            # MCP server implementation
│   ├── plc/
│   │   ├── __init__.py
│   │   ├── client.py        # PLC connection manager
│   │   ├── allen_bradley.py # ControlLogix driver
│   │   ├── siemens.py       # S7 driver (future)
│   │   └── modbus.py        # Modbus driver (future)
│   ├── tools/
│   │   ├── __init__.py
│   │   ├── tags.py          # Tag read/write tools
│   │   ├── alarms.py        # Alarm tools
│   │   └── diagnostics.py   # Status/diagnostic tools
│   ├── resources/
│   │   ├── __init__.py
│   │   └── tag_database.py  # Tag list resource
│   └── safety/
│       ├── __init__.py
│       ├── whitelist.py     # Write permission control
│       └── audit.py         # Audit logging
├── config.example.yaml
├── requirements.txt
├── pyproject.toml
└── tests/
    └── ...

Safety

This server controls industrial equipment. Safety is paramount.

  • Read-only mode by default (allow_writes: false)

  • Tag whitelist for write operations

  • All operations logged to audit trail

  • Confirmation required for writes (via MCP confirmation flow)

License

MIT

Install Server
F
license - not found
A
quality
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    An MCP server that interfaces with SIEMENS WinCC Unified SCADA systems via GraphQL to manage real-time and historical tag data. It enables AI assistants to browse SCADA objects, read or write tag values, and perform alarm management tasks such as fetching, acknowledging, and resetting alarms.
    Last updated
    6
  • F
    license
    -
    quality
    B
    maintenance
    MCP server that connects WAGO PLCs to LLM agents via the WDx/WDA REST API, enabling AI assistants to read sensor values, change configuration, trigger firmware updates, or monitor entire PLC fleets without custom code.
    Last updated
    2

View all related MCP servers

Related MCP Connectors

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • GibsonAI MCP server: manage your databases with natural language

View all MCP Connectors

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/OlubunmiAde/plc-mcp-server'

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