heilingbrunner/tiaportal-mcp — najzaawansowana opcja open-source
30 narzędzi MCP · Tylko V20 · Nieaktywny od września 2025 r.
To najpoważniejszy konkurent open-source. Rozwijany przez około 4 miesiące (czerwiec–wrzesień 2025) przez 3 współtwórców, posiada 32 gwiazdki i 11 forków na GitHub. Dostępny również jako rozszerzenie VS Code. Projekt pozostaje jednak nieaktywny od ponad 6 miesięcy.
Stos techniczny
Czysty C# .NET Framework 4.8 (brak pośrednika Node.js). Wykorzystuje oficjalny .NET MCP SDK (ModelContextProtocol v0.3.0-preview). Transport wyłącznie przez stdio (brak HTTP/SSE). Wykorzystuje pakiety NuGet Siemens V20 — podejście nowocześniejsze niż dynamiczne ładowanie bibliotek DLL, ale ograniczone do jednej wersji.
30 narzędzi MCP — co obejmują
Narzędzia obejmują 7 kategorii: zarządzanie połączeniami (Connect, Disconnect, GetState), operacje na projektach (Open, Save, Close, GetProjectTree), inspekcję sprzętu (GetDevices, GetDeviceInfo), zarządzanie oprogramowaniem (GetSoftwareTree, CompileSoftware), operacje na blokach (GetBlocks, ImportBlock, ExportBlock), obsługę UDT (GetTypes, ImportType, ExportType) oraz wsparcie formatu dokumentów V20 (ExportAsDocuments, ImportFromDocuments).
Wsparcie dla formatu dokumentów V20 (.s7dcl/.s7res) jest godną uwagi funkcją — to nowy format Siemens umożliwiający eksportowanie bloków w ustrukturyzowanej, czytelnej dla człowieka formie.
Czego nie potrafi
Problemy techniczne
Brak STA Threading
To najbardziej krytyczny problem. Siemens Openness API wykorzystuje obiekty COM wymagające trybu Single-Threaded Apartment (STA). Bez odpowiedniego dispatchingu STA, wywołania COM mogą po cichu uszkodzić dane lub powodować losowe błędy przy obciążeniu współbieżnym. Czyni to narzędzie niewiarygodnym w zautomatyzowanych potokach (pipelines).
Architektura monolityczna
Plik Portal.cs zawiera 2300 linii, a McpServer.cs umieszcza wszystkie narzędzia w jednym pliku. Utrudnia to konserwację i rozbudowę kodu.
V20 zakodowana na sztywno
Mimo akceptowania argumentu CLI --tia-major-version, referencje NuGet są na sztywno powiązane z V20. Większość rzeczywistych zakładów nadal korzysta z V17 lub V18.
Zawsze wymaga GUI
Brak trybu headless — TIA Portal musi zostać otwarty ręcznie. Narzędzia nie można używać w potokach CI/CD.
Wybór procesu
Używa processes.First() — podłącza się do pierwszej znalezionej instancji TIA Portal. Przy wielu uruchomionych instancjach nie ma możliwości wyboru konkretnej.
Przy pokryciu funkcjonalnym na poziomie około 13% w stosunku do T-IA Connect, heilingbrunner jest najzaawansowaną opcją open-source. Wsparcie dla formatu dokumentów V20 jest naprawdę użyteczne. Jednak brak STA threading, brak operacji online, brak zarządzania tagami i ponad 6-miesięczna nieaktywność czynią go nieodpowiednim do automatyzacji produkcji.