Genius Automation MCP Server

Genius Automation MCP Server

An MCP server for controlling Siemens TIA Portal, enabling AI agents to connect, read PLC tags, list blocks, inspect project structure, and compile projects. This community edition provides 5 read-only tools under the MIT license.

Category
Visit Server

README

Genius Automation β€” Community Edition

MCP server for Siemens TIA Portal β€” open-core, MIT-licensed Community Edition.

License: MIT Python 3.11+ MCP


🎯 What is Genius Automation?

Genius Automation is a Model Context Protocol (MCP) server that lets AI agents (Claude Code, OpenClaw, Cursor, etc.) control Siemens TIA Portal V17+ β€” the leading industrial automation software used in factories worldwide.

This Community Edition ships with 5 essential read-only tools under the MIT License β€” free to use in commercial and non-commercial projects.

For the full Pro / Enterprise Edition (39 tools including write operations, multi-vendor, SLA), see: genius-automation-pro (private).


✨ Available Tools (Community Edition)

This Community Edition exposes 5 tools, all read-only and safe for production use:

Tool Description
connect Establish a session with TIA Portal. Required first call in any session.
read_tags Read current values of one or more tags from a PLC.
list_blocks List all blocks (OB/FB/FC/DB) in a given PLC.
get_project_tree Get the hierarchical project tree: devices, block groups, tag tables.
compile Compile the project (or a specific PLC) and return errors/warnings. Does NOT modify the PLC runtime β€” only validates the offline project.

For write operations (create/edit blocks, write tags, HMI screens, library management, advanced diagnostics, batch operations), upgrade to Pro (below).


πŸš€ Quick Start (3 steps)

Step 1 β€” Install

# Windows (with TIA Portal installed)
git clone https://github.com/your-org/genius-automation-community.git
cd genius-automation-community
python -m venv .venv
.venv\Scripts\activate
pip install -e .
# Linux/macOS (mock server only, no TIA Portal)
git clone https://github.com/your-org/genius-automation-community.git
cd genius-automation-community
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e .

Step 2 β€” Run the Mock Server (Linux/macOS)

For testing without TIA Portal:

python -m mock.server --port 8001

Output:

╔══════════════════════════════════════════════════╗
β•‘  Genius Automation Mock Server                   β•‘
β•‘  Listening: http://0.0.0.0:8001                  β•‘
β•‘  Mode: MOCK (no TIA Portal connection)            β•‘
β•‘  Tools: 5/5 fixtures loaded                       β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Step 3 β€” Connect from Your AI Agent

Configure your MCP-compatible agent (Claude Code, OpenClaw, Cursor) to point at the server:

{
  "mcpServers": {
    "genius-automation": {
      "command": "python",
      "args": ["-m", "mock.server"],
      "env": {"PORT": "8001"}
    }
  }
}

Then in the agent:

"List all blocks in PLC_1" β†’ calls list_blocks "Read the motor speed tag" β†’ calls read_tags "Compile the project and show errors" β†’ calls compile


πŸ— Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AI Agent       β”‚  (Claude Code, OpenClaw, Cursor, …)
β”‚  (Linux/Mac)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP protocol (HTTP/SSE)
         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  W11 VM         β”‚
β”‚  (Windows)      β”‚
β”‚                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ MCP Serverβ”‚  β”‚  ← this repo
β”‚  β”‚ (Python)  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β”‚
β”‚        β”‚        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ pythonnet β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β”‚
β”‚        β”‚        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ TIA Portalβ”‚  β”‚  (Siemens software, V17+)
β”‚  β”‚  V17+     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The MCP server runs on the same Windows machine as TIA Portal (because TIA Portal Openness requires Windows + .NET Framework 4.8). AI agents on Linux/macOS connect over the network via MCP.


πŸ›  Tools (Community Edition)

1. connect

Establish a session with a running TIA Portal instance. Required as the first call in any session.

Input:

{"mode": "without_user_interface"}

Output:

{
  "status": "connected",
  "tia_version": "V21",
  "mode": "without_user_interface",
  "openness_version": "V21.0.2",
  "session_id": "mock-session-12345"
}

2. read_tags

Read the current value of one or more tags from a PLC. Read-only.

Input:

{
  "plc": "PLC_1",
  "tag_names": ["Motor_Start", "Motor_Speed"]
}

Output:

