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
访问服务器

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
  • Repsaytia-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>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选