Skip to main content
Glama
Nodeblue-AI

ignition-mcp-server

by Nodeblue-AI

ignition-mcp-server

La primera herramienta de desarrollo impulsada por IA para Ignition SCADA: un servidor MCP que permite a cualquier agente de IA leer, comprender e interactuar con tus proyectos y gateways de Ignition.

License: MIT Python 3.10+ MCP

[!NOTE] Este conector es una herramienta comunitaria temprana de Nodeblue. El sistema completo es Nexus, nuestra plataforma de inteligencia industrial: estos repositorios son solo sus capas de conexión.

Nexus lee y razona sobre toda tu operación: lógica PLC, sistemas SCADA, datos de controladores en vivo, documentación, historial de fallos y registros MES/ERP. Funciona con múltiples fabricantes — Rockwell, Siemens, Ignition, la familia CODESYS y más de 500 marcas adicionales a través de PLCopen. Diagnostica fallos en la línea en funcionamiento, mantiene una memoria persistente de la operación y responde en inglés sencillo, citando la fuente.

Los conectores de código abierto de Nodeblue

Conector

Qué hace

studio5000-mcp-server

Rockwell/Allen-Bradley Studio 5000 — analiza exportaciones L5X: tags, UDTs, rutinas, AOIs, referencias cruzadas

ignition-mcp-server (este repo)

Ignition SCADA — vistas, scripts, tags, UDTs, alarmas, lectura/escritura en vivo del gateway

bridge-mcp-server

Correlaciona los tags de Ignition SCADA con la lógica PLC de Studio 5000 de extremo a extremo


Qué hace esto

ignition-mcp-server conecta agentes de IA (Claude, GPT, LLMs locales) con tus proyectos de Ignition SCADA mediante el Model Context Protocol. Proporciona a la IA acceso estructurado a:

  • Tags — explora jerarquías de tags, filtra por ruta de carpeta, consulta tipos de datos y valores

  • Perspective Views — lee árboles de componentes, bindings, manejadores de eventos y estilos

  • Scripts — lee scripts de la biblioteca del proyecto y scripts de eventos del gateway con información de alcance

  • UDTs — lista e inspecciona definiciones de UDT con detalles de los miembros

  • Alarm Pipelines — lee configuraciones de notificación de alarmas con etapas, perfiles y transiciones

  • Named Queries — lee definiciones de consultas SQL con parámetros, bases de datos de destino y tipos

  • Live Tag Read/Write — lee valores de tags en un gateway de Ignition en ejecución mediante WebDev; las escrituras son opcionales (--enable-writes)

  • Script Execution — ejecuta scripts de Python en el gateway en el alcance de gateway (opcional, --enable-writes)

  • Tag History — consulta datos históricos de tags con filtrado por rango de tiempo

Funciona tanto con exportaciones de proyectos de Ignition 8.1+ (archivos .zip) como con proyectos basados en sistema de archivos 8.3+ (acceso directo al directorio).

Related MCP server: ignition-mcp

Por qué existe

Ignition tiene ~300,000+ instalaciones en todo el mundo y cero herramientas de IA — ningún copiloto de proveedor, ninguna herramienta de terceros, ninguna investigación académica. Todas las demás plataformas de automatización importantes (Siemens, Rockwell, Schneider) tienen asistentes de IA. Ignition no tiene nada.

Este servidor llena ese vacío. Es de código abierto, independiente del agente y funciona sin conexión.

Construido y mantenido por Nodeblue. Estos conectores son herramientas comunitarias tempranas de nuestro trabajo en Nexus, donde esta capacidad se entrega con calidad de producción, junto con correlación entre fabricantes, diagnóstico de fallos en vivo y una memoria persistente de la operación.

Instalación

pip install ignition-mcp-server

Requiere Python 3.10+.

Para instalar desde el código fuente en su lugar:

git clone https://github.com/nodeblue-ai/ignition-mcp-server.git
cd ignition-mcp-server
pip install .

Inicio rápido

stdio (local — kiro-cli, Claude Desktop, Claude Code)

ignition-mcp-server

SSE (remoto — servidor en una máquina, agente en otra)

ignition-mcp-server --transport sse --port 8080

Con conexión de gateway en vivo

ignition-mcp-server --gateway-url https://my-gateway:8088 --gateway-username admin --gateway-password changeme

