
rickgaiser/tiamcp
API developmentこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
MCP server for Siemens TIA Portal
概要
MCP server for Siemens TIA Portal V21+ projects — reads and writes directly to TIA Portal via the Openness API, designed for a fast, LLM- and human-friendly workflow. Special features that make TiaMcp fast for LLM's and human-readable friendly: - STL is read/written as text AWL - PLC tables are converted to/from Excel-compatible CSV - HMI tables are converted to/from Excel-compatible CSV - HMI alarms are converted to/from Excel-compatible CSV - GRAPH is converted to/from compact text DSL (Domain Specific Language) Each item line of list_project ends with the formats it can be read in, e.g. tag table 'Tags' [csv, xml]; pass such a line to read_source_tree to read those formats. A write uses the one format whose files were edited, and refuses an item edited in two. All source is read and written as files in a source tree on disk, so an LLM reads only what it needs and edits with small diffs instead of passing whole blocks through its context.
README
以下は原文 README の抜粋です。原文を見る。
TiaMcp
MCP server for Siemens TIA Portal V21+ projects — reads and writes directly to TIA Portal via the Openness API, designed for a fast, LLM- and human-friendly workflow.
Special features that make TiaMcp fast for LLM’s and human-readable friendly:
- STL is read/written as text AWL
- PLC tables are converted to/from Excel-compatible CSV
- HMI tables are converted to/from Excel-compatible CSV
- HMI alarms are converted to/from Excel-compatible CSV
- GRAPH is converted to/from compact text DSL (Domain Specific Language)
Format reference
| Format / Language | File extension(s) | Read | Write |
|---|---|---|---|
| SCL | .s7dcl / .s7res |
Yes | Yes |
| FBD | .s7dcl / .s7res |
Yes | Yes |
| LAD | .s7dcl / .s7res |
Yes | Yes |
Global DB (DATA_BLOCK) |
.s7dcl / .s7res |
Yes | Yes |
| GRAPH (S7-GRAPH/SFC) | .graph.il |
Yes | Partial |
| Instance-DB | .s7dcl + read-only .interface.txt (resolved member list) |
Yes | Create-only |
| STL (whole-block) | .awl |
Yes | Yes |
| STL (embedded in mixed FBD/LAD/SCL block) | .stl-networks.awl (or .stl-networks.xml fallback) + .s7dcl/.s7res |
Yes | Through .xml only |
| UDT (PLC data type) | .s7dcl / .s7res |
Yes | Yes |
| PLC tag table | .csv, Excel-compatible (synthesized) |
Yes | Yes |
| HMI tag table (WinCC Unified) | .csv, Excel-compatible (synthesized) |
Yes | Yes |
| HMI alarms (WinCC Unified) | .csv, Excel-compatible (synthesized) |
Yes | Yes |
| PLC alarm text list (user list) | .csv, Excel-compatible (synthesized from TIA’s Excel export) |
Yes | Yes (existing lists) |
| Classic WinCC (Comfort/Advanced/RT Advanced): screens, screen templates, pop-up screens, tag tables, text lists | .xml, native Openness XML |
Yes | Yes |
| Raw export of any block, UDT or PLC tag table, next to or instead of the formats above | .xml, SimaticML as Openness exports it |
Yes | Yes |
Each item line of list_project ends with the formats it can be read in, e.g. tag table 'Tags' [csv, xml]; pass such a line to read_source_tree to read those formats. A write uses the one format whose files were edited, and refuses an item edited in two.
All source is read and written as files in a source tree on disk, so an LLM reads only what it needs and edits with small diffs instead of passing whole blocks through its context.
Prerequisites
- TIA Portal V21 installed, with Openness access enabled for your Windows user (Openness API group membership).
- .NET Framework 4.8.
Building
dotnet build TiaMcp.sln
Produces src\TiaMcp.Host\bin\Debug\net48\TiaMcp.Host.exe, the MCP stdio server entry point. dotnet test TiaMcp.sln runs the unit tests (no TIA Portal needed).
Registering with Claude Code
Copy .mcp.json.example to .mcp.json and point command at wherever you extracted or built TiaMcp.Host.exe:
{
"mcpServers": {
"tia": {
"command": "C:\\path\\to\\TiaMcp.Host.exe",
"args": []
インストール
This server does not publish a one-line install command.
Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →設定
{
"mcpServers": {
"tia": {
"command": "C:\\path\\to\\TiaMcp.Host.exe",
"args": []
}
}
}