Skip to main content
Glama
Nodeblue-AI

ignition-mcp-server

by Nodeblue-AI

ignition-mcp-server

The first AI-powered development tool for Ignition SCADA — an MCP server that lets any AI agent read, understand, and interact with your Ignition projects and gateways.

License: MIT Python 3.10+ MCP

[!NOTE] Этот коннектор — ранний инструмент сообщества от Nodeblue. Полная система — это Nexus, наша платформа промышленного интеллекта — эти репозитории лишь её коннекторные слои.

Nexus читает и анализирует всю вашу операцию: логику ПЛК, SCADA-системы, живые данные контроллеров, документацию, историю отказов и записи MES/ERP. Он работает с оборудованием разных вендоров — Rockwell, Siemens, Ignition, семейство CODESYS и ещё более 500 брендов через PLCopen. Он диагностирует неисправности на работающей линии, хранит постоянную память об операции и отвечает простым английским языком со ссылками на источник.

Открытые коннекторы Nodeblue

Коннектор

Что делает

studio5000-mcp-server

Rockwell/Allen-Bradley Studio 5000 — разбор L5X-экспорта: теги, UDT, подпрограммы, AOI, перекрёстные ссылки

ignition-mcp-server (этот репозиторий)

Ignition SCADA — представления, сценарии, теги, UDT, аварийные сигналы, чтение/запись на работающем шлюзе

bridge-mcp-server

Связывает теги Ignition SCADA с логикой ПЛК Studio 5000 от начала до конца


Что это делает

ignition-mcp-server подключает ИИ-агентов (Claude, GPT, локальные LLM) к вашим проектам Ignition SCADA через Model Context Protocol. Он предоставляет ИИ структурированный доступ к:

  • Теги — просмотр иерархий тегов, фильтрация по пути к папке, просмотр типов данных и значений

  • Perspective Views (представления Perspective) — чтение деревьев компонентов, привязок, обработчиков событий и стилей

  • Сценарии — чтение сценариев библиотеки проекта и сценариев событий шлюза с информацией об области действия

  • UDT — перечисление и просмотр определений пользовательских типов (User Defined Type) с деталями членов

  • Конвейеры аварийных сигналов — чтение конфигураций уведомлений о аварийных сигналах с этапами, профилями и переходами

  • Именованные запросы — чтение определений SQL-запросов с параметрами, целевыми базами данных и типами

  • Чтение/запись тегов в реальном времени — чтение значений тегов на работающем шлюзе Ignition через WebDev; запись включается по запросу (--enable-writes)

  • Выполнение сценариев — запуск Python-сценариев на шлюзе в области шлюза (по запросу, --enable-writes)

  • История тегов — запрос исторических данных тегов с фильтрацией по временному диапазону

Работает как с экспортами проектов Ignition 8.1+ (файлы .zip), так и с проектами на файловой системе 8.3+ (прямой доступ к каталогу).

Related MCP server: ignition-mcp

Почему это существует

У Ignition — ~300,000+ установок по всему миру и ноль инструментов с ИИ — ни вендорского копилота, ни сторонних инструментов, ни академических исследований. У каждой другой крупной платформы автоматизации (Siemens, Rockwell, Schneider) есть ИИ-ассистенты. У Ignition нет ничего.

Этот сервер заполняет этот пробел. Он открытый, не зависит от конкретного агента и работает офлайн.

Создан и поддерживается Nodeblue. Эти коннекторы — ранние инструменты сообщества из нашей работы над Nexus, где эта возможность поставляется в продакшен-качестве — вместе с кросс-вендорной корреляцией, диагностикой неисправностей в реальном времени и постоянной памятью об операции.

Установка

pip install ignition-mcp-server

Требуется Python 3.10+.

Чтобы установить из исходного кода, вместо этого:

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

Быстрый старт

stdio (локально — kiro-cli, Claude Desktop, Claude Code)

ignition-mcp-server

SSE (удалённо — сервер на одной машине, агент на другой)

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

С подключением к работающему шлюзу

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

Это включает read-only live-инструменты: read_tag и get_history. Требуется модуль WebDev на шлюзе с настроенными API-эндпоинтами (см. Настройка шлюза ниже).

[!WARNING] Live-запись отключена по умолчанию. write_tag и execute_script могут изменять значения на работающей SCADA-системе и приводить в действие реальное оборудование. Чтобы включить их, вы должны явно согласиться с помощью --enable-writes:

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

Делайте это только на непродакшн-шлюзах или если полностью понимаете, к чему подключённому ИИ-агенту разрешено прикасаться. Контролируемая, аудируемая, одобряемая человеком live-запись — часть Nexus.

Конфигурация

kiro-cli

Добавьте в ваш ~/.kiro/settings.json:

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

С доступом к работающему шлюзу:

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

Claude Desktop

Добавьте в конфигурацию MCP вашего Claude Desktop:

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

SSE (удалённо)

Запустите сервер на вашей инженерной рабочей станции:

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

Подключайтесь из любого MCP-клиента по SSE URL: http://<host>:8080/sse

Доступные инструменты

ping

Проверка состояния. Возвращает "pong".

get_tags(project_path, tag_path?, provider?)

Просмотр тегов в проекте. Можно фильтровать по пути к папке и провайдеру тегов.

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

Возвращает имена тегов, типы, типы данных, значения и документацию.

list_tag_providers(project_path)

Перечисляет все имена провайдеров тегов в проекте (например, default, edge, MQTT).

list_views(project_path)

Перечисляет все пути представлений Perspective в проекте.

get_view(project_path, view_path)

Возвращает дерево компонентов представления Perspective с привязками и событиями.

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

Возвращает иерархию компонентов, привязки свойств и количество обработчиков событий.

list_scripts(project_path)

Перечисляет все сценарии с их областью действия (gateway, client, all).

get_script(project_path, script_path)

Возвращает исходный код сценария проекта.

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

list_udts(project_path)

Перечисляет все имена определений UDT (User Defined Type).

get_udt(project_path, udt_name?)

Возвращает определение(я) UDT с деталями членов, параметрами и документацией.

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

list_alarms(project_path)

Перечисляет все имена конвейеров аварийных сигналов в проекте.

get_alarm(project_path, pipeline_name)

Возвращает конфигурацию конвейера аварийных сигналов, включая этапы, профили уведомлений и переходы.

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

Возвращает этапы конвейера с типом (delay, notification), именами профилей уведомлений, контактной информацией, периодами консолидации и количеством переходов.

list_named_queries(project_path)

Перечисляет все имена именованных запросов в проекте.

get_named_query(project_path, query_name)

Возвращает SQL именованного запроса, параметры, подключение к базе данных и тип (Query vs Update).

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

Возвращает текст SQL, определения параметров с типами данных и значениями по умолчанию, целевую базу данных и описание.

read_tag(tag_path)

Читает текущее значение одного или нескольких тегов с работающего шлюза. Для нескольких тегов используйте разделение запятыми.

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

Требует --gateway-url при запуске.

write_tag(tag_path, value)

Записывает значение в тег на работающем шлюзе. Автоматически обрабатывает приведение к булевому/числовому типу.

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

Отключено по умолчанию. Требует --gateway-url и --enable-writes при запуске.

execute_script(code)

Выполняет Python-сценарий на шлюзе Ignition в области шлюза (gateway scope).

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

Отключено по умолчанию. Требует --gateway-url и --enable-writes при запуске.

get_history(tag_path, start, end)

Запрашивает исторические данные тегов из историзатора шлюза.

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

Требует --gateway-url при запуске.

Поддерживаемые форматы проектов

Формат

Как использовать

Каталог проекта (8.1+ или 8.3+)

Укажите project_path на папку проекта, содержащую project.json

Экспорт проекта (.zip)

Укажите project_path на файл .zip, экспортированный из Ignition Gateway или Designer

Файловая система 8.3

Укажите путь к data/projects/<ProjectName>/ на шлюзе

Пример диалога

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

Настройка шлюза

Live-инструменты (read_tag, write_tag, execute_script, get_history) требуют модуль WebDev на вашем шлюзе Ignition со следующими REST-эндпоинтами:

Эндпоинт

Метод

Назначение

/system/webdev/api/tags/read

POST

Чтение значений тегов

/system/webdev/api/tags/write

POST

Запись значений тегов

/system/webdev/api/script/run

POST

Выполнение сценариев шлюза

/system/webdev/api/history/query

POST

Запрос истории тегов

Пример Python-ресурса WebDev для /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
        ]
    }

См. документацию Ignition WebDev для полных инструкций по настройке.

Дорожная карта

v0.2 — Аварийные сигналы и именованные запросы ✅

  • list_alarms / get_alarm — разбор конфигураций конвейеров аварийных сигналов

  • list_named_queries / get_named_query — разбор именованных SQL-запросов с параметрами

v0.3 — Взаимодействие с работающим шлюзом в реальном времени ✅

  • read_tag(tag_path) / write_tag(tag_path, value) — live-взаимодействие с тегами через модуль Ignition WebDev

  • execute_script(code) — запуск сценариев на шлюзе

  • get_history(tag_path, start, end) — запрос истории тегов

v0.4 — Кроссплатформенный интеллект ✅

  • Перекрёстная ссылка тегов Ignition с логикой ПЛК Studio 5000 L5X через bridge-mcp-server

  • "Этот аварийный сигнал срабатывает, когда тег X становится истинным — вот логика ПЛК, которая управляет X"

  • Извлечение пути OPC-элемента (opcItemPath, opcServer) в сводках по тегам

v0.5 — Шлюз безопасности записи ✅

  • write_tag / execute_script отключены по умолчанию — включение через --enable-writes

  • Предупреждения о безопасности в описаниях инструментов и справке CLI

Обслуживание

  • Публикация на PyPI (pip install ignition-mcp-server)

  • Поддержка новых форматов версий Ignition по мере выхода релизов

  • Исправление ошибок и краевых случаев из реальных экспортов проектов — приветствуются issue

Этот коннектор функционально завершён для своей области: понимание одного проекта плюс подключение к шлюзу. Разработка за пределами этой области ведётся в Nexus.

Этот коннектор и Nexus

Коннектор — это уровень доступа. Nexus — это интеллект, который находится поверх него — и поверх всех остальных коннекторов — как единая система.

Возможность

Этот коннектор

Nexus

Разбор проектов Ignition (теги, представления, скрипты, UDT, тревоги, запросы)

Чтение шлюза в реальном времени / история

Запись в реальном времени

⚠️ флаг opt-in, без аудита

✅ с ограниченным доступом, аудитом, одобрением человека

Кросс-вендор: Rockwell, Siemens, семейство CODESYS (500+ брендов), OPC UA

Диагностика неисправностей в реальном времени на работающей линии (первопричина, со ссылками)

Слой знаний: ваши руководства, документация SFS/DOO, история отказов — доступно для поиска, связано с логикой

Постоянная память о работе между сессиями

Генерация скриптов, каркасы представлений, генерация кода

Масштаб парка: автобнаружение, инвентаризация всего предприятия, мониторинг, оповещение

Локальная LLM / развертывание в изолированной среде

Если вы рассматриваете этот коннектор для чего-то большего, чем один проект на одном шлюзе, поговорите с нами о Nexus.


Разработка

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

Структура проекта

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

Участие

Вклад приветствуется. Это проект с открытым исходным кодом на условиях лицензии MIT.

Если у вас есть реальные экспорты проектов Ignition, которыми можно поделиться (или анонимизированные версии), они особенно ценны для тестирования крайних случаев.


Лицензия

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