Esto habilita las herramientas en vivo de solo lectura: read_tag y get_history. Requiere el módulo WebDev en el gateway con los endpoints de API configurados (consulta Configuración del gateway a continuación).

[!WARNING] Las escrituras en vivo están deshabilitadas por defecto. write_tag y execute_script pueden cambiar valores en un sistema SCADA en ejecución y accionar equipos reales. Para habilitarlas, debes aceptar explícitamente con --enable-writes:

ignition-mcp-server --gateway-url https://my-gateway:8088 --enable-writes

Hazlo solo contra gateways de no producción, o cuando comprendas completamente lo que el agente de IA conectado tiene permitido tocar. Las escrituras en vivo controladas, auditadas y aprobadas por humanos son parte de Nexus.

Configuración

kiro-cli

Añade a tu ~/.kiro/settings.json:

{
  "mcpServers": {
    "ignition": {
      "command": "ignition-mcp-server",
      "args": []
    }
  }
}

Con acceso al gateway en vivo:

{
  "mcpServers": {
    "ignition": {
      "command": "ignition-mcp-server",
      "args": ["--gateway-url", "https://my-gateway:8088"]
    }
  }
}

Claude Desktop

Añade a la configuración MCP de tu Claude Desktop:

{
  "mcpServers": {
    "ignition": {
      "command": "ignition-mcp-server",
      "args": []
    }
  }
}

SSE (remoto)

Inicia el servidor en tu estación de trabajo de ingeniería:

ignition-mcp-server --transport sse --host 0.0.0.0 --port 8080

Conéctate desde cualquier cliente MCP usando la URL SSE: http://<host>:8080/sse

Herramientas disponibles

ping

Comprobación de salud. Devuelve "pong".

get_tags(project_path, tag_path?, provider?)

Explora los tags del proyecto. Opcionalmente filtra por ruta de carpeta y proveedor de tags.

get_tags("/path/to/project", "Conveyors/Line1")
get_tags("/path/to/project", "", "edge")

Devuelve nombres de tags, tipos, tipos de datos, valores y documentación.

list_tag_providers(project_path)

Lista todos los nombres de proveedores de tags del proyecto (por ejemplo, default, edge, MQTT).

list_views(project_path)

Lista todas las rutas de vistas de Perspective del proyecto.

get_view(project_path, view_path)

Obtiene el árbol de componentes de una vista de Perspective con sus bindings y eventos.

get_view("/path/to/project", "Overview")

Devuelve la jerarquía de componentes, los bindings de propiedades y el recuento de manejadores de eventos.

list_scripts(project_path)

Lista todos los scripts con su alcance (gateway, client, all).

get_script(project_path, script_path)

Obtiene el código fuente de un script del proyecto.

get_script("/path/to/project", "ignition/script-python/utils")

list_udts(project_path)

Lista todos los nombres de definiciones de UDT (User Defined Type).

get_udt(project_path, udt_name?)

Obtiene la(s) definición(es) de UDT con detalles de los miembros, parámetros y documentación.

get_udt("/path/to/project", "Motor_UDT")

list_alarms(project_path)

Lista todos los nombres de pipelines de alarmas del proyecto.

get_alarm(project_path, pipeline_name)

Obtiene la configuración de un pipeline de alarmas, incluyendo etapas, perfiles de notificación y transiciones.

get_alarm("/path/to/project", "MainAlarmPipeline")

Devuelve las etapas del pipeline con tipo (delay, notification), nombres de perfiles de notificación, información de contacto, períodos de consolidación y recuentos de transiciones.

list_named_queries(project_path)

Lista todos los nombres de consultas nombradas del proyecto.

get_named_query(project_path, query_name)

Obtiene el SQL, los parámetros, la conexión de base de datos y el tipo (Query vs Update) de una consulta nombrada.

get_named_query("/path/to/project", "GetActiveFaults")

Devuelve el texto SQL, las definiciones de parámetros con tipos de datos y valores predeterminados, la base de datos de destino y la descripción.

read_tag(tag_path)

Lee el valor actual de uno o más tags desde un gateway en vivo. Separa con comas para varios tags.

read_tag("[default]Conveyors/Line1/Speed")
read_tag("[default]Conveyors/Line1/Speed, [default]Conveyors/Line1/Running")

