Skip to content
Automation
Skill

/tia-portal-mcp

Use when the TIA Portal MCP server is available for focused, guarded project reads and writes. Use TIA Openness skills for complex multi-step automation.

From plugin
totally-integrated-claude
5919 skills1 hook1 MCP
Install
$ npx -y skills add Czarnak/totally-integrated-claude --skill tia-portal-mcp --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tia-portal-mcp

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when the TIA Portal MCP server is available for focused, guarded project reads and writes. Use TIA Openness skills for complex multi-step automation.

SKILL.md

tia-portal-mcp.SKILL.md
name: tia-portal-mcp
description: >
  Use when the TIA Portal MCP server is available for focused, guarded project
  reads and writes. Use TIA Openness skills for complex multi-step automation.
license: MIT

tia-portal-mcp

Scope

Use this skill for direct TIA Portal interaction through the MCP server. The server exposes exactly ten public MCP tools: three batch tools and seven project lifecycle tools. Internal worker operations, including lifecycle probes, are not MCP-visible tools.

Use MCP for exploration, inspection, and bounded changes. For loops, bulk automation, or an operation outside this surface, use `tia-openness-roadmap`.

Public tool surface

Data operations

| Tool | Purpose | |---|---| | `execute_read_batch` | Run up to 50 independent read operations. | | `preview_write_batch` | Preview up to 50 data-write operations and obtain one batch safety token. | | `apply_write_batch` | Apply the exact previewed write batch sequentially; stop on the first failure and mark remaining items skipped. There is no transaction or rollback. |

Read-operation names include `browse_project_tree`, `get_block_content`, `list_tag_tables`, `read_hardware_config`, `read_cross_references`, `search_equipment_catalog`, `compile_check`, and `get_project_status`. Data-write operation names include block, tag-table, tag, user-constant, and network-device operations such as `update_block_logic`, `create_block`, `create_tag`, and `add_network_device`.

Project lifecycle

| Tool | Purpose | |---|---| | `get_project_status` | Inspect the currently open project. | | `open_project` | Deliberately open or switch to a project. | | `create_project` | Create a project. | | `save_project` | Save the open project. | | `save_project_as` | Copy the open project and rebind to the copy. | | `archive_project` | Create an archive of the open project. | | `close_project` | Close the open project. |

`get_project_status(projectPath)` is read-only and non-binding. It never opens or switches a project, including when `projectPath` names a different project. Use `open_project` for deliberate session switching. If a bound session names a different path in a status request, the result is `binding_conflict`; do not use status as a switching mechanism.

Safety convention

All writes use single-use, short-lived safety tokens bound to the normalized project path, exact input, target, and current project state. Never invent or reuse a token.

For data writes:

1. Send the full ordered `operations` array to `preview_write_batch`. 2. Review the preview and its `safetyToken`. 3. Send the unchanged array to `apply_write_batch` with `confirm:true` and that token.

For lifecycle writes, the tool previews itself: call the lifecycle tool without a `safetyToken` to receive a preview and token, then call the same tool with the same input, `confirm:true`, and the token to apply. Lifecycle writes remain single-tool only and cannot be placed in a data batch.

`save_project_as` requires `rebind:true`. Passing `rebind:false` is rejected as `validation_error` before preview, token issuance, Siemens `SaveAs`, or audit effects. After a successful SaveAs, continue with the worker-reported copied project path; do not assume a caller-supplied path is authoritative.

Never automatically retry a write after `worker_timeout`, `worker_crashed`, or protocol loss. The outcome may be uncertain: inspect current state before a new, separately authorized request.

Failures and warnings

Write failures return `failureCategory` with a human-readable error. Supported categories: `validation_error`, `binding_conflict`, `state_changed`, `worker_operation_failed`, `worker_timeout`, `worker_crashed`, and `postcondition_failed`.

`warnings` is a separate array of non-fatal degradation notes. A warning never turns a failure into a success, and a failure category is never hidden by warnings. Treat any warning as a signal that the returned payload can be partial.

Block write guidance

Read a block through `execute_read_batch` using `get_block_content`; use the returned SIMATIC ML documents as the source for a change. For `update_block_logic`, send a validated document bundle in a guarded data batch. The verified flow performs one import, compilation verification, and a non-empty re-export. Preserve unchanged documents exactly where possible; duplicate, malformed, or unsafe documents are rejected before any Siemens import, leaving the existing block unchanged.

For `create_block` with SCL, provide the requested block type and language in a guarded batch. The generated source has a non-empty Structured Text compile unit. After apply, resolve the requested block path and run `compile_check` to confirm it exists and compiles.

Common execution patterns

Inspect a block

1. Run `execute_read_batch` with `browse_project_tree` to find the block path. 2. Run `execute_read_batch` with `get_block_content` for that path. 3. Analyze the returned documents before deciding whether a write is needed.

Modify a block

1. Read the current documents with `execute_read_batch`. 2. Make one focused, validated document change. 3. Preview `update_block_logic` with `preview_write_batch`. 4. Confirm intent, then apply the unchanged batch with `apply_write_batch`, `confirm:true`, and the returned token. 5. Review compilation and re-export verification. On an uncertain outcome, read current state instead of retrying automatically.

Switch projects safely

1. Inspect the open project with `get_project_status` if needed. 2. Preview `open_project` by calling it without a `safetyToken`. 3. Apply the same request with `confirm:true` and its token. 4. Verify the worker-reported path with `get_project_status`.

Add and configure a device

1. Read the hardware catalog through `execute_read_batch` and copy the exact `typeIdentifier`. 2. Preview ordered add/configure operations in one `preview_write_batch` request. 3. Confirm the identity and networ

Read more
Ships withtotally-integrated-claude

A Claude Code plugin for Siemens TIA Portal engineering automation. Provides a routed skill framework for TIA Portal engineering automation: Siemens TIA Scripting Python V1.4.3 for its supported wrapper surface, audited C# Openness skills for advanced

Get the whole plugin
Stats
61
Stars
10
Forks
Active
Maintenance
PowerShell
Language
MIT
License
1mo ago
Last commit
5mo ago
Created

Repo: Czarnak/totally-integrated-claude

Other skills on totally-integrated-claude.