Dogłębna analiza 2026

Każdy serwer MCP dla TIA Portal,
Przeanalizowany i porównany

Cztery projekty łączą AI z Siemens TIA Portal poprzez MCP. Przeanalizowaliśmy ich kod źródłowy, architekturę i bezpieczeństwo. Jeden jest stworzony do celów produkcyjnych, trzy to eksperymenty open-source. Oto pełne zestawienie techniczne.

Krajobraz MCP dla TIA Portal

Model Context Protocol (MCP) umożliwia agentom AI bezpośrednią interakcję z narzędziami inżynierskimi. Dla Siemens TIA Portal istnieją obecnie cztery implementacje.

T-IA Connect

Komercyjny · Klasa produkcyjna

Most MCP klasy przemysłowej z 369 narzędziami obejmującymi pełny cykl życia TIA Portal: zarządzanie projektami, CRUD bloków, zarządzanie tagami, HMI, operacje online, symulację PLCSim i wiele innych. Aktywny rozwój, profesjonalne wsparcie.

Openness API (V17–V21)

heilingbrunner/tiaportal-mcp

Open Source · Rozszerzenie VS Code

Rozszerzenie VS Code z 30 narzędziami MCP do przeglądania projektów, importu/eksportu bloków, kompilacji oraz nowego formatu dokumentów V20. Brak zarządzania tagami, brak HMI, brak operacji online. Nieaktywny od września 2025 r.

Openness API (tylko V20)

gangsterke/Tia-Portal-MCP-server

Open Source · Proof of Concept

Minimalny prototyp z 12 narzędziami tylko do odczytu (przeglądanie projektów i odczyt tagów). Zbudowany w jeden dzień, nigdy nie aktualizowany. V18 zakodowana na sztywno, brak obsługi błędów i zabezpieczeń.

Openness API (tylko V18)

cadugrillo/s7-mcp-bridge

Open Source · Monitor Runtime

Inne podejście: łączy się bezpośrednio z PLC Web API (HTTPS) bez TIA Portal. 21 narzędzi do monitorowania czasu rzeczywistego (runtime), odczytu/zapisu tagów i sterowania CPU. Brak możliwości inżynieryjnych.

PLC Web API (S7-1200/1500)

Analiza kodu źródłowego

Przejrzeliśmy kod źródłowy każdego projektu, aby ocenić jego architekturę, bezpieczeństwo i użyteczność w rzeczywistych warunkach. Oto nasze wnioski.

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

Brak zarządzania tagami — nie można czytać, zapisywać, tworzyć ani importować/eksportować tagów
Brak wsparcia HMI/WinCC — brak ekranów, połączeń, alarmów i tagów HMI
Brak operacji online — brak GoOnline, Download i monitorowania w czasie rzeczywistym
Brak wsparcia dla symulacji PLCSim
Brak generowania bloków — nie można tworzyć nowych bloków w SCL, LAD, FBD ani GRAPH
Brak zarządzania sieciami/podsieciami oraz wsparcia dla bibliotek
Brak tabel obserwacyjnych (watch tables) i tabel wymuszania (force tables)
Brak systemu zadań (job system) — wszystkie operacje są synchroniczne i blokujące

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.

~13% pokrycia funkcjonalnego względem T-IA Connect

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.

gangsterke/Tia-Portal-MCP-server — jednodniowy Proof of Concept

12 narzędzi MCP · Tylko V18 · Zbudowany w jeden dzień, nigdy nie aktualizowany

Ten projekt jest dokładnie tym, na co wygląda: proof of concept zbudowany w ciągu jednego dnia (12 października 2025 r.) i nigdy od tego czasu nie aktualizowany. Łącznie około 1260 linii kodu. Pokazuje, że połączenie MCP z TIA Portal jest możliwe, ale nie oferuje nic poza tym.

Stos techniczny

Architektura dwuprocesowa: warstwa Node.js TypeScript (~400 linii) obsługuje protokół MCP, podczas gdy podproces C# .NET Framework 4.8 (~860 linii w pojedynczym pliku Program.cs) wywołuje Openness API. Komunikacja między procesami odbywa się przez stdin/stdout JSON.

12 narzędzi MCP — tylko do odczytu

Wszystkie narzędzia działają w trybie tylko do odczytu: otwieranie/zamykanie projektu, lista sterowników PLC, lista bloków (tylko poziom główny — brak rekurencji w grupach), eksport pojedynczego bloku jako XML, odczyt tabel tagów, wyszukiwanie tagów, pobieranie konfiguracji sprzętowej, informacje o projekcie oraz dwa narzędzia OPC UA (eksport/pobieranie informacji o interfejsie). Wsparcie dla OPC UA to jego jedyna unikalna cecha.

Narzędzie get_block_code jest mylące — zwraca jedynie metadane (nazwę, typ, język), a nie rzeczywisty kod źródłowy.

Istotne problemy

V18 zakodowana na sztywno

Ścieżki bezwzględne do Portal V18\PublicAPI\V18\ są zakodowane na sztywno. Całkowity brak wsparcia dla wielu wersji.

Brak STA Threading

Działa dzięki szczęściu na .NET Framework 4.8, ponieważ główny wątek domyślnie działa w trybie STA, ale nie jest to jawnie zarządzane i zawiedzie przy obciążeniu współbieżnym.

Ciche ignorowanie błędów

Puste bloki catch w całym kodzie — błędy są po cichu ignorowane. Jeśli coś pójdzie nie tak, nigdy się o tym nie dowiesz.

Race condition przy uruchamianiu

Używa prostego setTimeout(2000ms), aby czekać na start podprocesu C#. Brak kontroli stanu (health check) i właściwego uścisku dłoni (handshake).

Zero bezpieczeństwa

Brak uwierzytelniania, brak walidacji ścieżek (możliwy directory traversal), brak limitowania zapytań (rate limiting). Zero testów, zero CI/CD, brak pliku LICENSE mimo deklaracji MIT w package.json.

~1–2% pokrycia funkcjonalnego względem T-IA Connect

Przy około 1–2% pokrycia funkcjonalnego T-IA Connect, jest to minimalny proof of concept, a nie narzędzie. Jego jedynym oryginalnym wkładem jest obsługa interfejsu OPC UA. Użyteczny jako ćwiczenie edukacyjne, niebezpieczny do czegokolwiek innego.

cadugrillo/s7-mcp-bridge — monitorowanie runtime bez TIA Portal

21 narzędzi MCP · PLC Web API · Brak możliwości inżynieryjnych

Ten projekt przyjmuje fundamentalnie inne podejście: zamiast łączyć się z TIA Portal przez Openness API, łączy się bezpośrednio z wbudowanym w PLC Web API (JSON-RPC przez HTTPS). Oprogramowanie Siemens nie jest potrzebne — wystarczy połączenie sieciowe ze sterownikiem PLC. Dzięki temu jest to rozwiązanie komplementarne, a nie konkurencyjne wobec innych projektów, ale wprowadza poważne obawy dotyczące bezpieczeństwa.

Stos techniczny

Czysty TypeScript/Node.js. Transport przez HTTP-stream (port 57001) lub stdio. Dystrybucja obejmuje obrazy Docker multi-arch oraz rozszerzenie Claude Desktop (.mcpb). Brak zależności od Siemens — wyłącznie wywołania fetch() do https://<PLC_IP>/api/jsonrpc.

21 narzędzi MCP — skupienie na Runtime

System (Api-Ping, Api-Version, Api-Browse), Uwierzytelnianie (Api-Login, Api-Logout, ChangePassword), Konfiguracja (List-AvailablePlcs), Dane (PlcProgram-Browse, PlcProgram-Read, PlcProgram-Write), Sterowanie CPU (ReadOperatingMode, RequestChangeOperatingMode, ReadSystemTime, SetSystemTime), Diagnostyka (Alarms-Browse, Alarms-Acknowledge, DiagnosticBuffer-Browse) oraz Backup (Plc-CreateBackup).

Co robi dobrze

Nie wymaga instalacji oprogramowania Siemens — dowolna maszyna z Node.js może się połączyć
Przejrzysta architektura: jeden plik na narzędzie, dobrze zorganizowany kod
Wsparcie dla Docker oraz rozszerzenia Claude Desktop
Monitorowanie czasu rzeczywistego bez konieczności otwierania TIA Portal

Co jest niebezpieczne

AI może zatrzymać produkcję

Narzędzie RequestChangeOperatingMode pozwala agentowi AI przełączyć CPU w tryb STOP. Narzędzie PlcProgram-Write pozwala na zapisywanie dowolnych wartości w tagach PLC. Na linii produkcyjnej jedna halucynacja AI może zatrzymać całą fabrykę. Brak okien dialogowych potwierdzenia, brak ścieżki audytu, brak kontroli bezpieczeństwa. By contrast, T-IA Connect deliberately disabled the start_cpu and stop_cpu commands — they return an explicit error even though the Openness API would allow it. Downloading to a physical CPU requires a manual confirmation with a detailed safety message.

Globalnie wyłączony TLS

Kod ustawia NODE_TLS_REJECT_UNAUTHORIZED = "0", co wyłącza weryfikację certyfikatów TLS dla całego procesu Node.js — nie tylko dla połączeń z PLC. Jest to poważna luka w bezpieczeństwie.

Poświadczenia w pamięci

Poświadczenia do PLC są przechowywane w pamięci jako tekst jawny. Brak szyfrowania, brak bezpiecznego przechowywania.

Zero testów

Brak zestawu testów dla narzędzia, które bezpośrednio kontroluje urządzenia przemysłowe. Nieaktywny od października 2025 r.

Inna kategoria — tylko monitorowanie runtime

s7-mcp-bridge zajmuje inną niszę — monitorowanie runtime przez PLC Web API, a nie inżynierię. Podejście bez instalacji jest interesujące dla dashboardów monitorujących. Jednak całkowity brak barierek bezpieczeństwa przy krytycznych operacjach (CPU STOP, zapis tagów) czyni go niebezpiecznym dla każdego środowiska przemysłowego. T-IA Connect obejmuje zarówno operacje inżynieryjne, jak i runtime, z zachowaniem odpowiednich zabezpieczeń.

Dlaczego bezpieczeństwo produkcji ma znaczenie

Łączenie AI z urządzeniami przemysłowymi to nie zabawka. Oto co jest stawką.

STA Threading nie podlega negocjacjom

Siemens Openness API wykorzystuje obiekty COM wymagające trybu Single-Threaded Apartment (STA). Bez właściwego dispatchingu STA, wywołania COM mogą po cichu uszkodzić dane lub powodować losowe błędy pod obciążeniem. T-IA Connect to jedyna implementacja z prawidłowym StaDispatcher.

AI + PLC = Krytyczne dla bezpieczeństwa

Gdy agent AI może zapisywać tagi, pobierać programy lub zmieniać tryby pracy CPU, jedna halucynacja może zatrzymać linię produkcyjną. T-IA Connect wykorzystuje uwierzytelnianie kluczem API, rate limiting i logowanie działań. Alternatywy open-source nie posiadają żadnych barier bezpieczeństwa.

Wsparcie wielu wersji ma znaczenie

Większość fabryk korzysta z V17 lub V18 — nie z V20. Narzędzie zakodowane na sztywno dla jednej wersji TIA Portal wyklucza większość rzeczywistych instalacji. T-IA Connect dynamicznie ładuje poprawne biblioteki Openness DLL dla wersji od V17 do V21.

Tryb Headless dla CI/CD

Zautomatyzowane potoki muszą działać bez interfejsu GUI. T-IA Connect może otworzyć TIA Portal w trybie headless, skompilować, pobrać program i zamknąć go — bez żadnej interakcji użytkownika. Alternatywy open-source wymagają ręcznego uruchomienia TIA Portal.

Tabela porównawcza funkcji

Pełna macierz porównawcza — wszystkie funkcje, wszystkie cztery serwery w skrócie

