trackmcp
Back to directory
mrwan84

ThinkPLC-MCP

View on GitHub

ThinkPLC-MCP

11 stars JavaScriptOthers Updated Aug 14, 2026

Documentation

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`:

js
export const config = {
  URL: "https:///api/jsonrpc", // required
  userName: "your-username", // optional
  pwr: "your-password", // optional
};

๐Ÿš€ Getting Started

1. Navigate to the project folder:

bash
cd your-project-directory

2. Install dependencies:

bash
npm install

3. Edit config.js as shown above.

4. Start the server

bash
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:

json
{
  "mcpServers": {
    "ThinkPLC-MCP": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:5000/mcp"]
    }
  }
}

4. Ensure @modelcontextprotocol/tools is installed:

bash
npm install -g @modelcontextprotocol/tools

Frequently asked questions

What is ThinkPLC-MCP?

ThinkPLC-MCP is ThinkPLC-MCP

How do I install ThinkPLC-MCP?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is ThinkPLC-MCP open source?

Yes โ€” it is hosted on GitHub at https://github.com/mrwan84/ThinkPLC-MCP and has 11 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP