Skip to main content
Glama
Nodeblue-AI

ignition-mcp-server

by Nodeblue-AI

ignition-mcp-server

Ignition SCADA를 위한 최초의 AI 기반 개발 도구 — 모든 AI 에이전트가 Ignition 프로젝트와 게이트웨이를 읽고, 이해하고, 상호작용할 수 있게 해주는 MCP 서버입니다.

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-serverModel 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 도구는 전무합니다 — 공급업체 코파일럿도, 타사 도구도, 학술 연구도 없습니다. 다른 주요 자동화 플랫폼(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 http://<host>:8080/sse를 사용하여 모든 MCP 클라이언트에서 연결하세요.

사용 가능한 도구

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)

모든 스크립트와 해당 범위(게이트웨이, 클라이언트, 전체)를 나열합니다.

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")

유형(지연, 알림), 알림 프로필 이름, 연락처 정보, 통합 기간, 전환 수와 함께 파이프라인 단계를 반환합니다.

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.json이 포함된 프로젝트 폴더를 project_path로 지정합니다

프로젝트 내보내기 (.zip)

Ignition Gateway 또는 Designer에서 내보낸 .zip 파일을 project_path로 지정합니다

8.3 파일 시스템

Gateway의 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_tag, write_tag, execute_script, get_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 항목 경로 추출(opcItemPath, opcServer)

v0.5 — 쓰기 안전 게이트 ✅

  • write_tag / execute_script 기본 비활성화 — --enable-writes로 옵트인

  • 도구 설명 및 CLI 도움말의 안전 경고

유지 관리

  • PyPI 배포(pip install ignition-mcp-server)

  • 새 릴리스에 따른 새로운 Ignition 버전 형식 지원

  • 실제 프로젝트 내보내기에서 발견된 버그 수정 및 엣지 케이스 — 이슈 환영

이 커넥터는 해당 범위에서 기능이 완성되었습니다: 단일 프로젝트 이해와 게이트웨이 연결. 이 범위를 넘어선 개발은 Nexus에서 진행됩니다.

이 커넥터와 Nexus 비교

커넥터는 액세스 계층입니다. Nexus는 그 위에 — 그리고 다른 모든 커넥터 위에 — 하나의 시스템으로 자리하는 인텔리전스입니다.

기능

이 커넥터

Nexus

Ignition 프로젝트 파싱 (태그, 뷰, 스크립트, UDTs, 알람, 쿼리)

라이브 게이트웨이 읽기 / 이력

라이브 쓰기

⚠️ 옵트인 플래그, 미감사

✅ 게이트 처리, 감사됨, 인간 승인

크로스 벤더: 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