Funkcja
T-IA Connect
heilingbrunner
gangsterke
s7-mcp-bridge
Narzędzia MCP
369
30
12
21
Wersje TIA Portal
V17, V18, V19, V20, V21
Tylko V20 (NuGet na sztywno)
Tylko V18 (ścieżka na sztywno)
N/D — TIA Portal niepotrzebny
Operacje na blokach
Pełny CRUD + generowanie SCL/LAD/FBD/GRAPH
Import/Eksport (XML i dokumenty V20)
Tylko eksport (poziom główny)
Brak
Zarządzanie tagami
Pełny CRUD + import/eksport
Brak
Tylko odczyt
Odczyt/Zapis runtime
HMI / WinCC
Ekrany, połączenia, alarmy, tagi
Brak
Brak
Brak
Operacje Online
GoOnline, Download (confirmation required), monitoring — Run/Stop CPU disabled by design for safety
Brak
Brak
Run/Stop CPU, odczyt/zapis tagów
Symulacja PLCSim
PLCSim + PLCSim Advanced
Brak
Brak
Brak
STA Threading
StaDispatcher (bezpieczny produkcyjnie)
Brak (ryzyko awarii COM)
Brak (ryzyko awarii COM)
N/D
Bezpieczeństwo
Klucz API + rate limiting + licencja RSA
Brak
Brak
Brak (globalnie wyłączony TLS)
Transport
HTTP + SSE + stdio
Tylko stdio
Tylko stdio
HTTP-stream + stdio
REST API
417 punktów końcowych
Brak
Brak
Brak
Tryb Headless
Tak — GUI TIA Portal nie jest wymagany
Nie — wymaga otwartego TIA Portal
Nie — wymaga otwartego TIA Portal
N/D
Ostatnia aktualizacja
Aktywny (cotygodniowe aktualizacje)
Wrzesień 2025 (nieaktywny 6+ mies.)
Październik 2025 (zbudowany w 1 dzień, brak aktualizacji)
Październik 2025 (nieaktywny 6+ mies.)
Licencja
Komercyjna (14-dniowy bezpłatny okres próbny)
MIT
MIT
MIT
CPU Safety Guardrails
start/stop CPU disabled by design, physical download requires mandatory confirmation, full audit trail
None (no online operations)
None (no online operations)
None — RequestChangeOperatingMode exposed unprotected, arbitrary tag write without confirmation

Często zadawane pytania

Co to jest MCP i dlaczego ma znaczenie dla TIA Portal?

MCP (Model Context Protocol) to otwarty standard firmy Anthropic, który pozwala agentom AI na interakcję z zewnętrznymi narzędziami. W przypadku TIA Portal oznacza to, że dowolna sztuczna inteligencja — Claude, GPT, Llama, Gemini — może tworzyć bloki PLC, zarządzać tagami, kompilować i pobierać programy. To most łączący nowoczesną sztuczną inteligencję z automatyką przemysłową.

Czy serwery MCP open-source są bezpieczne do użytku produkcyjnego?

Nie. Żadna z trzech implementacji open-source nie obsługuje poprawnie STA threading, co wiąże się z ryzykiem uszkodzenia obiektów COM przy współbieżnym użyciu. Brakuje im również uwierzytelniania, rate limitingu i logowania audytowego — elementów niezbędnych dla każdego narzędzia wchodzącego w interakcję z urządzeniami przemysłowymi. Są one użyteczne do eksperymentów, a nie do produkcji.

Czy mogę używać T-IA Connect z Claude, ChatGPT lub lokalnymi modelami?

Tak. T-IA Connect wspiera każdego klienta kompatybilnego z MCP: Claude Desktop, Claude Code, Cursor, VS Code z Continue, Windsurf i dowolne niestandardowe integracje. Ponieważ MCP jest otwartym protokołem, możesz wybrać dostawcę AI — w tym modele lokalne przez Ollama dla środowisk odizolowanych (air-gapped).

Co z s7-mcp-bridge — czy nie jest on rozwiązaniem komplementarnym?

s7-mcp-bridge przyjmuje inne podejście: łączy się z wbudowanym w PLC Web API, a nie z TIA Portal. Jest to przydatne do monitorowania runtime, ale nie pozwala na tworzenie bloków, zarządzanie strukturą projektu ani żadne prace inżynieryjne. Jest to również niebezpieczne: może wprowadzić CPU w tryb STOP i zapisywać dowolne wartości tagów bez żadnych kontroli bezpieczeństwa. T-IA Connect obejmuje zarówno operacje inżynieryjne, jak i runtime, z zachowaniem właściwych zabezpieczeń.

Gotowy, by połączyć AI z TIA Portal?

Zacznij od bezpłatnego 14-dniowego okresu próbnego. Wszystkie 369 narzędzi MCP, wszystkie wersje TIA Portal, bez konieczności podawania karty kredytowej.