Repository navigation
Getting Started
There are two ways to run TIA MCP. Pick the one that matches your machine.
Inspects supplied documents and saved project reviews; it cannot open TIA projects or start simulations.
Requirements: Windows, .NET 10 SDK (or the .NET 10 ASP.NET Core runtime for the packaged build). Git is optional.
dotnet build src/TiaMcp.Host/TiaMcp.Host.csproj -c Release --artifacts-path artifacts/host-onlyPoint a stdio MCP client at artifacts/host-only/bin/TiaMcp.Host/release/TiaMcp.Host.exe with an absolute path. Add --artifacts <dir> for retained uploads and reports, and --no-native-workers to refuse Siemens calls.
For OPC UA trust that survives Host restarts, explicitly create a protected client identity and add --ua-client-identity <name> to the Host arguments. Setup, public certificate export and rotation are described in the OPC UA identity workflow. The option needs a Windows user profile; it does not configure server trust or resume sessions.
For a relocatable ZIP, run ./scripts/Package.ps1 -Offline. It writes the bundle, hashes, notices and an MCP configuration; the bundle name and its manifest carry the product version. See portable deployment. Version tags attach the same verified ZIP to a draft GitHub release that the maintainer publishes (releasing).
An installed optional API does not establish product/license or native workflow support. The 3 November workstation inventory finds CFC/DCC and V19 prerequisites, while their adapters and qualification remain open. The qualification-only TS-Q03 runner needs an operator-configured isolated OPC UA fixture and does not enable production system tests.
Requirements:
- Windows with TIA Portal V21 and Openness, configured for your user (Openness registration)
-
PLCSIM Advanced V8 with a usable license and a supported CPU/firmware, for simulation.
The default Softbus mode needs no network setup and covers simulation, download, online compare and upload.
- Only the runtime OPC UA and web tools against PLCSIM (including OPC UA method calls and alarm snapshots) need
TCP/IP: set PLCSIM Online Access to the PLCSIM Virtual Ethernet Adapter with a static address, and create the
instance with
communicationInterface: "TCPIP"atsim_create(simulation). Runtime writes and RUN/STOP also need Windows to route the instance's address through that adapter, so give it an address in the instance's subnet and no default gateway (owned PLCSIM writes). An adapter that took a DHCP lease from your network reaches that network; set the static address first. Never bridge the PLCSIM virtual switch or adapter to a plant network adapter: the route check cannot detect a physical PLC behind such a bridge - The mode is machine-wide: while PLCSIM is in TCP/IP mode, Softbus instances refuse power-on, RUN and writes
(
SoftbusRequired), and the discovery beforesim_createneeds Softbus, so switch Online Access back to Softbus for the other simulation work
- Only the runtime OPC UA and web tools against PLCSIM (including OPC UA method calls and alarm snapshots) need
TCP/IP: set PLCSIM Online Access to the PLCSIM Virtual Ethernet Adapter with a static address, and create the
instance with
- .NET 10 SDK and .NET Framework 4.8 reference assemblies
- PowerShell 7, Python 3.13 and Node.js 24 for the development checks
From the repository root:
.\scripts\Probe-Environment.ps1
.\scripts\Build.ps1
.\scripts\Test.ps1 -SkipBuildIf the probe reports missing prerequisites, follow environment diagnostics.
For an engineering release, extract it to its final location and run scripts/Setup-TiaMcp.ps1 once with administrator rights, the approved worker hash and fresh external configuration/report paths. Repeat that explicit step after approved updates or relocation. Normal startup only checks registration; Start-TiaMcp.ps1 -CheckOpennessRegistration prints the result without starting TIA or a worker. Exact commands and limits are in Openness setup and registration.
Combined library install: on every Host, change_apply installs a prepared PLC library_integrate plan in one step for the natively qualified shapes only and refuses OB insertion and every other shape. The former opt-in flag --enable-library-integrate-apply is still accepted and changes nothing; --disable-library-integrate-apply turns combined apply off. See combined apply.
Optional TIA Add-In: ./scripts/Publish-AddIn.ps1 builds the companion with the installed Siemens Publisher and writes an enrollment file. Install the package in TIA yourself, then start the Host with --addin-handoff --addin-enrollment <file>. Steps and limits are in Add-In companion; one native selection handoff is verified (local.addin.companion.20261029).
External Git delivery (vci_push, vci_fetch) needs --git-executable and one --git-remote <bare repository>, a local path or file:/// URL; --git-allow-network-remote also admits a credential-free https:// remote. See remote delivery.
The launcher scripts do not pass --addin-handoff, --addin-enrollment, --enable-library-integrate-apply, --disable-library-integrate-apply, --library-limits-file, --git-remote or --git-allow-network-remote; start the Host directly for those. Start-TiaMcp.ps1 adds --no-native-workers itself, but only for offline bundles. Every option, its default and its range is listed under Host options. Qualification-only options such as --hmi-change-qualification, --hmi-text-list-qualification and --safety-fparameter-discovery exist for the native qualification runners, not for normal use.
Vendor libraries can have additional CPU, tag-table and product requirements. Check the PAL/DMC intake and prerequisite review before using the retained packages; receipt verification does not qualify native compatibility.
Configure a stdio server with your actual checkout path:
{
"mcpServers": {
"tia-v21": {
"command": "C:\\path\\to\\TIA_MCP\\src\\TiaMcp.Host\\bin\\Debug\\net10.0-windows\\TiaMcp.Host.exe",
"args": ["--timeout-seconds", "300"]
}
}
}Then ask the client: Use tia_discover to list the available TIA Portal sessions. For a command-line check, run python .\scripts\smoke_mcp.py.
Large HMI screen imports can need more than five minutes. Use a longer Host and client timeout for that workflow; the HMI guide gives the settings and explains recovery without repeatedly reopening TIA.
Native HMI qualification uses independently seeded owned fixtures. Classic Comfort and RT Advanced preparation sets an existing start screen; Unified preparation has separate transfer-security prerequisites. The fixture preparation guide describes the operator handoff, saved-state checks and owned-editor cleanup.
The Host advertises about 300 tools. If your client limits tools per server, add "--toolsets", "core,simulation" (or other groups) to args. The server also offers workflow prompts such as safe_change and block_test. Groups, prompts, resources, completions, logging and progress notifications are described in MCP surface.
- Make your first change with the engineering workflow.
- Browse a project in the Project Explorer.
- Run PLCSIM tests with simulation and block testing.
- Ask the server what is supported:
feature_catalogandtarget_capabilities.
The qualified HMI change kinds admit their documented profiles without a qualification flag: Classic screen/tag-table import and BackColor on Comfort, RT Advanced and Basic, and Unified external tags, screens/items, tag dynamizations and script event handlers on Comfort and PC. Exact limits and retained evidence are in HMI engineering; runtime and visual acceptance remain separate.
Generated from docs/wiki whenever a push to main changes it; edits made here are overwritten. Propose changes with a pull request.
TIA MCP
Repository