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 — メンバー詳細付きでユーザー定義型(User Defined Type)定義の一覧表示と検査
アラームパイプライン — ステージ、プロファイル、遷移を含むアラーム通知設定の読み取り
名前付きクエリ — パラメータ、データベースターゲット、型を含むSQLクエリ定義の読み取り
ライブタグの読み取り/書き込み — WebDevを介して稼働中のIgnitionゲートウェイのタグ値を読み取り。書き込みはオプトイン(
--enable-writes)スクリプト実行 — ゲートウェイスコープでゲートウェイ上にPythonスクリプトを実行(オプトイン、
--enable-writes)タグ履歴 — 時間範囲フィルタリングを使用して履歴タグデータを照会
Ignition 8.1+ プロジェクトエクスポート(.zipファイル)と8.3+ ファイルシステムベースのプロジェクト(ディレクトリ直接アクセス)の両方に対応しています。
Related MCP server: ignition-mcp
なぜこれが必要か
Ignitionは世界に約30万以上の導入実績がありますが、AIツールはゼロです。ベンダーのコパイロットも、サードパーティ製ツールも、学術研究もありません。他の主要なオートメーションプラットフォーム(Siemens、Rockwell、Schneider)にはAIアシスタントがあります。Ignitionには何もありません。
このサーバーはそのギャップを埋めます。オープンソースで、エージェントに依存せず、オフラインで動作します。
Nodeblue によって構築・保守されています。これらのコネクタは、Nexus での取り組みから生まれた初期のコミュニティツールです。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 (リモート — サーバーは1台のマシン、エージェントは別のマシン)
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)が有効になります。APIエンドポイントが設定されたゲートウェイ上の WebDevモジュール が必要です(下記の ゲートウェイ設定 を参照)。
[!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 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(ユーザー定義型)定義名を一覧表示します。
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)
ライブゲートウェイから1つ以上のタグの現在値を読み取ります。複数タグの場合はカンマ区切り。
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 ファイルシステム | ゲートウェイ上の |
会話例
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バージョン形式のサポート
実際のプロジェクトエクスポートからのバグ修正とエッジケース対応 — issue歓迎
このコネクタは、そのスコープにおいて機能完成しています: 単一プロジェクトの理解とゲートウェイ接続。そのスコープを超える開発はNexusで行われます。
このコネクタとNexusの比較
コネクタはアクセスレイヤーです。Nexus は、その上に、そして他のすべてのコネクタの上に、単一のシステムとして位置するインテリジェンスです。
機能 | このコネクタ | Nexus |
Ignition プロジェクトの解析(タグ、ビュー、スクリプト、UDT、アラーム、クエリ) | ✅ | ✅ |
ライブゲートウェイ読み取り / 履歴 | ✅ | ✅ |
ライブ書き込み | ⚠️ オプトインフラグ、未監査 | ✅ ゲート付き、監査済み、人間による承認 |
クロスベンダー: 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