Requiere --gateway-url al iniciar.

write_tag(tag_path, value)

Escribe un valor en un tag de un gateway en vivo. Maneja la coerción booleana/numérica automáticamente.

write_tag("[default]Conveyors/Line1/Speed", "1800")

Deshabilitado por defecto. Requiere --gateway-url y --enable-writes al iniciar.

execute_script(code)

Ejecuta un script de Python en el gateway de Ignition en el alcance de gateway.

execute_script("system.tag.readBlocking(['[default]Conveyors/Line1/Speed'])")

Deshabilitado por defecto. Requiere --gateway-url y --enable-writes al iniciar.

get_history(tag_path, start, end)

Consulta datos históricos de tags desde el historiador del gateway.

get_history("[default]Conveyors/Line1/Speed", "2026-04-12T00:00:00Z", "2026-04-12T12:00:00Z")

Requiere --gateway-url al iniciar.

Formatos de proyecto compatibles

Formato

Cómo usarlo

Directorio del proyecto (8.1+ o 8.3+)

Apunta project_path a la carpeta del proyecto que contiene project.json

Exportación del proyecto (.zip)

Apunta project_path al archivo .zip exportado desde Ignition Gateway o Designer

Sistema de archivos 8.3

Apunta a data/projects/<ProjectName>/ en el Gateway

Ejemplo de conversación

You: What tags are under the Conveyors folder?

Agent calls: get_tags("/projects/MyPlant", "Conveyors")

Agent: The Conveyors folder contains 2 items:
- Line1 (Folder) — 3 child tags: Running (Boolean), Speed (Float4), Faulted (Boolean)
- Line2_Motor (UDT Instance) — type: Motor_UDT

You: What does the Motor_UDT look like?

Agent calls: get_udt("/projects/MyPlant", "Motor_UDT")

Agent: Motor_UDT has 3 members:
- Running (Boolean) — Motor running status
- Faulted (Boolean) — Motor fault status
- Speed_RPM (Float4) — Motor speed in RPM
Parameters: MotorName (String)

You: Show me the Overview view

Agent calls: get_view("/projects/MyPlant", "Overview")

Agent: The Overview view has a flex container with 3 children:
1. titleLabel (ia.display.label) — bound to view.params.title
2. speedDisplay (ia.display.led-display) — bound to tag [default]Conveyors/Line1/Speed
3. startButton (ia.input.button) — has 1 onClick event handler

Configuración del gateway

Las herramientas en vivo (read_tag, write_tag, execute_script, get_history) requieren el módulo WebDev en tu gateway de Ignition con los siguientes endpoints REST:

Endpoint

Método

Propósito

/system/webdev/api/tags/read

POST

Leer valores de tags

/system/webdev/api/tags/write

POST

Escribir valores de tags

/system/webdev/api/script/run

POST

Ejecutar scripts del gateway

/system/webdev/api/history/query

POST

Consultar historial de tags

Ejemplo de recurso Python de WebDev para /api/tags/read:

def doPost(request, session):
    import json
    body = json.loads(request["data"])
    paths = body.get("tagPaths", [])
    values = system.tag.readBlocking(paths)
    return {
        "json": [
            {"path": str(v.path), "value": v.value, "quality": str(v.quality)}
            for v in values
        ]
    }

Consulta la documentación de Ignition WebDev para obtener instrucciones completas de configuración.

Hoja de ruta

v0.2 — Alarmas y Named Queries ✅

  • list_alarms / get_alarm — analiza configuraciones de pipelines de alarmas

  • list_named_queries / get_named_query — analiza consultas SQL nombradas con parámetros

v0.3 — Interacción con el gateway en vivo ✅

  • read_tag(tag_path) / write_tag(tag_path, value) — interacción de tags en vivo mediante el módulo WebDev de Ignition

  • execute_script(code) — ejecuta scripts en el gateway

  • get_history(tag_path, start, end) — consulta el historial de tags

v0.4 — Inteligencia multiplataforma ✅

  • Cruzar referencias de los tags de Ignition con la lógica PLC de Studio 5000 L5X mediante bridge-mcp-server

  • "Esta alarma se dispara cuando el tag X se activa — esta es la lógica PLC que impulsa X"

  • Extracción de rutas de ítems OPC (opcItemPath, opcServer) en los resúmenes de tags

