heilingbrunner/tiaportal-mcp — 最先进的开源选择
30 个 MCP 工具 · 仅限 V20 · 自 2025 年 9 月起停止维护
这是最严肃的开源竞争对手。由 3 位贡献者历时约 4 个月(2025 年 6 月至 9 月)开发,在 GitHub 上获得 32 个 star 和 11 个 fork。同时也作为 VS Code 扩展发布。然而,该项目已停止维护超过 6 个月。
技术栈
纯 C# .NET Framework 4.8(无 Node.js 中间层)。使用官方 .NET MCP SDK (ModelContextProtocol v0.3.0-preview)。仅通过 stdio 传输(无 HTTP/SSE)。引用了 Siemens V20 NuGet 包 — 相比动态加载 DLL 这是一种更现代的方法,但被锁定在单一版本。
30 个 MCP 工具 — 功能覆盖
工具涵盖 7 个类别:连接管理 (Connect, Disconnect, GetState)、项目操作 (Open, Save, Close, GetProjectTree)、硬件检查 (GetDevices, GetDeviceInfo)、软件管理 (GetSoftwareTree, CompileSoftware)、程序块操作 (GetBlocks, ImportBlock, ExportBlock)、UDT 处理 (GetTypes, ImportType, ExportType) 以及 V20 文档格式支持 (ExportAsDocuments, ImportFromDocuments)。
对 V20 文档格式 (.s7dcl/.s7res) 的支持是一个显著特点 — 这是 Siemens 的新格式,允许以结构化、人类可读的格式导出程序块。
缺失的功能
技术缺陷
缺乏 STA 线程处理
这是最关键的问题。Siemens Openness API 使用的 COM 对象要求单线程单元 (STA) 模式。如果没有正确的 STA 调度,COM 调用在并发负载下可能会导致数据损坏或随机崩溃。这使得该工具无法可靠地用于任何自动化流水线。
单体式架构
Portal.cs 文件包含 2,300 行代码,而 McpServer.cs 将所有工具放在一个文件中。这使得代码库难以维护和扩展。
V20 硬编码
虽然它接受 --tia-major-version 命令行参数,但 NuGet 引用硬编码为 V20。而大多数现实世界的工厂仍在使用 V17 或 V18。
始终需要 GUI
无无头 (Headless) 模式 — 必须先手动打开 TIA Portal。无法在 CI/CD 流水线中使用。
进程选择问题
使用 processes.First() — 自动连接到找到的第一个 TIA Portal 实例。如果运行了多个实例,则无法选择目标实例。
功能覆盖率约为 T-IA Connect 的 13%,heilingbrunner 是最先进的开源选择。其对 V20 文档格式的支持确实有用。然而,缺乏 STA 线程处理、无在线操作、无变量管理以及 6 个多月的维护停滞,使其不适合生产自动化。