ignition-mcp-server
ignition-mcp-server
Ignition SCADA를 위한 최초의 AI 기반 개발 도구 — 모든 AI 에이전트가 Ignition 프로젝트와 게이트웨이를 읽고, 이해하고, 상호작용할 수 있게 해주는 MCP 서버입니다.
[!NOTE] 이 커넥터는 Nodeblue의 초기 커뮤니티 도구입니다. 전체 시스템은 저희 산업 지능 플랫폼인 Nexus이며, 이 저장소들은 그 연결 계층에 불과합니다.
Nexus는 PLC 로직, SCADA 시스템, 실시간 컨트롤러 데이터, 문서, 고장 이력, MES/ERP 기록 등 전체 운영을 읽고 추론합니다. Rockwell, Siemens, Ignition, CODESYS 제품군, 그리고 PLCopen을 통한 500개 이상의 브랜드 등 다양한 공급업체에서 작동합니다. 가동 중인 라인의 고장을 진단하고, 운영에 대한 지속적인 메모리를 유지하며, 출처를 인용하여 평이한 영어로 답변합니다.
Nodeblue 오픈소스 커넥터
커넥터 | 하는 일 |
Rockwell/Allen-Bradley Studio 5000 — L5X 내보내기 파싱: 태그, UDT, 루틴, AOI, 상호 참조 | |
ignition-mcp-server (이 저장소) | Ignition SCADA — 뷰, 스크립트, 태그, UDT, 알람, 실시간 게이트웨이 읽기/쓰기 |
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 도구는 전무합니다 — 공급업체 코파일럿도, 타사 도구도, 학술 연구도 없습니다. 다른 주요 자동화 플랫폼(Siemens, Rockwell, Schneider)에는 AI 어시스턴트가 있습니다. Ignition에는 아무것도 없습니다.
이 서버가 그 공백을 메웁니다. 오픈소스이고, 에이전트에 구애받지 않으며, 오프라인으로 작동합니다.
Nodeblue가 구축하고 유지 관리합니다. 이 커넥터들은 Nexus 작업에서 나온 초기 커뮤니티 도구로, 이 기능은 크로스 공급업체 상관관계, 실시간 고장 진단, 운영에 대한 지속적인 메모리와 함께 프로덕션 등급으로 제공됩니다.
설치
pip install ignition-mcp-serverPython 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-serverSSE (원격 — 한 머신의 서버, 다른 머신의 에이전트)
ignition-mcp-server --transport sse --port 8080실시간 게이트웨이 연결 사용
ignition-mcp-server --gateway-url https://my-gateway:8088 --gateway-username admin --gateway-password changeme이렇게 하면 읽기 전용 라이브 도구인 read_tag와 get_history가 활성화됩니다. 게이트웨이에 WebDev 모듈이 설치되고 API 엔드포인트가 구성되어 있어야 합니다(아래 게이트웨이 설정 참조).
[!WARNING] 라이브 쓰기는 기본적으로 비활성화되어 있습니다.
write_tag와execute_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 8080SSE 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+) |
|
프로젝트 내보내기 ( | Ignition Gateway 또는 Designer에서 내보낸 |
8.3 파일 시스템 | Gateway의 |
예시 대화
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 엔드포인트가 필요합니다:
엔드포인트 | 메서드 | 용도 |
| POST | 태그 값 읽기 |
| POST | 태그 값 쓰기 |
| POST | 게이트웨이 스크립트 실행 |
| 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 프로젝트 내보내기(또는 익명화된 버전)가 있다면, 특히 엣지 케이스를 테스트하는 데 매우 유용합니다.
라이선스
Maintenance
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
- Flicense-qualityAmaintenanceMCP 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
- AlicenseCqualityCmaintenanceMCP 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.431MIT
- AlicenseAqualityAmaintenanceAn 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.18451MIT
- FlicenseBqualityBmaintenanceUniversal 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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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