Analyse approfondie 2026

Tous les serveurs MCP pour TIA Portal,
analysés et comparés

Quatre projets connectent l'IA à Siemens TIA Portal via MCP. Nous avons analysé leur code source, leur architecture et leur sécurité. Un seul est conçu pour la production, trois sont des expériences open-source. Voici l'analyse technique complète.

Le paysage MCP pour TIA Portal

Le Model Context Protocol (MCP) permet aux agents IA d'interagir directement avec les outils d'ingénierie. Pour Siemens TIA Portal, quatre implémentations existent aujourd'hui.

T-IA Connect

Commercial · Qualité production

Bridge MCP industriel avec 369 outils couvrant tout le cycle de vie TIA Portal : gestion de projet, CRUD de blocs, gestion des tags, IHM, opérations en ligne, simulation PLCSim, et plus. Développement actif, support professionnel.

API Openness (V17–V21)

heilingbrunner/tiaportal-mcp

Open Source · Extension VS Code

Extension VS Code avec 30 outils MCP pour la navigation de projet, l'import/export de blocs, la compilation et le nouveau format document V20. Pas de gestion de tags, pas d'IHM, pas d'opérations en ligne. Inactif depuis septembre 2025.

API Openness (V20 uniquement)

gangsterke/Tia-Portal-MCP-server

Open Source · Preuve de concept

Prototype minimal avec 12 outils en lecture seule pour la navigation de projet et la lecture de tags. Construit en une journée, jamais mis à jour. V18 codé en dur, aucune gestion d'erreurs, aucune sécurité.

API Openness (V18 uniquement)

cadugrillo/s7-mcp-bridge

Open Source · Monitoring runtime

Approche différente : se connecte directement à l'API Web du PLC (HTTPS) sans TIA Portal. 21 outils pour le monitoring runtime, lecture/écriture de tags et contrôle CPU. Aucune capacité d'ingénierie.

API Web PLC (S7-1200/1500)

Analyse du code source

Nous avons examiné le code source de chaque projet pour évaluer l'architecture, la sécurité et l'utilisabilité en conditions réelles. Voici ce que nous avons trouvé.

heilingbrunner/tiaportal-mcp — L'option open-source la plus avancée

30 outils MCP · V20 uniquement · Inactif depuis septembre 2025

C'est le concurrent open-source le plus sérieux. Développé sur environ 4 mois (juin–septembre 2025) par 3 contributeurs, avec 32 stars et 11 forks sur GitHub. Également distribué en extension VS Code. Cependant, le projet est inactif depuis plus de 6 mois.

Stack technique

C# .NET Framework 4.8 pur (pas d'intermédiaire Node.js). Utilise le SDK MCP officiel .NET (ModelContextProtocol v0.3.0-preview). Transport via stdio uniquement (pas de HTTP/SSE). Référence les packages NuGet Siemens V20 — une approche plus moderne que le chargement dynamique de DLL, mais verrouillée sur une seule version.

30 outils MCP — Ce qu'ils couvrent

Les outils couvrent 7 catégories : gestion de connexion (Connect, Disconnect, GetState), opérations de projet (Open, Save, Close, GetProjectTree), inspection hardware (GetDevices, GetDeviceInfo), gestion logicielle (GetSoftwareTree, CompileSoftware), opérations sur les blocs (GetBlocks, ImportBlock, ExportBlock), gestion des UDTs (GetTypes, ImportType, ExportType), et support du format document V20 (ExportAsDocuments, ImportFromDocuments).

Le support du format document V20 (.s7dcl/.s7res) est une fonctionnalité notable — c'est un nouveau format Siemens qui permet d'exporter les blocs dans un format structuré et lisible par l'homme.

Ce qu'il ne fait PAS

Pas de gestion des tags — impossible de lire, écrire, créer ou importer/exporter des tags
Pas de support IHM/WinCC — pas d'écrans, connexions, alarmes ou tags IHM
Pas d'opérations en ligne — pas de GoOnline, Download ou monitoring temps réel
Pas de support simulation PLCSim
Pas de génération de blocs — impossible de créer des blocs en SCL, LAD, FBD ou GRAPH
Pas de gestion réseau/subnet ni support de bibliothèques
Pas de tables de surveillance ni de tables de forçage
Pas de système de jobs — toutes les opérations sont synchrones et bloquantes

Problèmes techniques

Pas de threading STA

C'est le problème le plus critique. L'API Openness de Siemens utilise des objets COM qui nécessitent le mode Single-Threaded Apartment (STA). Sans dispatching STA correct, les appels COM peuvent corrompre silencieusement les données ou crasher aléatoirement sous charge concurrente. Cela rend l'outil non fiable pour tout pipeline automatisé.

