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.
README
Genius Automation β Community Edition
MCP server for Siemens TIA Portal β open-core, MIT-licensed Community Edition.
π― 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" β callsread_tags"Compile the project and show errors" β callscompile
π 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:
- π Issues
- π¬ Discussions
- π§ contato@plccursos.com.br
π 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.