Skip to main content
Glama
Nodeblue-AI

ignition-mcp-server

by Nodeblue-AI

ignition-mcp-server

首个面向 Ignition SCADA 的 AI 驱动开发工具——一个 MCP 服务器,让任何 AI 代理能够读取、理解并与你的 Ignition 项目和网关交互。

License: MIT Python 3.10+ MCP

[!NOTE] 这个连接器是来自 Nodeblue 的早期社区工具。 完整系统是我们的工业智能平台 Nexus——这些仓库只是它的连接层。

Nexus 读取并推理你的整个运营:PLC 逻辑、SCADA 系统、实时控制器数据、文档、故障历史,以及 MES/ERP 记录。它跨厂商工作——Rockwell、Siemens、Ignition、CODESYS 系列,以及通过 PLCopen 支持的 500+ 品牌。它能诊断运行中的故障,持有对运营的持久记忆,并用通俗的英语回答,且引用来源。

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 PLC 逻辑进行端到端关联


功能简介

ignition-mcp-server 通过 Model Context Protocol 将 AI 代理(Claude、GPT、本地 LLM)连接到你的 Ignition SCADA 项目。它为 AI 提供结构化访问权限:

  • 标签 — 浏览标签层级,按文件夹路径过滤,查看数据类型和值

  • Perspective 视图 — 读取组件树、绑定、事件处理器和样式

  • 脚本 — 读取项目库脚本和网关事件脚本,包含作用域信息

  • UDT — 列出并检查用户定义类型(UDT)定义,包含成员详情

  • 报警管道 — 读取报警通知配置,包含阶段、配置文件和转换

  • 命名查询 — 读取 SQL 查询定义,包含参数、目标数据库和类型

  • 实时标签读/写 — 通过 WebDev 读取运行中 Ignition 网关上的标签值;写入为可选项(--enable-writes

  • 脚本执行 — 在网关作用域内运行 Python 脚本(可选,--enable-writes

  • 标签历史 — 查询带时间范围过滤的历史标签数据

同时支持 Ignition 8.1+ 项目导出.zip 文件)和 8.3+ 基于文件系统的项目(直接目录访问)。

Related MCP server: ignition-mcp

为什么存在

Ignition 在全球有 ~300,000+ 套安装,但 AI 工具为零——没有供应商的 copilot,没有第三方工具,没有学术研究。其他所有主流自动化平台(Siemens、Rockwell、Schneider)都有 AI 助手。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_tagget_history。需要在网关上安装 WebDev 模块 并配置 API 端点(参见下面的 网关设置)。

[!WARNING] 默认禁用实时写入。 write_tagexecute_script 可以更改正在运行的 SCADA 系统上的值,并驱动真实设备。要启用它们,你必须显式使用 --enable-writes 选择加入:

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

仅对非生产网关执行此操作,或者当你完全了解所连接的 AI 代理被允许接触什么时。经过门控、审计和人工批准的实时写入是 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

添加到你的 Claude Desktop MCP 配置:

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

SSE(远程)

在你的工程工作站上启动服务器:

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

使用 SSE URL 从任何 MCP 客户端连接: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)

列出项目中所有标签提供程序名称(例如 defaultedgeMQTT)。

list_views(project_path)

列出项目中所有 Perspective 视图路径。

get_view(project_path, view_path)

获取 Perspective 视图的组件树,包含绑定和事件。

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

返回组件层次结构、属性绑定和事件处理程序数量。

list_scripts(project_path)

列出所有脚本及其作用域(网关、客户端、全部)。

get_script(project_path, script_path)

获取项目脚本的源代码。

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

list_udts(project_path)

列出所有 UDT(用户定义类型)定义名称。

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)

在网关作用域内于 Ignition 网关上执行 Python 脚本。

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 指向从 Ignition Gateway 或 Designer 导出的 .zip 文件

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

网关设置

实时工具(read_tagwrite_tagexecute_scriptget_history)需要在你的 Ignition 网关上安装 WebDev 模块,并配置以下 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

查询标签历史

用于 /api/tags/read 的 WebDev Python 资源示例:

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) — 通过 Ignition WebDev 模块进行实时标签交互

  • execute_script(code) — 在网关上运行脚本

  • get_history(tag_path, start, end) — 查询标签历史

v0.4 — 跨平台智能 ✅

  • 通过 bridge-mcp-server 将 Ignition 标签与 Studio 5000 L5X PLC 逻辑交叉引用

  • "此报警在标签 X 变为 true 时触发 — 这是驱动 X 的 PLC 逻辑"

  • 在标签摘要中提取 OPC 项路径(opcItemPathopcServer

v0.5 — 写入安全门 ✅

  • write_tag / execute_script 默认禁用 — 通过 --enable-writes 选择启用

  • 在工具描述和 CLI 帮助中添加安全警告

维护

  • PyPI 发布(pip install ignition-mcp-server

  • 随着新版本发布,支持新的 Ignition 版本格式

  • 针对真实项目导出的 bug 修复和边界情况 — 欢迎提交 issue

这个连接器在其范围内功能完整:单项目理解加网关连接。超出该范围的开发在 Nexus 中进行。


此连接器与 Nexus

连接器是访问层。Nexus 是位于其之上——以及所有其他连接器之上——的智能层,作为一个统一系统运行。

能力

此连接器

Nexus

解析 Ignition 项目(tags, views, scripts, UDTs, alarms, queries)

实时网关读取 / 历史记录

实时写入

⚠️ 选择启用标志,未经审计

✅ 受控、已审计、经人工批准

跨厂商: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