heilingbrunner/tiaportal-mcp — The Most Advanced Open-Source Option
30 MCP tools · V20 only · Inactive since September 2025
This is the most serious open-source competitor. Developed over approximately 4 months (June–September 2025) by 3 contributors, with 32 stars and 11 forks on GitHub. Also distributed as a VS Code extension. However, the project has been inactive for over 6 months.
Technical Stack
Pure C# .NET Framework 4.8 (no Node.js intermediary). Uses the official .NET MCP SDK (ModelContextProtocol v0.3.0-preview). Transport via stdio only (no HTTP/SSE). References Siemens V20 NuGet packages — a more modern approach than dynamic DLL loading, but locked to a single version.
30 MCP Tools — What They Cover
The tools cover 7 categories: connection management (Connect, Disconnect, GetState), project operations (Open, Save, Close, GetProjectTree), hardware inspection (GetDevices, GetDeviceInfo), software management (GetSoftwareTree, CompileSoftware), block operations (GetBlocks, ImportBlock, ExportBlock), UDT handling (GetTypes, ImportType, ExportType), and V20 document format support (ExportAsDocuments, ImportFromDocuments).
The V20 document format (.s7dcl/.s7res) support is a notable feature — this is a new Siemens format that allows exporting blocks in a structured, human-readable format.
What It Doesn't Do
Technical Problems
No STA Threading
This is the most critical issue. The Siemens Openness API uses COM objects that require Single-Threaded Apartment (STA) mode. Without proper STA dispatching, COM calls can silently corrupt data or crash randomly under concurrent load. This makes the tool unreliable for any automated pipeline.
Monolithic Architecture
Portal.cs contains 2,300 lines and McpServer.cs puts all tools in a single file. This makes the codebase difficult to maintain and extend.
V20 Hardcoded
While it accepts a --tia-major-version CLI argument, the NuGet references are hardcoded to V20. Most real-world factories still run V17 or V18.
Always Requires GUI
No headless mode — TIA Portal must be manually opened first. Cannot be used in CI/CD pipelines.
Process Selection
Uses processes.First() — attaches to the first TIA Portal instance found. If multiple instances are running, there's no way to select which one.
At approximately 13% of T-IA Connect's functional surface, heilingbrunner is the most advanced open-source option. Its V20 document format support is genuinely useful. However, the lack of STA threading, no online operations, no tag management, and 6+ months of inactivity make it unsuitable for production automation.