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


βš™οΈ 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
-
security - not tested
F
license - not found
-
quality - not tested

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/mrwan84/ThinkPLC-MCP'

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