TiaLink
by tia-forge
README.md
# TiaLink β TIA Portal MCP Gateway
**TiaLink** is a **TIA Portal MCP gateway** by [ζ±ζΊη½ (hubwiz.com)](https://www.hubwiz.com/).
It lets any [MCP](https://modelcontextprotocol.io)-capable AI agent operate **Siemens TIA Portal** projects directly.
> π Product page: **https://tia.hubwiz.com/tia-link**
---
## What it does
TiaLink exposes Siemens TIA Portal capabilities as MCP tools, so an AI agent can:
- **Configure hardware & networks** β add devices and modules, assign IP addresses, create subnets and IO systems
- **Work with programs & data** β create FB / FC / DB / UDT blocks, write SCL, import SimaticML (including LAD) blocks
- **Build** β compile, save, export, and archive projects
- **Simulate & verify** β download to S7-PLCSIM Advanced, read/write variables, run test scenarios
- **Read back** β project model, block interfaces, and hardware tree for verification
In short: instead of getting a code snippet in a chat window, the agent operates a real TIA Portal project and reads the result back.
---
## How it works
```
AI agent (MCP client)
β MCP (Streamable HTTP, endpoint /mcp)
βΌ
TiaLink βββΊ Siemens TIA Portal Openness βββΊ TIA Portal project
```
- **Protocol**: MCP (Model Context Protocol), Streamable HTTP, endpoint `/mcp`
- **Underlying**: Siemens TIA Portal Openness
- **Agent-agnostic**: TiaLink does not bind to any specific model or vendor. Any MCP client that supports Streamable HTTP and can send a Bearer header can connect.
---
## Getting started
1. **Check the machine** β Windows, a licensed TIA Portal **V19, V20 or V21** (V21 requires TiaLink 1.5.0 or later, verified on real hardware), and the Windows account in the local *Siemens TIA Openness* group. Full checklist: **[install.md](./install.md)**.
2. **Buy and download** β TiaLink is paid software: **Β₯99/month** (China). Buy on the [product page](https://tia.hubwiz.com/tia-link); the download link and the setup steps appear immediately after the WeChat Pay payment. Keep the order number β the licence request needs it.
3. **Point your MCP client at the gateway** β ready-made configurations for Claude Code, Cursor, VS Code and Claude Desktop are in **[examples/](./examples/README.md)**.
4. **Verify** β list the tools, read a scratch project, then create one block and require the compile result. If step three fails, see the troubleshooting table in [install.md](./install.md#7-troubleshooting).
### If your client only speaks stdio
TiaLink serves **Streamable HTTP**. Most clients handle that directly, but some
desktop hosts and one-click bundles can only launch **stdio** servers. For those
there is a small adapter in this repository, **[`server/index.js`](./server/index.js)** β
it forwards JSON-RPC between stdio and the gateway and adds no functionality of
its own.
> β οΈ **The adapter is not the product.** It needs a licensed TiaLink gateway
> already running. Without one it fails on the first request β by design.
```bash
# Run the adapter against a local gateway
TIALINK_URL=http://127.0.0.1:8080/mcp npx tialink-mcp
# Pre-flight: is the gateway reachable, is the token right, which tools exist?
TIALINK_URL=http://192.168.1.78:8080/mcp TIALINK_TOKEN=... npx tialink-mcp --check
```
| Path | What you get |
|---|---|
| `npx tialink-mcp` | stdio β HTTP adapter (npm, no dependencies, Node β₯ 18) |
| [`manifest.json`](./manifest.json) + `.mcpb` | one-click desktop bundle β `npx @anthropic-ai/mcpb pack .` |
| [`Dockerfile`](./Dockerfile) | the same adapter in a container, for Linux CI and sandboxed agents |
Configuration is by environment variable: `TIALINK_URL` (default
`http://127.0.0.1:8080/mcp`), `TIALINK_TOKEN`, `TIALINK_TIMEOUT_MS` (default
600000 β compile and download calls are slow on purpose).
## Deployment
- TiaLink runs on the **same Windows machine as TIA Portal** (Openness only runs where TIA Portal is installed).
- The **MCP client can run on another machine** and connect over the LAN β for example, `http://<gateway-host>:8080/mcp`.
- **Project data never leaves the local network.** Suitable for offline and on-premises environments.
- Recommended: configure an API token; the MCP client sends it as a `Bearer` header.
---
## Supported clients
Any MCP client that supports **Streamable HTTP** and can send a **Bearer** header, for example:
- Claude Code
- Cursor
- VS Code
TiaLink is **not tied to a specific vendor** β the same gateway works with different agents (including Tencent WorkBuddy and other MCP clients).
---
## Example MCP configuration
```json
{
"mcpServers": {
"tialink": {
"type": "http",
"url": "http://192.168.1.78:8080/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_TOKEN>"
}
}
}
}
```
Replace `192.168.1.78` with the IP or hostname of the machine running TiaLink, and `<YOUR_API_TOKEN>` with your configured token. Configurations for specific clients β including one that reads the token from an environment variable instead of the file β are in [examples/](./examples/README.md).
---
## Related tools in the TIA Forge suite
TiaLink is part of **TIA Forge**, a TIA Portal engineering agent suite by ζ±ζΊη½:
- **reverse-docs** β reverse engineering documentation for existing PLC projects
- **lad2scl / txt2scl / txt2lad** β LAD / SCL / text conversion
- **block-sim** β block-level simulation
## Where else to find us
- **[Awesome PLC AI](https://github.com/tia-forge/awesome-plc-ai#readme)** β a curated list of AI tools, agents and MCP bridges for PLC engineering (Siemens TIA Portal, CODESYS, TwinCAT, Studio 5000, GX Works), maintained by ζ±ζΊη½. TiaLink is listed there alongside the alternatives, with a disclosure.
- **[SkillHub](https://www.skillhub.cn/skills/indiv-tiaforge/tialink-tia-portal?utm_source=github&utm_medium=readme)** β the gateway packaged as an Agent Skill (`skillhub install tialink-tia-portal`): prerequisites, connection snippet, first-session verification and safety rules, written for the agent that reads it rather than for a human skimming a README. The same publisher also ships three companion skills: [LadDoc β SimaticML](https://www.skillhub.cn/skills/indiv-tiaforge/laddoc-cloud?utm_source=github&utm_medium=readme), [cloud simulation](https://www.skillhub.cn/skills/indiv-tiaforge/plc-cloud-sim?utm_source=github&utm_medium=readme) and [TIA Portal docs search](https://www.skillhub.cn/skills/indiv-tiaforge/tia-portal-docs?utm_source=github&utm_medium=readme).
---
## FAQ
**What is TiaLink?**
TiaLink is a TIA Portal MCP gateway by ζ±ζΊη½ (hubwiz.com). It lets any AI agent operate Siemens TIA Portal projects through the MCP protocol.
**Does TiaLink require internet access?**
No. TiaLink runs on the same machine as TIA Portal, all operations happen locally, and project data stays on-prem.
**Does the MCP gateway have to be on the same computer as TIA Portal?**
The gateway itself must run on the same machine as TIA Portal (Openness requires it). The MCP client, however, can run on a different machine and connect over the LAN.
**Is TiaLink tied to one AI vendor?**
No. TiaLink is agent-agnostic β any MCP client that supports Streamable HTTP with a Bearer header can use it.
**Can AI-generated PLC code be used directly?**
AI handles the verifiable software part, but safety functions must be implemented in hardware (safety relay / safety PLC), hard interlocks must be pneumatic or electrical, and time/sensor tuning must be done on the real machine. TiaLink does not replace safety responsibility.
**What does it cost?**
**Β₯99/month** (China). Multi-seat, floating and air-gapped enterprise deployments are quoted on request β write to **support@hubwiz.com**.
**Is TiaLink open source?**
No. TiaLink is **commercial, closed-source software** β the gateway and its engine are not open source. What *is* MIT-licensed is the stdioβHTTP transport bridge in [`server/`](./server/index.js), a thin adapter that does nothing without a licensed, running gateway. Documentation in this repository is CC BY 4.0.
**How do I buy it and get a licence?**
Buy on the product page: after the WeChat Pay payment, the page immediately shows the download link and the setup steps β no account or form required. Install TiaLink as a normal user, open `http://localhost:8080/`, and send the machine code plus the generated `.tlreq` request file to **support@hubwiz.com**. The machine-bound `.lic` is issued for that machine and works fully offline.
---
## Links
- **Product page / buy**: https://tia.hubwiz.com/tia-link (WeChat Pay; the download link appears after payment)
- **Publisher**: ζ±ζΊη½ β https://www.hubwiz.com/
---
## License
**TiaLink is commercial, closed-source software.** The gateway and its engine are not open source, and no part of them is distributed in this repository. All rights reserved.
- **This repository** (documentation, examples) is licensed under **CC BY 4.0** β see [LICENSE](./LICENSE).
- The **stdio bridge** in [`server/`](./server/index.js) β plus its `package.json`, `manifest.json` and `Dockerfile` β is **MIT licensed** β see [LICENSE-BRIDGE](./LICENSE-BRIDGE). It is a thin transport adapter with no gateway logic: fork it, vendor it, ship it in your own agent tooling. A licensed TiaLink gateway is still required at runtime.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo recent community issues