ThinkPLC-MCP - Secure MCP Server by ALMC Security 2025

ThinkPLC-MCP

View on GitHub

ThinkPLC-MCP

ThinkPLC-MCP is a server designed to interface with SIEMENS PLC S7-1500/1200 using their JSON-RPC 2.0 API. It exposes API functionalities as MCP tools, enabling AI assistants and other MCP-compatible clients to interact with the PLC programmatically.


🔧 Features

  • Connects to a SIEMENS PLC API (Webserver) endpoint
  • Provides MCP tools for:
    • ✅ User authentication (login, logout, ChangePassword-user)
    • ✅ Check PLC connectivity (ping)
    • ✅ Retrieve user permissions via Api-GetPermissions after login
    • ✅ Get API version with Api-Version
    • ✅ List available API methods using Api-Browse
    • ✅ Retrieve structure information with Api-GetQuantityStructures
    • ✅ Get password security policies with Api-GetPasswordPolicy
    • ✅ Browse tags and metadata using PlcProgram-Browse
    • ✅ Read single variables via PlcProgram-Read
    • ✅ Write Boolean, Number, or String tags with PlcProgram-Write-*
    • ✅ Read the current CPU operating mode with Plc-ReadOperatingMode
    • ✅ Request a change of operating mode using Plc-RequestChangeOperatingMode
    • ✅ Read the CPU system time (Plc-ReadSystemTime)
    • ✅ Set the CPU system time (Plc-SetSystemTime)
    • ✅ Read available project languages (Project-ReadLanguages)
    • ✅ Browse active alarms (Alarms-Browse)
    • ✅ Acknowledge alarms (Alarms-Acknowledge)
    • ✅ Browse diagnostic buffer entries (DiagnosticBuffer-Browse)
  • 🔄 Optional: automatic service account login with token refresh

⚙️ Prerequisites

  • Node.js (v18.x or later recommended)
  • npm (comes bundled with Node.js)
  • Access to a running SIEMENS PLC API (Webserver)

⚙️ Configuration

This server uses a config.js file written in ES Module syntax.

Example config.js:

export const config = {
  URL: "https://<PLC-IP-Address>/api/jsonrpc", // required
  userName: "your-username", // optional
  pwr: "your-password", // optional
};

🚀 Getting Started

  1. Navigate to the project folder:
cd your-project-directory
  1. Install dependencies:
npm install
  1. Edit config.js as shown above.

  2. Start the server

node start

🖥️ Connecting with Claude Desktop

To use this MCP server with Claude AI (desktop version):

  1. Find or create the claude_desktop_config.json file (typically in the Claude app config folder).

  2. Add or update the following:

{
  "mcpServers": {
    "ThinkPLC-MCP": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:5000/mcp"]
    }
  }
}
  1. Ensure @modelcontextprotocol/tools is installed:
npm install -g @modelcontextprotocol/tools

Related in Other - Secure MCP Servers

ServerSummaryActions
EtsyThis project exposes a subset of the Etsy API through the Model Context Protocol. It allows tools to...View
BaziNo documentation available.View
Nano Currency MCP ServerView
Obenan Review Analyzerobenan mcp serverView
MCP Audio TweakerA Model Context Protocol (MCP) server for batch audio processing and optimization using FFmpeg. This...View
CYAN ARROW Trading SystemNo documentation available.View