有効にする
全体を止めるスイッチ、endpoint が待ち受けるポート、そしてそれをローカルに留める 4 つのこと。
入れたばかりのアプリは、エージェントに何も名乗りません。エージェントアクセスはスイッチ 1 つ先にあり、そのスイッチは、認証の代わりに立つ 3 つの関門の 1 つ目です。全体を止めるスイッチ、範囲ごとの切り替え、そして記録の 3 つです。
スイッチとポート
全体を止めるスイッチは、既定でオフです。エージェントのページで有効にしてください(このページを開くには、ローカルのロールにエージェントを管理する権限が要ります)。すると、endpoint が Streamable HTTP で http://127.0.0.1:<port>/mcp を待ち受けます。アプリが通知領域に隠れて動いている間も、エージェントは接続できます。
| 設定 | 何をするか | 受け付ける値 | 既定 |
|---|---|---|---|
| エージェントアクセスを有効にする(MCP) | endpoint を開始、または停止します。オフなら、endpoint はなく、何も名乗りません。 | オン/オフ | オフ |
| ポート | endpoint が待ち受けるローカルのポートです。変えるとエージェントアクセスが再起動し、ページのすべての接続の例もそれに合わせて変わります。 | 1024~65535 です。エージェントアクセスが移れないポートは、何かが保存される前に拒否されます。理由が欄の下に出て、欄は今効いているポートへ戻り、何も再起動しません。拒否されるのは次の 6 つです。範囲の外の値は「1024 から 65535 までの数値を入力してください。」で拒否されます。リモートアクセス で設定する Web サーバーのポートは「ポート N はすでに Web サーバーが使っています。別のポートを選ぶか、先に Web サーバーを移してください。」で拒否されます。構成 の OPC UA サーバーのポートは、サーバーが動いていても止まっていても「ポート N はすでに OPC UA サーバーが使っています。別のポートを選ぶか、先にサーバーを移してください。」で拒否されます。Connector のページにある Modbus サーバー のポートは、サーバーがオンでもオフでも「ポート N はすでに Modbus サーバーが使っています。別のポートを選ぶか、先に Modbus サーバーを移してください。」で拒否されます。Connector のページにある MQTT ブローカー のポートは、ブローカーがオンでもオフでも「ポート N はすでに MQTT ブローカーが使っています。別のポートを選ぶか、先に MQTT ブローカーを移してください。」で拒否されます。このコンピューターでほかの何かがすでに押さえているポートは「ポート N はこのコンピューターで使用中です。使っているものを閉じるか、別のポートを選んでください。」で拒否されます。 | 18181 |
スイッチの横には状態のラベルがあり、スイッチがオフの間は封印、オンの間は開放と出ます。endpoint の状態は、このラベルでひと目で読めます。
endpoint の下には、見出しを持たない集計があり、ページのもっと下にある許可する範囲の切り替えをまとめます。1 行目は 4 つの段階のそれぞれについて、オンになっている範囲の数を示します。数の前の点は、その段階の範囲が 1 つでもオンの間はその段階の色で灯り、1 つもオンでない間は灰色です。範囲がすべてオンなら、5 読み取り、6 構成、4 操作、1 復元 と出ます。その下の行はそれを合計して「機能グループ 16 件のうち 16 件が開いています」と出し、操作か復元の範囲が 1 つでもオンの間は、開いているグループのうち実際の設備に書き込めるものの数を「実時間の書き込み 5 件」と続けます。数えるのは範囲の切り替えだけなので、このステーションがどれだけ開いているかをひと目で読めます。全体を止めるスイッチがオフの間、この集計は endpoint やポートといっしょに灰色になりますが、保存された状態を保つ切り替えを読み続けます。つまり、スイッチをまたオンにしたときにエージェントアクセスが開くものを示しています。
全体を止めるスイッチがオフの間、endpoint の下のURL をコピーとポートは灰色になり、どちらかにポインターを置くと理由が出ます:「エージェントアクセスは無効です。先にアクセスのセクションで有効にしてください。」許可する範囲のカードも、灰色になったスイッチの上に同じ文を出します。
このページのものはすべて自動で保存されます。保存のボタンはありません。
endpoint を守っているもの
- loopback だけ。ソケットは
127.0.0.1に結び付き、ネットワークのインターフェースには決して結び付きません。プラントネットワークからは届きません。 - ブラウザーからの要求は拒否されます。結び付けだけでは、悪意のある Web ページが自分のドメインを 127.0.0.1 に付け替えるのを止められないので、endpoint は、ブラウザーが偽れない 2 つのヘッダーも調べます。
Hostがローカルでない要求と、ローカルでないOriginを運ぶ要求は、セッションを開く前に 403 で拒否されます。この拒否はどれもイベントのAgentの領域に記録されるので、ブラウザーのタブから探られたステーションは足あとを残します。 - endpoint の認証はありません。意図してそうしています。関門は、全体を止めるスイッチ、範囲ごとの切り替え、そして記録です。もしトンネル越しに endpoint を公開するなら、認証はそのトンネルの側になければなりません(ChatGPT とそのほかの クラウド経由のクライアントを見てください)。
- ツールの一覧は、有効な範囲そのものです。切れている範囲のツールは、まったく名乗られません。「いいえ」と答えるのではなく、そこにないのです。どれかの切り替えを変えると endpoint が再起動するので、エージェントに見えるものは、いつでも許したものと一致します。ただ 1 つの例外は 2 つのヘルプのツールです。アプリのドキュメントを読むだけでステーションのことは何も読まないので、切り替えがどうであれ endpoint とともに現れます(ヘルプ)。