LABSCO SUMMARY
Automation work that normally means clicking through TIA Portal, driven from chat instead.
The natural shape is a chained instruction — connect, open the project, export or compile, close, disconnect — and the project's own examples read exactly like that. Two prerequisites bite people before anything works: the TiaPortalLocation variable and Openness group membership are both Windows-side setup that TIA Portal will not prompt you about.
What it is
A Visual Studio Code extension that registers an MCP server for Siemens TIA Portal V20. It connects to a running TIA Portal instance through Siemens Openness, so an agent in Copilot chat can work with the project directly.
What you get
- Connect to a running TIA Portal instance and open a project file
- Read back the project structure, including as markdown you can paste into documentation
- Export all blocks from a PLC software target to a folder in your workspace
- Export all types from the same PLC software target
- Compile a named PLC software target
- Close the project and disconnect when the session is done
Requirements
Windows with Siemens TIA Portal V20 installed and running, Siemens.Openness, and .NET Framework 4.8. The TiaPortalLocation user environment variable must point at the Portal V20 install directory, and your Windows account must be in the Siemens TIA Openness group. In VS Code you need GitHub Copilot with MCP enabled; the extension writes the server entry for you via its “TIA Portal: Add MCP Server Configuration” command.
Setup effort
Add the configuration to your client
USE CASES
01
Pulling every block out of a PLC program for review
Open the project, export blocks and types into your workspace folder, then close it again in the same instruction.
02
Documenting a project structure
Ask for the project structure as markdown with exact wording, and paste it straight into the handover document.
03
Compiling a PLC target without leaving the editor
Name the PLC software and have it compiled, then close the project so the file is not left locked.
04
Using it outside VS Code
Point Claude Desktop at the TiaMcpServer executable inside the installed extension folder instead.
INSTALLATION
Connect your client
MCP Clients
VS Code
VS CODE · JSON
{
"servers": {
"vscode-tiaportal-mcp": {
"command": "c:\\Users\\<YOUR_USERNAME>\\.vscode\\extensions\\jheilingbrunner.vscode-tiaportal-mcp-<YOUR_VERSION>\\srv\\net48\\TiaMcpServer.exe",
"args": [],
"env": {}
}
}
}Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"vscode-tiaportal-mcp": {
"command": "c:\\Users\\<YOUR_USERNAME>\\.vscode\\extensions\\jheilingbrunner.vscode-tiaportal-mcp-<YOUR_VERSION>\\srv\\net48\\TiaMcpServer.exe",
"args": [],
"env": {}
}
}
}