v0.5 — Puerta de seguridad de escritura ✅

  • write_tag / execute_script deshabilitados por defecto — actívelos con --enable-writes

  • Advertencias de seguridad en las descripciones de las herramientas y en la ayuda de la CLI

Mantenimiento

  • Publicación en PyPI (pip install ignition-mcp-server)

  • Soporte de nuevos formatos de versión de Ignition a medida que se publiquen

  • Correcciones de errores y casos límite de exportaciones reales de proyectos — issues bienvenidos

Este conector está completo en funcionalidad para su alcance: comprensión de un solo proyecto más conectividad con el gateway. El desarrollo más allá de ese alcance ocurre en Nexus.

Este conector vs. Nexus

El conector es la capa de acceso. Nexus es la inteligencia que se sitúa sobre él — y sobre todos los demás conectores — como un solo sistema.

Capacidad

Este conector

Nexus

Analizar proyectos de Ignition (etiquetas, vistas, scripts, UDTs, alarmas, consultas)

Lectura de gateway en vivo / historial

Escrituras en vivo

⚠️ indicador opcional, no auditado

✅ restringido, auditado, aprobado por humanos

Multi-vendedor: Rockwell, Siemens, familia CODESYS (más de 500 marcas), OPC UA

Diagnóstico de fallos en vivo en la línea en funcionamiento (causa raíz, con citas)

Capa de conocimiento: tus manuales, documentos SFS/DOO, historial de fallos — buscable, vinculado a la lógica

Memoria persistente de la operación entre sesiones

Generación de scripts, andamiaje de vistas, generación de código

Escala de flota: descubrimiento automático, inventario de toda la planta, monitoreo, alarmas

LLM local / despliegue aislado

Si estás evaluando este conector para algo más que un solo proyecto en un solo gateway, habla con nosotros sobre Nexus.


Desarrollo

git clone https://github.com/nodeblue-ai/ignition-mcp-server.git
cd ignition-mcp-server
pip install -e .
pip install pytest
pytest tests/ -v

Estructura del proyecto

src/ignition_mcp_server/
├── __init__.py
├── __main__.py          # CLI entry point (stdio/SSE, gateway config)
├── server.py            # FastMCP server with all 17 tool definitions
├── project_source.py    # Read from .zip or directory (LRU-cached)
├── gateway_client.py    # HTTP client for live Ignition WebDev API
└── parsers/
    ├── tags.py          # Tag hierarchy parser (multi-provider)
    ├── views.py         # Perspective view parser
    ├── scripts.py       # Script discovery and reader
    ├── udts.py          # UDT definition parser
    ├── alarms.py        # Alarm pipeline parser
    └── named_queries.py # Named query parser

tests/
├── test_server.py       # 59 tests — parsers, project sources, error handling
├── test_gateway.py      # 18 tests — live gateway tools + write gating with mock HTTP server
└── fixtures/
    ├── sample-project/  # Synthetic Ignition project (directory)
    └── sample-project.zip

Contribuciones

Las contribuciones son bienvenidas. Este es un proyecto de código abierto bajo licencia MIT.

Si tienes exportaciones reales de proyectos de Ignition que puedas compartir (o versiones anonimizadas), son especialmente valiosas para probar casos límite.


Licencia

MIT


Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    A
    maintenance
    MCP server that connects AI assistants to Siemens TIA Portal via the Openness API. AI-assisted PLC programming, project management, hardware configuration, cross-reference analysis, and deployment. 16 tools, 166 actions.
    27
  • A
    license
    C
    quality
    C
    maintenance
    MCP server for Inductive Automation Ignition, enabling AI assistants to browse and write tags, query history and alarms, manage projects, and deploy Perspective views through natural language.
    43
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that turns AI assistants into competent Festo/CODESYS PLC engineers by grounding them in curated, manufacturer-accurate knowledge and forcing every artifact through a machine-checked validation pipeline for CODESYS import.
    18
    45
    1
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    Universal MCP server for industrial PLC communication, enabling AI agents to read sensors, alarms, status, setpoints, and write setpoints via adapters for Modbus, S7, or custom PLCs.
    6

View all related MCP servers

Related MCP Connectors

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • An MCP server for Arcjet - the runtime security platform that ships with your AI code.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nodeblue-AI/ignition-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server