TIA-Portal MCP-Server
An MCP server for Siemens TIA Portal: the agent reads the PLC program, blocks and tags; edits need a flag.
- 135 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- With `--allow-write` the agent can change and delete PLC project objects, and the program drives equipment.
- Without the write flag the server only reads the project.
Install
- Works in
Manual install
claude mcp add tia-mcp-server --scope project -- "<path-to>\TiaMcpServer.exe" --tia-major-version 21The README command for Claude Code; `TiaMcpServer.exe` comes from the VS Code extension or a release. Path presets and `--allow-write` are appended.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- With `--allow-write` the agent can change and delete PLC project objects, and the program drives equipment.
- Without the write flag the server only reads the project.
This is third-party code. Review the repository files before installing.
What it does
TIA-Portal MCP-Server connects to a running Siemens TIA Portal through the Openness API and gives an agent 71 read tools: project and devices, program blocks, PLC data types, tag tables, constants, watch and force tables, external sources and cross references. Blocks and types export as git-readable `.s7dcl` documents (TIA Portal V20 or V21 required), the rest as XML. By default the server only reads. The `--allow-write` flag registers 51 more mutating tools: creating, renaming, deleting, moving and importing objects. Edits live in memory until `SaveProject` is called.
Who it is for. Automation engineers who program Siemens PLCs and want to analyze and edit a project together with an agent.
Good fit when
- An unfamiliar project needs to be understood: which blocks call each other and where a tag is used.
- Blocks are exported to `.s7dcl` for diff and review in git.
- The agent is asked to compile the PLC program and sort out errors.
- A routine edit is applied to many blocks by a name pattern.
Not a fit when
- Work on Linux or macOS is needed, but the server requires Windows.
- TIA Portal is not installed or the Siemens TIA Openness group is unavailable.
- The agent must not change the program of a running installation.
Example request
Show the project tree, find blocks that use the tag Motor_Start, and compile the PLC program, listing any errors.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
TiaPortalLocationrequired- TIA Portal installation folder, for example `C:\Program Files\Siemens\Automation\Portal V21`.
Limitations
Windows only: .NET Framework 4.8, an installed and running Siemens TIA Portal (V21 by default), the `TiaPortalLocation` variable and membership of the user in the Windows group `Siemens TIA Openness` are required. Only the stdio transport works, HTTP is not implemented. The `--doctor` flag checks the environment. Edits in write mode stay in memory until the project is saved. The README names no package-manager package: the `TiaMcpServer.exe` executable comes from the VS Code extension or is built yourself.
How to disable. Remove the server from the client configuration, for example with `claude mcp remove tia-mcp-server`. To keep read-only access, drop the `--allow-write` flag from `args`.
FAQ
How do I check that the environment is set up?
Run `TiaMcpServer.exe --doctor`: the report shows installed TIA Portal versions, Openness group membership and write mode state. The `Doctor` tool returns the same report.
How do I enable write mode?
Add `--allow-write` to `args`. Then 51 mutating tools are registered with the `destructiveHint` annotation, so the client can ask for confirmation before each call.
How do I avoid passing the project path in each request?
Set `--project-path`, `--software-path` and `--export-path` in `args`: the arguments become optional. With `--force-presets` they cannot be overridden.
Which TIA Portal versions are supported?
V21 by default, earlier ones are chosen with `--tia-major-version`. Exporting blocks to `.s7dcl` needs V20 or newer, exporting data types needs V21.
Does the server work over HTTP?
No, only stdio. Streamable HTTP is not implemented: the server targets .NET Framework 4.8, which TIA Openness requires, so HTTP would need a separate proxy on .NET 8 or newer.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server for Siemens TIA Portal V21: an agent reads PLC blocks, tags, network and HMI and makes guarded edits.
A plugin for Siemens TIA Portal automation: skills for Python Scripting and C# Openness plus an MCP server with the documentation
An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell
NX MCP connects an agent to Siemens NX with 16 typed tools for parts, sketches, extrusions and STEP export.
MCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates
computer-use-linux is an MCP server with an on-screen agent activity indicator that lets user clicks reach the application.
README in short
The README lists command-line arguments, write mode, a table of tools by area, environment requirements, SIMATIC source documents and setup for VS Code, Claude Code and other clients.