Architecture monolithique

Portal.cs contient 2 300 lignes et McpServer.cs regroupe tous les outils dans un seul fichier. Cela rend le code difficile à maintenir et à étendre.

V20 codé en dur

Bien qu'il accepte un argument CLI --tia-major-version, les références NuGet sont codées en dur pour V20. La plupart des usines réelles utilisent encore V17 ou V18.

Nécessite toujours l'interface graphique

Pas de mode headless — TIA Portal doit être ouvert manuellement au préalable. Ne peut pas être utilisé dans des pipelines CI/CD.

Sélection de processus

Utilise processes.First() — s'attache à la première instance TIA Portal trouvée. Si plusieurs instances sont en cours d'exécution, impossible de choisir laquelle utiliser.

~13 % de couverture fonctionnelle vs T-IA Connect

Avec environ 13 % de la surface fonctionnelle de T-IA Connect, heilingbrunner est l'option open-source la plus avancée. Son support du format document V20 est réellement utile. Cependant, l'absence de threading STA, d'opérations en ligne, de gestion des tags et plus de 6 mois d'inactivité le rendent inapproprié pour l'automatisation en production.

gangsterke/Tia-Portal-MCP-server — Une preuve de concept d'un jour

12 outils MCP · V18 uniquement · Construit en un jour, jamais mis à jour

Ce projet est exactement ce qu'il paraît : une preuve de concept construite en une seule journée (12 octobre 2025) et jamais mise à jour depuis. Environ 1 260 lignes de code au total. Il démontre qu'il est possible de connecter MCP à TIA Portal, mais n'offre rien de plus.

Stack technique

Architecture double processus : une couche Node.js TypeScript (~400 lignes) gère le protocole MCP, tandis qu'un sous-processus C# .NET Framework 4.8 (~860 lignes dans un seul Program.cs) appelle l'API Openness. Communication entre les deux processus via JSON sur stdin/stdout.

12 outils MCP — Lecture seule

