WinCC Unified MCP XT

Un servidor MCP para interactuar con sistemas SCADA SIEMENS WinCC Unified a través de su API GraphQL.

Documentación

WinCC Unified MCP XT

Un servidor de Model Context Protocol (MCP) diseñado para interactuar con sistemas SCADA SIEMENS WinCC Unified a través de su API GraphQL. Este servidor expone diversas funcionalidades de WinCC Unified como herramientas MCP, permitiendo que asistentes de IA y otros clientes compatibles con MCP interactúen programáticamente con el sistema SCADA.

Este proyecto está basado en el repositorio de Andreas Vogler


🔧 Características

  • Se conecta a un endpoint GraphQL de WinCC Unified.
  • Proporciona herramientas MCP para:
    • ✅ Autenticación de usuarios (login-user)
    • 📂 Exploración de objetos SCADA (browse-objects)
    • 📊 Lectura de valores actuales de etiquetas (get-tag-values)
    • 🕒 Consulta de datos históricos/registrados de etiquetas (get-logged-tag-values)
    • 🚨 Obtención de alarmas activas (get-active-alarms)
    • 📁 Obtención de alarmas registradas (get-logged-alarms)
    • ✍️ Escritura de valores en etiquetas (write-tag-values)
    • 🟢 Confirmación de alarmas (acknowledge-alarms)
    • 🔄 Restablecimiento de alarmas (reset-alarms)
  • Inicio de sesión automático opcional con cuenta de servicio y mecanismo de renovación de token.

⚙️ Requisitos previos

  • Node.js (se recomienda v18.x o superior)
  • npm (incluido con Node.js)
  • Acceso a un endpoint de servidor WinCC Unified GraphQL en funcionamiento

⚙️ Configuración

Este servidor utiliza un archivo config.js escrito en sintaxis de módulos ES.

Ejemplo 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
};

🚀 Cómo iniciar

  1. Navegue a la carpeta del proyecto:
cd your-project-directory
  1. Instale las dependencias:
npm install
  1. Edite config.js como se muestra arriba.

  2. Inicie el servidor

node start

🖥️ Conexión con Claude Desktop

Para usar este servidor MCP con Claude AI (versión de escritorio):

  1. Busque o cree el archivo claude_desktop_config.json (normalmente en la carpeta de configuración de la aplicación Claude).

  2. Agregue o actualice lo siguiente:

{
  "mcpServers": {
    "WinCC Unified": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}
  1. Asegúrese de que @modelcontextprotocol/tools esté instalado:
npm install -g @modelcontextprotocol/tools

🧰 Herramientas MCP disponibles

HerramientaDescripción
login-userInicia sesión con nombre de usuario/contraseña.
browse-objectsExplora los elementos SCADA configurados.
get-tag-valuesRecupera valores de etiquetas en vivo.
get-logged-tag-valuesObtiene datos históricos de etiquetas.
get-active-alarmsLista las alarmas actualmente activas.
get-logged-alarmsMuestra alarmas previamente activadas.
write-tag-valuesActualiza una o más etiquetas.
acknowledge-alarmsConfirma alarmas.
reset-alarmsRestablece alarmas.

📝 Notas

  • Si está configurado, una cuenta de servicio inicia sesión automáticamente y el token se renueva cada minuto.

  • El inicio de sesión manual de un usuario anula temporalmente la sesión de servicio.