WinCC Unified MCP XT

Um servidor MCP para interfacear com sistemas SIEMENS WinCC Unified SCADA através de sua API GraphQL.

Documentação

WinCC Unified MCP XT

Um servidor Model Context Protocol (MCP) projetado para interfacear com sistemas SCADA SIEMENS WinCC Unified por meio de sua API GraphQL. Este servidor expõe várias funcionalidades do WinCC Unified como ferramentas MCP, permitindo que assistentes de IA e outros clientes compatíveis com MCP interajam programaticamente com o sistema SCADA.

Este projeto é baseado no repositório de Andreas Vogler


🔧 Recursos

  • Conecta-se a um endpoint GraphQL do WinCC Unified.
  • Fornece ferramentas MCP para:
    • ✅ Autenticação de usuário (login-user)
    • 📂 Navegação por objetos SCADA (browse-objects)
    • 📊 Leitura de valores atuais de tags (get-tag-values)
    • 🕒 Consulta de dados históricos/registrados de tags (get-logged-tag-values)
    • 🚨 Obtenção de alarmes ativos (get-active-alarms)
    • 📁 Obtenção de alarmes registrados (get-logged-alarms)
    • ✍️ Escrita de valores em tags (write-tag-values)
    • 🟢 Reconhecimento de alarmes (acknowledge-alarms)
    • 🔄 Redefinição de alarmes (reset-alarms)
  • Login automático opcional de conta de serviço com mecanismo de renovação de token.

⚙️ Pré-requisitos

  • Node.js (v18.x ou mais recente recomendado)
  • npm (incluído com Node.js)
  • Acesso a um endpoint de servidor WinCC Unified GraphQL em execução

⚙️ Configuração

este servidor usa um arquivo config.js escrito em sintaxe de módulo ES.

Exemplo de config.js (ESM):

export const config = {
  URL: "https://your-wincc-server.example.com/graphql", // required
  userName: "service_account_username", // optional
  pwr: "service_account_password", // optional
};

🚀 Como Iniciar

  1. Navegue até a pasta do projeto:
cd your-project-directory
  1. Instale as dependências:
npm install
  1. Edite o config.js conforme mostrado acima.

  2. Inicie o servidor

node start

🖥️ Conectando com o Claude Desktop

Para usar este servidor MCP com o Claude AI (versão desktop):

  1. Encontre ou crie o arquivo claude_desktop_config.json (normalmente na pasta de configuração do aplicativo Claude).

  2. Adicione ou atualize o seguinte:

{
  "mcpServers": {
    "WinCC Unified": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}
  1. Certifique-se de que @modelcontextprotocol/tools esteja instalado:
npm install -g @modelcontextprotocol/tools

🧰 Ferramentas MCP Disponíveis

FerramentaDescrição
login-userFaz login com nome de usuário/senha.
browse-objectsNavega pelos elementos SCADA configurados.
get-tag-valuesObtém valores atuais de tags.
get-logged-tag-valuesObtém dados históricos de tags.
get-active-alarmsLista alarmes atualmente ativos.
get-logged-alarmsMostra alarmes acionados anteriormente.
write-tag-valuesAtualiza uma ou mais tags.
acknowledge-alarmsReconhece alarmes.
reset-alarmsRedefine alarmes.

📝 Observações

  • Se configurado, uma conta de serviço é conectada automaticamente e o token é renovado a cada minuto.

  • O login manual de um usuário substitui temporariamente a sessão de serviço.