Conectar um assistente de IA ao TIA Portal por MCP (Claude Desktop, Claude Code e outros clientes)
Tradução em português. Original em inglês: connect-ai-assistant-mcp.md.
Um assistente de IA pode ler e editar um projeto do TIA Portal V21 por MCP. O servidor MCP tia é um pequeno pacote npm
que conversa com o app serve do PLCWare, o programa Windows que faz o trabalho com o Openness. O assistente prepara o
trabalho; uma pessoa aprova tudo o que chega a um CLP real. Este guia conecta os dois. Vale para o TIA Portal V21.
[ seu cliente de IA ] --(MCP/stdio)--> [ MCP tia (npx) ] --(HTTP)--> [ serve (Windows + TIA Portal V21) ]O que você precisa
- Uma máquina Windows com o TIA Portal V21 e o app PLCWare (
serve) rodando com uma licença ativada. No app de bandeja, aba License: cole a sua chave e salve; aba API: Start API (porta padrão 5000). Pela linha de comando:TIAOpenness.exe serve 5000. - Node.js (versão 20 ou posterior) na máquina que roda o seu cliente de IA. O MCP roda por
npx, então não há mais nada para instalar. - Uma configuração,
TIA_API_BASE, o endereço doserve. O MCP não envia chave: o que ativa o app é a licença do host.
Claude Code
Um comando, no escopo de usuário (vale para todos os seus projetos):
claude mcp add tia --scope user -e TIA_API_BASE=http://localhost:5000 -- npx -y @renanlido/tia-openness-mcpColoque o nome do servidor (tia) primeiro. O -e aceita vários valores, e o Claude Code 2.1.238 recusou
--env KEY=VALUE escrito antes do nome. Confira com claude mcp list, que deve mostrar o tia como conectado, e com
/mcp dentro de uma sessão.
Claude Desktop
Edite o claude_desktop_config.json. No Claude Desktop, Settings > Developer > Edit Config abre o arquivo:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tia": {
"command": "npx",
"args": ["-y", "@renanlido/tia-openness-mcp"],
"env": { "TIA_API_BASE": "http://localhost:5000" }
}
}
}Reinicie o app. No Windows, comece com o npx simples, como acima. Se o cliente avisar que o servidor falhou ao
iniciar, use a forma com cmd /c, que só existe no Windows:
"command": "cmd", "args": ["/c", "npx", "-y", "@renanlido/tia-openness-mcp"]Mantenha uma única entrada tia: dois servidores falariam com o mesmo serve, que executa uma operação por vez.
Outros clientes
Codex, Gemini CLI, Cursor, VS Code e Windsurf usam o mesmo comando, npx -y @renanlido/tia-openness-mcp, e a mesma
variável TIA_API_BASE; só muda o lugar onde cada cliente guarda a configuração. O formato exato de cada um está no
Manual de instalação.
Quando o seu cliente de IA está em outra máquina
Um arranjo comum é um editor num Mac e o serve numa VM Windows. No lado do Windows, permita o acesso remoto no app de
bandeja (aba API, Allow remote access..., que reserva a URL e abre a porta no firewall), defina o host como
0.0.0.0 e inicie a API; pela linha de comando, TIAOpenness.exe serve 5000 --host 0.0.0.0. A licença precisa estar
ativada nessa máquina. No lado do cliente, coloque o endereço da VM na própria
entrada do MCP, no lugar de http://localhost:5000. O TIA_API_BASE da entrada é o que o MCP lê: uma variável exportada
no seu shell não o substitui.
No Claude Code, adicione o servidor de novo com o endereço da VM (se o tia já estiver registrado, remova-o antes com
claude mcp remove tia):
claude mcp add tia --scope user -e TIA_API_BASE=http://<ip-da-vm>:5000 -- npx -y @renanlido/tia-openness-mcpNo Claude Desktop e nos outros clientes que guardam uma configuração em JSON, troque o valor no arquivo:
"env": { "TIA_API_BASE": "http://<ip-da-vm>:5000" }Depois, abra uma nova sessão, ou reinicie o app, para que o MCP inicie com o novo endereço.
A licença ativa o servidor; ela não identifica quem o chama. Controle o acesso com um firewall ou uma VPN.
Confira a conexão
Peça ao assistente para chamar tia_ping. Ele responde { base, reachable, activated, latencyMs, hint }:
reachable: false: o endereço, a porta ou o firewall estão errados, ou oservenão está rodando.activated: false: a licença do host está ausente ou é inválida.- Os dois
true: oserveestá acessível e ativado. Isso não é o mesmo que pronto: chametia_readinesspara conferir o grupo do Windows, o x64 e a instalação do TIA Portal (Configurar o TIA Portal Openness no Windows).
Depois, tia_status e tia_connect abrem ou anexam um projeto. A primeira conexão de um processo serve pode levantar
um aviso de segurança no TIA Portal da máquina Windows, e só uma pessoa pode respondê-lo.
O que pedir
- "Liste os blocos do PLC_1 e diga quais não estão consistentes." (
tia_plc_blocks) - "Exporte o FB_Motor e confira se ele bate com o arquivo no git." (
tia_export_block,tia_block_compare) - "Escreva um bloco de função SCL que faça X, coloque-o no projeto e compile." (
tia_source_put,tia_compile) - "Compile o PLC_1 e resuma os erros." (
tia_compile)
As ferramentas se agrupam pelo que podem alterar: leituras (classe R) não alteram nada; alterações offline (classe M-off) editam o projeto mas nunca tocam num CLP; algumas ferramentas com trava alcançam o mundo físico.
O que o assistente não faz sozinho
- Baixar num CLP.
tia_downloadprimeiro devolve um plano e umplanHashde uso único para uma pessoa revisar; só depois que a pessoa aprova ele roda de novo comapproved: truee o mesmoplanHash. Se o software mudou nesse intervalo, oserverecusa com409 plan_stale. O assistente nunca aprova. - Ficar online, fazer upload de uma estação, varrer a rede. Cada um é uma trava que exige uma pessoa.
- Segredos. Um segredo mestre, uma senha de know-how, uma senha de certificado ou a política de senhas sempre vêm de uma pessoa. O assistente nunca inventa uma.
- Lógica de segurança (F). Nunca é criada, alterada nem baixada de forma autônoma.
- Duas coisas ao mesmo tempo. O
servetem um único worker serial. Operações longas (conectar, compilar, baixar...) podem responderstatus: "running"com umjobId; o assistente então espera comtia_job_statusem vez de repetir a chamada.
Modo somente leitura
Para experimentar o MCP sem risco de escrita, defina TIA_MCP_MODE como read-only no env do servidor:
"env": { "TIA_API_BASE": "http://localhost:5000", "TIA_MCP_MODE": "read-only" }O MCP então registra só as ferramentas de leitura: nenhuma ferramenta que altere o projeto ou toque num controlador
chega a ser listada. Como tia_start e tia_connect não são ferramentas de leitura, o assistente não consegue abrir um
projeto nesse modo: o projeto já precisa estar aberto no serve.
Isso protege contra o assistente, não contra uma pessoa: vive no MCP, e os escopos da licença no serve continuam sendo a
autoridade. Uma versão do MCP anterior ao modo ignora a variável e registra todas as ferramentas, então confira
npx -y @renanlido/tia-openness-mcp --version (a opção existe desde a 1.9.2) e confirme no seu cliente que uma
ferramenta de escrita, como tia_compile, não aparece.
Qual plano faz o quê
O Basic lê o projeto, autora offline (blocos, tags, hardware) e compila. O Pro acrescenta baixar num CLP real e ficar online, sempre atrás das travas humanas acima. O teste de 30 dias inclui os escopos do Pro.
Para um fluxo guiado, de uma especificação até um projeto verificado, o plugin de código aberto
tia-harness para o Claude Code acrescenta skills e subagentes sobre o mesmo
MCP.
Guias relacionados
- Configurar o TIA Portal Openness no Windows
- Compilar um CLP por código e ler as mensagens
- Manual de instalação
- Todos os guias
Comece o teste grátis de 30 dias
O PLCWare executa esses passos para você, ou para o seu assistente de IA, no TIA Portal V21. O teste dura 30 dias, inclui os escopos do Pro, não pede cartão e não se renova. Você precisa do TIA Portal V21 com licença STEP 7 Professional, comprada à parte da Siemens.
Começar o teste grátis de 30 dias · Baixar o app
TIA Portal, SIMATIC e Siemens são marcas da Siemens AG. O PLCWare é um produto independente para o TIA Portal e não tem vínculo com a Siemens nem é endossado por ela.