{
  "plc": "PLC_1",
  "tags": [
    {"name": "Motor_Start", "address": "%I0.0", "data_type": "Bool", "value": false},
    {"name": "Motor_Speed", "address": "%MW10", "data_type": "Int", "value": 1450}
  ],
  "count": 2
}

3. list_blocks

List all blocks in a given PLC inside the project. Returns block names, types, languages, and metadata. Read-only.

Input:

{"plc": "PLC_1"}

Output:

{
  "plc": "PLC_1",
  "blocks": [
    {"name": "OB1", "type": "OB", "number": 1, "language": "FBD"},
    {"name": "FB10_Steckel_Control", "type": "FB", "number": 10, "language": "SCL"},
    ...
  ],
  "count": 8
}

4. get_project_tree

Get the hierarchical project tree: devices, software containers, block groups, tag tables. Read-only.

Input:

{"max_depth": 5}

Output: hierarchical JSON tree of the project structure.

5. compile

Compile the current project (or a specific PLC) and return errors/warnings. Does NOT modify the PLC runtime β€” only validates the offline project.

Input:

{"plc": "PLC_1"}  // optional

Output:

{
  "overall_state": "success",
  "devices": [
    {"plc_name": "PLC_1", "state": "success", "errors": 0, "warnings": 2}
  ],
  "errors": [],
  "warnings": [
    {"plc_name": "PLC_1", "block": "FB20", "code": "W001", "message": "Unused variable"}
  ]
}

πŸ’Ž Upgrade to Pro / Enterprise

For write operations, HMI, library management, advanced diagnostics, and multi-vendor support, upgrade to the Pro Edition.

Tier Tools License Price Use case
Community 5 (read-only) MIT Free Hobby, evaluation, read-only workflows
Pro 39 (read + write) Proprietary $29/mo (R$ 149) Professional work, freelancers
Enterprise 39 + multi-vendor Proprietary $199/mo (R$ 999) Companies, Rockwell/CODESYS, SLA

Pro tools include everything in Community, plus:

  • Block CRUD: create_plc, import_blocks, export_blocks
  • Tag write: write_tags
  • Hardware: add_module, remove_module, configure_plc, configure_profinet, set_ip_address, list_devices, get_hardware_info
  • Diagnostics: get_compile_errors, get_online_status, read_diagnostic_buffer, compare_online_offline, upload_from_device, get_plc_info, read_force_table, get_module_diagnostics, get_profinet_topology, get_security_info
  • Library: list_libraries, create_library, get_library_info, add_to_library, publish_library_version
  • HMI / SCADA: create_hmi_screen, add_screen_element, link_tag_to_screen, configure_alarm, export_hmi_xml
  • Capture: capture_project_tree, capture_tag_table, capture_hardware_config, capture_watch_table, capture_screen
  • Batch: batch_capture_all_blocks, batch_import_from_excel, generate_project_summary, project_audit_report, batch_export_format
  • Multi-vendor (Enterprise): Rockwell Studio 5000, CODESYS, Beckhoff TwinCAT

πŸ‘‰ See genius-automation-pro (private, $29/mo).


🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • How to file bug reports
  • How to suggest features
  • How to submit pull requests
  • Code style and testing requirements
  • Translation guidelines

Quick links:


πŸ“œ License

This project is licensed under the MIT License β€” see LICENSE.

The Community Edition is open-core: the 5 basic tools are MIT-licensed, while advanced functionality (39 tools) lives in the proprietary Pro / Enterprise Editions.


🌟 Acknowledgments

  • Siemens AG β€” For TIA Portal and the Openness API
  • Repsay β€” tia-openness-api-client (MIT, the basis for the Openness wrapper)
  • Anthropic β€” For MCP (Model Context Protocol) and the Python MCP SDK
  • OpenClaw Team β€” For the AI agent framework

πŸ“ž Contact

  • Website: https://plccursos.com.br/genius-automation (PT-BR)
  • Email: contato@plccursos.com.br
  • Issues: https://github.com/your-org/genius-automation-community/issues
  • Pro Edition: https://plccursos.com.br/genius-automation/pricing ($29/mo)

<p align="center"> Made with ❀️ by <a href="https://plccursos.com.br">PLCCursos</a> & <a href="https://github.com/openclaw">OpenClaw</a> Team<br> <em>"Automação sem fronteiras"</em> </p>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured