ThinkPLC-MCP
Interface with SIEMENS PLC S7-1500/1200 using their JSON-RPC 2.0 API, exposing PLC functionalities as MCP tools for programmatic interaction.
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-GetPermissionsafter 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)
- ✅ User authentication (
- 🔄 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
- Navigate to the project folder:
cd your-project-directory
- Install dependencies:
npm install
-
Edit config.js as shown above.
-
Start the server
node start
🖥️ Connecting with Claude Desktop
To use this MCP server with Claude AI (desktop version):
-
Find or create the claude_desktop_config.json file (typically in the Claude app config folder).
-
Add or update the following:
{
"mcpServers": {
"ThinkPLC-MCP": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:5000/mcp"]
}
}
}
- Ensure @modelcontextprotocol/tools is installed:
npm install -g @modelcontextprotocol/tools
Servidores relacionados
Pokemon Gen3 Calculator
A damage and status calculator for Pokemon Generation 3.
YouTube Playlist Generator MCP Server
A Model Context Protocol (MCP) server that enables AI applications to search for YouTube music videos and manage playlists using the official YouTube Data API v3.
Berlin Transport
Access Berlin's public transport data via the VBB (Verkehrsverbund Berlin-Brandenburg) API.
Weather
Provides real-time weather data, forecasts, and alerts using the OpenWeatherMap API.
MCP Location Services for LLM
Provides geocoding, reverse geocoding, routing, and driving distance calculations for LLMs using pgGeocoder and pgrServer.
Runframe
Incident management MCP server. Acknowledge, escalate, page, and resolve incidents, check on-call, manage services, postmortems, and teams from any MCP client.
Policy Layer
Non-custodial spending controls for AI agent wallets — enforce limits, allowlists, and kill switches before transactions execute.
SpeedOf.Me Speed Test MCP
Official SpeedOf.Me server for AI agents - accurate speed tests via 129 global edge servers with analytics dashboard.
Poke-MCP
Fetches Pokémon data from the PokeAPI and exposes it through a standardized MCP interface.
FRITZ!Box MCP Server
Control AVM FRITZ!Box routers - manage devices, WiFi, network settings, parental controls, and schedule time-delayed actions