tia-portal-openness-mcpserver
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- rimraf — Recursive directory removal in cli/package-lock.json
- rimraf — Recursive directory removal in cli/package.json
- process.env — Environment variable access in cli/src/commands/install.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is a Model Context Protocol (MCP) server that exposes Siemens TIA Portal engineering operations as accessible tools. It allows LLMs and AI assistants to automate industrial control programming, hardware configuration, and project management tasks via a companion CLI.
Security Assessment
Overall Risk: Medium. The tool operates in a sensitive industrial environment and accesses environment variables, though it does not request explicitly dangerous permissions. A code scan failed due to the use of recursive directory removal (`rimraf`) within the CLI's Node.js package files, which poses a slight risk of unintended local file deletion if misused or improperly configured. No hardcoded secrets were identified, but users should be cautious as the server connects to core industrial control systems (PLCs, HMIs) that require strict access controls.
Quality Assessment
The project is actively maintained, with its last push occurring very recently. However, it suffers from low community visibility (only 5 GitHub stars), indicating it has not been broadly vetted by a large user base. A major concern for enterprise adoption is the complete absence of a defined software license in the repository, which creates legal ambiguity regarding usage, modification, and distribution rights.
Verdict
Use with caution due to low community trust, missing licensing, and the inherent risks of granting automated systems deep control over industrial automation environments.
TIA Portal Openness MCP Server
TIA Portal Openness MCP Server
MCP (Model Context Protocol) server for Siemens TIA Portal Openness, plus a companion CLI for release installation and updates.
What this repository contains
TiaPortalMcpServer/: C# MCP server (target framework:net48) exposing TIA Portal engineering operations as MCP tools.TiaPortalMcpServer.Tests/: unit and integration tests for tool contracts and server behavior.cli/: TypeScript CLI for installing server releases and managing companion skills.
Key capabilities
The server provides tool groups for:
- project lifecycle (
projects_create,projects_open,projects_open_with_upgrade,projects_save,projects_close,projects_get_session_info) - hardware and device management (
devices_list,devices_create,devices_delete,devices_get_attributes,devices_set_attribute,devices_get_app_id,devices_set_app_id,devices_search_catalog) - device item management (
deviceitems_list,deviceitems_get_attributes,deviceitems_plug_move,deviceitems_copy,deviceitems_delete,catalog_search_device_items) - PLC software and block operations (
software_add_block,blocks_list,software_get_block_hierarchy) - tag and tag-table management (
tags_create,tags_list,tags_tagtable_create,tags_tagtable_list,tags_tagtable_get,tags_tagtable_delete,tags_tagtable_export,tags_tagtable_open_editor,tags_group_create,tags_group_list,tags_group_find,tags_group_delete,tags_group_system_get,tags_constants_user_list,tags_constants_system_list) - advanced block operations (external sources, ProDiag, UDTs, types, editor helpers — 19 tools in
BlocksTools) - compilation (
compilation_project,compilation_software) - file import and validation (
files_read_csv,files_read_excel,files_list_sheets,files_validate_format,files_get_info) - HMI targets (
hmi_targets_list,hmi_targets_get,hmi_targets_validate) - sampling/LLM-assisted operations (
sampling_generate_code,sampling_summarize_project,sampling_get_suggestions) - elicitation and utility helpers (
utilities_elicit_user_input,utilities_get_project_info,utilities_list_libraries)
All active tools are declared in TiaPortalMcpServer/Tools/.
Runtime model
- Transport: MCP over
stdio. - Host process: .NET console app using
Microsoft.Extensions.Hosting. - Tool discovery: attribute-based (
[McpServerToolType],[McpServerTool]). - Logging: Serilog to stderr and rolling file logs (
TiaPortalMcpServer/logs/).
Requirements
- Windows machine.
- Siemens TIA Portal V20 installed and licensed.
- User account in the
TIA Portal Openness Usersgroup. - .NET Framework 4.8 runtime/developer pack (for building/running
net48project).
Build and run
From repository root:
dotnet build tia-portal-openness-mcpserver.sln
dotnet run --project TiaPortalMcpServer/TiaPortalMcpServer.csproj
Test
dotnet test TiaPortalMcpServer.Tests/TiaPortalMcpServer.Tests.csproj
Unit tests only:
dotnet test TiaPortalMcpServer.Tests/TiaPortalMcpServer.Tests.csproj --filter "Category!=Integration"
Integration tests only:
dotnet test TiaPortalMcpServer.Tests/TiaPortalMcpServer.Tests.csproj --filter "Category=Integration"
MCP Inspector
npx @modelcontextprotocol/inspector dotnet run --project TiaPortalMcpServer/TiaPortalMcpServer.csproj
CLI quick start
The companion CLI is in cli/ and is intended for npm/npx workflows.
npx @bizarreaster/tia-portal-openness-mcpserver install --server-version v1.0.0
npx @bizarreaster/tia-portal-openness-mcpserver skills install --skills siemens-awl-stl-programmer --agent-type opencode
Environment variables used by the CLI:
GITHUB_TOKEN(optional): token for authenticated GitHub API access.TIA_MCP_INSTALL_DIR(optional): override default install directory.TIA_MCP_AGENT_TYPE(optional): override agent type detection.TIA_MCP_SKILLS_PATH(optional): override skills installation path.
The CLI auto-detects the agent type from OPENCODE_SESSION_ID, OPENCODE_ROOT, CLAUDE_AGENT_METADATA_FILE, or CURSOR_SESSION_ID.
See cli/README.md for full CLI contract and options.
Configuration
Server configuration lives in TiaPortalMcpServer/appsettings.json.
Current keys include:
MCP:Host,MCP:Port(general MCP endpoint settings)FileHandling:MaxFileSizeMB,FileHandling:AllowedRootPathsSeriloglogging levels and sinks
CI/build constraint
This project depends on Siemens Openness assemblies and cannot be built from public NuGet packages alone on generic hosted runners.
Siemens.Engineering.dllmust be resolvable via installed TIA Portal V20 orTiaPortalLocation.- For CI, use a self-hosted Windows runner with TIA Portal V20 installed (or provide the required private assembly bundle).
Repository layout
.
|- TiaPortalMcpServer/ # MCP server
|- TiaPortalMcpServer.Tests/ # tests
|- cli/ # release/install CLI
|- Taskfile.yml # convenience tasks (inspector/tests)
`- tia-portal-openness-mcpserver.sln
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found