loginLABSCO SUMMARY
It reaches exactly what the S7 webserver API exposes — including the write side.
Tag writes and operating-mode change requests are both in the tool set, so this is not a read-only window onto the controller; decide deliberately which account it logs in as. Api-GetPermissions after login is the fast way to see what that account can actually do.
What it is
An MCP server for SIEMENS S7-1500 and S7-1200 PLCs. It talks to the controller's webserver over its JSON-RPC 2.0 API and exposes those methods as tools.
What you get
- Tag browse and read: PlcProgram-Browse and PlcProgram-Read
- Writing Boolean, Number or String tags
- CPU operating mode, read and change requested: Plc-ReadOperatingMode, Plc-RequestChangeOperatingMode
- CPU system time, read and set: Plc-ReadSystemTime, Plc-SetSystemTime
- Alarms and diagnostics: Alarms-Browse, Alarms-Acknowledge, DiagnosticBuffer-Browse
- Session and permissions: login, logout, Api-GetPermissions, ping
- API introspection: Api-Version, Api-Browse, Api-GetQuantityStructures, Api-GetPasswordPolicy
- Optional service-account login with automatic token refresh
Requirements
Node.js v18.x or later and access to a running SIEMENS PLC webserver. Credentials go in a config.js file holding the JSON-RPC URL, a username and a password; the client connects through mcp-remote to the local endpoint.
Setup effort
Add the configuration to your client
USE CASES
Seeing what is in the program without TIA Portal open
Browse the tag tree, then read the values you care about.
Working through an alarm
List what is active, check the diagnostic buffer, then acknowledge it.
Checking the CPU's state
Read the operating mode and the system time before you touch anything.
Confirming what your account is allowed to do
Log in and read the permissions back rather than finding out on a write.
20 tools
Listed in project docs. Your client may show a different list.
logoutChangePassword-userpingApi-GetPermissionsApi-VersionApi-BrowseApi-GetQuantityStructuresApi-GetPasswordPolicyPlcProgram-BrowsePlcProgram-ReadPlcProgram-Write-*Plc-ReadOperatingModePlc-RequestChangeOperatingModePlc-ReadSystemTimePlc-SetSystemTimeProject-ReadLanguagesAlarms-BrowseAlarms-AcknowledgeDiagnosticBuffer-BrowseBEFORE YOU INSTALL
What to know first
Tools you get
20 tools named in the project's documentation. PlcProgram-Write-* stands for separate Bool, Number and String write variants that are not individually named.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
MCP Clients
Claude Desktop
{
"mcpServers": {
"ThinkPLC-MCP": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:5000/mcp"
]
}
}
}