Skip to main content
Glama

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


Related MCP server: OPC UA MCP Server

⚙️ 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 MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with SIEMENS WinCC Unified SCADA systems through their GraphQL API, supporting operations like reading/writing tag values, browsing objects, querying historical data, and managing alarms.
    12
    GPL 3.0
  • 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
  • F
    license
    Not graded
    quality
    A
    maintenance
    MCP server that connects AI assistants to Siemens TIA Portal via the Openness API. AI-assisted PLC programming, project management, hardware configuration, cross-reference analysis, and deployment. 19 tools, 230 actions.
    35
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables MCP clients to connect to and interact with Siemens PLCs via python-snap7, supporting read/write operations on data blocks, memory, timers, counters, and CPU management.
    22
    MIT