Tous les outils sont en lecture seule : ouvrir/fermer un projet, lister les PLC, lister les blocs (niveau racine uniquement — pas de récursion dans les groupes), exporter un bloc en XML, lire les tables de tags, rechercher des tags, obtenir la configuration hardware, obtenir les infos projet, et deux outils OPC UA (export/info d'interface). Le support OPC UA est sa seule fonctionnalité originale.

L'outil get_block_code est trompeur — il ne retourne que les métadonnées (nom, type, langage), pas le code source réel.

Problèmes notables

V18 codé en dur

Chemins absolus vers Portal V18\PublicAPI\V18\ codés en dur. Aucun support multi-version.

Pas de threading STA

Fonctionne par chance sur .NET Framework 4.8 car le thread principal est en STA par défaut, mais ce n'est pas géré explicitement et échouera sous charge concurrente.

Erreurs avalées silencieusement

Des blocs catch vides dans tout le code — les erreurs sont ignorées silencieusement. Si quelque chose ne fonctionne pas, vous ne le saurez jamais.

Race condition au démarrage

Utilise un simple setTimeout(2000ms) pour attendre le démarrage du sous-processus C#. Pas de health check, pas de handshake correct.

Zéro sécurité

Aucune authentification, aucune validation de chemins (directory traversal possible), aucun rate limiting. Zéro test, zéro CI/CD, pas de fichier LICENSE malgré la mention MIT dans package.json.

~1–2 % de couverture fonctionnelle vs T-IA Connect

Avec environ 1–2 % de la surface fonctionnelle de T-IA Connect, c'est une preuve de concept minimale, pas un outil. Sa seule contribution originale est le support de l'interface OPC UA. Utile comme exercice d'apprentissage, dangereux pour tout le reste.

cadugrillo/s7-mcp-bridge — Monitoring runtime sans TIA Portal

21 outils MCP · API Web PLC · Aucune capacité d'ingénierie

Ce projet adopte une approche fondamentalement différente : au lieu de se connecter à TIA Portal via l'API Openness, il se connecte directement à l'API Web intégrée du PLC (JSON-RPC sur HTTPS). Aucun logiciel Siemens n'est nécessaire — juste une connexion réseau au PLC. Cela le rend complémentaire plutôt que concurrent des autres projets, mais introduit de sérieuses préoccupations de sécurité.

Stack technique

TypeScript/Node.js pur. Transport via HTTP-stream (port 57001) ou stdio. Le packaging inclut des images Docker multi-arch et une extension Claude Desktop (.mcpb). Aucune dépendance Siemens — juste des appels fetch() vers https://<PLC_IP>/api/jsonrpc.

21 outils MCP — Focus runtime

Système (Api-Ping, Api-Version, Api-Browse), Authentification (Api-Login, Api-Logout, ChangePassword), Configuration (List-AvailablePlcs), Données (PlcProgram-Browse, PlcProgram-Read, PlcProgram-Write), Contrôle CPU (ReadOperatingMode, RequestChangeOperatingMode, ReadSystemTime, SetSystemTime), Diagnostics (Alarms-Browse, Alarms-Acknowledge, DiagnosticBuffer-Browse), et Backup (Plc-CreateBackup).

Ce qu'il fait bien

Zéro installation Siemens requise — n'importe quelle machine avec Node.js suffit
Architecture propre : un fichier par outil, code bien organisé
Support Docker et extension Claude Desktop
Monitoring runtime sans avoir besoin d'ouvrir TIA Portal

Ce qui est dangereux

L'IA peut arrêter la production

L'outil RequestChangeOperatingMode permet à un agent IA de mettre un CPU en mode STOP. L'outil PlcProgram-Write lui permet d'écrire des valeurs arbitraires dans les tags du PLC. Sur une ligne de production, une seule hallucination de l'IA pourrait arrêter une usine entière. Il n'y a aucune boîte de dialogue de confirmation, aucune piste d'audit, aucun contrôle de sécurité. À titre de comparaison, T-IA Connect a fait le choix délibéré de désactiver les commandes start_cpu et stop_cpu — elles retournent une erreur explicite même si l'API Openness le permettrait. Le download vers un CPU physique exige une confirmation manuelle avec un message de sécurité détaillé.

TLS désactivé globalement

Le code définit NODE_TLS_REJECT_UNAUTHORIZED = "0", ce qui désactive la vérification des certificats TLS pour tout le processus Node.js — pas seulement les connexions PLC. C'est une vulnérabilité de sécurité.

Identifiants en mémoire

Les identifiants PLC sont stockés en clair en mémoire. Aucun chiffrement, aucun stockage sécurisé.

Zéro test

Aucune suite de tests pour un outil qui contrôle directement des équipements industriels. Inactif depuis octobre 2025.

Catégorie différente — monitoring runtime uniquement

Le s7-mcp-bridge occupe une niche différente — monitoring runtime via l'API Web PLC, pas d'ingénierie. L'approche zéro installation est intéressante pour les tableaux de bord de monitoring. Cependant, l'absence totale de garde-fous de sécurité sur les opérations critiques (STOP CPU, écriture de tags) le rend dangereux pour tout environnement industriel. T-IA Connect couvre à la fois l'ingénierie et les opérations runtime avec des garde-fous appropriés.

Pourquoi la sécurité en production compte

Connecter une IA à un équipement industriel n'est pas un projet jouet. Voici les enjeux.

Le threading STA est non-négociable

L'API Openness de Siemens utilise des objets COM qui nécessitent le mode Single-Threaded Apartment (STA). Sans dispatching STA correct, les appels COM peuvent corrompre silencieusement les données ou crasher de manière aléatoire sous charge. T-IA Connect est la seule implémentation avec un StaDispatcher correct.

IA + PLC = critique pour la sécurité

Quand un agent IA peut écrire des tags, télécharger des programmes ou changer les modes de fonctionnement du CPU, une seule hallucination peut arrêter une ligne de production. T-IA Connect utilise l'authentification par clé API, le rate limiting et le logging des actions. Les commandes start_cpu et stop_cpu sont intentionnellement désactivées — elles retournent une erreur explicite, même si l'API Openness le permettrait. Le download vers un CPU physique nécessite une confirmation manuelle explicite (confirmPhysicalDownload=true). Les alternatives open-source n'ont aucun garde-fou.

Le support multi-version compte

La plupart des usines utilisent V17 ou V18 — pas V20. Un outil codé en dur pour une seule version de TIA Portal exclut la majorité des installations réelles. T-IA Connect charge dynamiquement les DLL Openness correctes de V17 à V21.

Mode headless pour CI/CD

Les pipelines automatisés doivent fonctionner sans interface graphique. T-IA Connect peut ouvrir TIA Portal en mode headless, compiler, télécharger et fermer — sans aucune interaction utilisateur. Les alternatives open-source nécessitent que TIA Portal soit ouvert manuellement.

Tableau comparatif fonctionnalité par fonctionnalité

La matrice de comparaison complète — toutes les fonctionnalités, les quatre serveurs, en un coup d'œil

Fonctionnalité
T-IA Connect
heilingbrunner
gangsterke
s7-mcp-bridge
Outils MCP
369
30
12
21
Versions TIA Portal
V17, V18, V19, V20, V21
V20 uniquement (NuGet codé en dur)
V18 uniquement (chemin codé en dur)
N/A — pas besoin de TIA Portal
Opérations sur les blocs
CRUD complet + génération SCL/LAD/FBD/GRAPH
Import/Export (XML & documents V20)
Export uniquement (niveau racine)
Aucune
Gestion des tags
CRUD complet + import/export
Aucune
Lecture seule
Lecture/écriture runtime
IHM / WinCC
Écrans, connexions, alarmes, tags
Aucune
Aucune
Aucune
Opérations en ligne
GoOnline, Download (confirmation requise), monitoring — Run/Stop CPU désactivé par choix de sécurité
Aucune
Aucune
Run/Stop CPU, lecture/écriture tags
Simulation PLCSim
PLCSim + PLCSim Advanced
Aucune
Aucune
Aucune
Threading STA
StaDispatcher (sûr en production)
Aucun (risque crash COM)
Aucun (risque crash COM)
N/A
Sécurité
Clé API + rate limiting + licence RSA
Aucune
Aucune
Aucune (TLS désactivé globalement)
Transport
HTTP + SSE + stdio
stdio uniquement
stdio uniquement
HTTP-stream + stdio
API REST
417 endpoints
Aucune
Aucune
Aucune
Mode headless
Oui — pas besoin de l'interface TIA Portal
Non — TIA Portal doit être ouvert
Non — TIA Portal doit être ouvert
N/A
Dernière mise à jour
Actif (mises à jour hebdomadaires)
Septembre 2025 (inactif depuis 6+ mois)
Octobre 2025 (construit en 1 jour, jamais mis à jour)
Octobre 2025 (inactif depuis 6+ mois)
Licence
Commercial (essai gratuit 14 jours)
MIT
MIT
MIT
Garde-fous CPU
start/stop CPU désactivés par design, download physique avec confirmation obligatoire, piste d'audit complète
Aucun (pas d'opérations en ligne)
Aucun (pas d'opérations en ligne)
Aucun — RequestChangeOperatingMode exposé sans protection, écriture tags arbitraire sans confirmation

Questions fréquemment posées

Qu'est-ce que MCP et pourquoi est-ce important pour TIA Portal ?

MCP (Model Context Protocol) est un standard ouvert d'Anthropic qui permet aux agents IA d'interagir avec des outils externes. Pour TIA Portal, cela signifie que n'importe quelle IA — Claude, GPT, Llama, Gemini — peut créer des blocs PLC, gérer des tags, compiler et télécharger des programmes. C'est le pont entre l'IA moderne et l'automatisme industriel.

Les serveurs MCP open-source sont-ils sûrs pour la production ?

Non. Aucune des trois implémentations open-source ne gère correctement le threading STA, ce qui signifie qu'elles risquent la corruption d'objets COM lors d'un usage concurrent. Elles manquent aussi d'authentification, de rate limiting et de logging d'audit — essentiels pour tout outil qui interagit avec des équipements industriels. Elles sont utiles pour l'expérimentation, pas pour la production.

Puis-je utiliser T-IA Connect avec Claude, ChatGPT ou des modèles locaux ?

Oui. T-IA Connect supporte tout client compatible MCP : Claude Desktop, Claude Code, Cursor, VS Code avec Continue, Windsurf et toute intégration personnalisée. Comme MCP est un protocole ouvert, vous choisissez votre fournisseur d'IA — y compris des modèles locaux via Ollama pour les environnements air-gapped.

Et le s7-mcp-bridge — n'est-il pas complémentaire ?

Le s7-mcp-bridge adopte une approche différente : il se connecte à l'API Web intégrée du PLC, pas à TIA Portal. C'est utile pour le monitoring runtime, mais il ne peut pas créer de blocs, gérer les structures de projet ou faire de l'ingénierie. C'est aussi dangereux : il expose RequestChangeOperatingMode sans protection — un agent IA peut mettre un CPU en STOP sans confirmation. T-IA Connect prend l'approche inverse : les commandes start_cpu et stop_cpu sont volontairement désactivées et retournent une erreur, le download vers CPU physique exige une confirmation explicite, et toutes les opérations critiques sont loguées avec piste d'audit.

Prêt à connecter l'IA à TIA Portal ?

Commencez avec un essai gratuit de 14 jours. Les 369 outils MCP, toutes les versions TIA Portal, sans carte bancaire.