# 켜기

> 전체 스위치, endpoint가 수신하는 포트, 그리고 그것을 로컬에 묶어 두는 네 가지.

갓 설치한 스테이션은 에이전트에게 아무것도 알리지 않습니다. 에이전트 접근은 스위치 하나만큼 떨어져 있고, 그 스위치는 인증을 대신하는 세 관문 가운데 첫 번째입니다. 전체 스위치, 범위마다의 스위치, 그리고 기록입니다.

## 스위치와 포트 {#the-switch-and-the-port}

전체 스위치는 기본값이 **꺼짐**입니다. **에이전트** 페이지에서 켜십시오(그 페이지를 열려면 로컬 역할의 에이전트 관리 권한이 필요합니다). 그러면 endpoint가 Streamable HTTP로 `http://127.0.0.1:<port>/mcp`에서 수신합니다. 앱이 알림 영역에 감춰진 채로 도는 동안에도 에이전트가 접속할 수 있습니다.

| 설정 | 하는 일 | 값 | 기본값 |
| --- | --- | --- | --- |
| 에이전트 접근 사용(MCP) | endpoint를 시작하거나 멈춥니다. 꺼짐이면 endpoint가 없고 알리는 것도 없습니다. | 켜짐 / 꺼짐 | 꺼짐 |
| 포트 | endpoint가 수신하는 로컬 포트입니다. 이것을 바꾸면 에이전트 접근이 다시 시작되고, 페이지의 모든 연결 예시가 그에 맞게 바뀝니다. | 1024~65535입니다. 에이전트 접근이 옮겨 갈 수 없는 포트는 무엇이든 저장되기 전에 거부됩니다. 이유가 입력란 아래에 나오고, 입력란은 지금 힘을 가지는 포트로 되돌아가며, 아무것도 다시 시작되지 않습니다. 거부되는 입력은 다음 여섯 가지입니다. 범위 밖의 값에는 "1024에서 65535 사이의 숫자를 입력하십시오."라는 이유가 나옵니다. [원격 접근](remote-access)에서 정하는 웹 서버의 포트에는 "포트 N은(는) 이미 웹 서버가 쓰고 있습니다. 다른 포트를 고르거나, 웹 서버를 먼저 옮기십시오."라는 이유가 나옵니다. [구성](connector-opcua-configuration)의 OPC UA 서버 포트에는, 서버가 돌고 있든 멈춰 있든 "포트 N은(는) 이미 OPC UA 서버가 쓰고 있습니다. 다른 포트를 고르거나, 서버를 먼저 옮기십시오."라는 이유가 나옵니다. Connector 페이지의 [Modbus 서버](connector-modbus-server) 포트에는, 서버가 켜져 있든 꺼져 있든 "포트 N은(는) 이미 Modbus 서버가 쓰고 있습니다. 다른 포트를 고르거나, Modbus 서버를 먼저 옮기십시오."라는 이유가 나옵니다. Connector 페이지의 [MQTT 브로커](connector-mqtt-broker) 포트에는, 브로커가 켜져 있든 꺼져 있든 "포트 N은(는) 이미 MQTT 브로커가 쓰고 있습니다. 다른 포트를 고르거나, MQTT 브로커를 먼저 옮기십시오."라는 이유가 나옵니다. 이 컴퓨터에서 다른 무언가가 이미 쥐고 있는 포트에는 "포트 N은(는) 이 컴퓨터에서 이미 사용 중입니다. 그 포트를 쓰고 있는 것을 닫거나, 다른 포트를 고르십시오."라는 이유가 나옵니다. | 18181 |

스위치 옆에는 상태 표시가 붙어 있어, 스위치가 꺼져 있는 동안에는 **봉인됨**, 켜져 있는 동안에는 **열림**이라고 나옵니다. endpoint의 상태는 이 표시로 한눈에 읽을 수 있습니다.

endpoint 아래에는 제목이 따로 없는 집계가 있어, 페이지 더 아래의 **허용 범위** 스위치를 요약합니다. 첫 줄은 네 등급마다 켜져 있는 범위의 수를 보여 줍니다. 수 앞의 점은 그 등급의 범위가 하나라도 켜져 있는 동안 등급의 색으로 켜지고, 하나도 켜져 있지 않은 동안에는 회색입니다. 범위가 모두 켜져 있으면 5 **읽기**, 6 **구성**, 4 **조작**, 1 **복원**이라고 나옵니다. 그 아래 줄은 이것을 더해 "기능 묶음 16개 중 16개 열림"이라고 나오고, 조작이나 복원 범위가 하나라도 켜져 있는 동안에는 열린 묶음 가운데 살아 있는 설비에 쓸 수 있는 것의 수를 "실시간 쓰기 5개"라고 이어서 보여 줍니다. 범위의 스위치만 세므로, 스테이션이 얼마나 드러나 있는지 한눈에 읽을 수 있습니다. 전체 스위치가 꺼져 있는 동안 이 집계는 endpoint, 포트와 함께 회색이 되지만, 저장된 상태를 그대로 지키는 스위치를 계속 읽습니다. 그래서 스위치를 다시 켜는 순간 에이전트 접근이 여는 것을 보여 줍니다.

스위치가 꺼져 있는 동안 endpoint 아래의 **URL 복사**와 **포트**는 회색으로 남고, 둘 중 하나에 포인터를 올리면 이유가 나옵니다. "에이전트 접근이 꺼져 있습니다. 먼저 접근 섹션에서 켜십시오." **허용 범위** 카드도 회색이 된 스위치 위에 같은 문장을 보여 줍니다.

이 페이지의 모든 것은 자동으로 저장됩니다. 저장 단추는 없습니다.

## endpoint를 지키는 방식 {#how-the-endpoint-is-protected}

- **루프백 전용입니다.** 소켓은 `127.0.0.1`에만 묶이고 네트워크 인터페이스에는 결코 묶이지 않습니다. 공장 네트워크에서는 닿을 수 없습니다.
- **브라우저 요청은 거부됩니다.** 묶는 것만으로는 악의적인 웹 페이지가 자기 도메인을 127.0.0.1로 다시 묶는 일을 막지 못하므로, endpoint는 브라우저가 위조할 수 없는 두 헤더도 확인합니다. `Host`가 로컬이 아니거나 로컬이 아닌 `Origin`을 담은 요청은 세션을 열기도 전에 403으로 거부됩니다. 거부는 저마다 [Events](events)의 **Agent** 영역 아래에 기록되므로, 브라우저 탭에서 스테이션을 찔러 보면 자취가 남습니다.
- **endpoint 인증은 일부러 두지 않았습니다.** 관문은 전체 스위치와 범위마다의 스위치와 기록입니다. 언젠가 터널로 endpoint를 드러낸다면 인증은 그 터널에 있어야 합니다([ChatGPT와 그 밖의
  클라우드를 거치는 클라이언트](agent-clients)를 보십시오).
- **도구 목록은 켜 둔 범위와 같습니다.** 꺼진 범위의 도구는 아예 알려지지 않습니다. "안 된다고 답하는" 것이 아니라 그 자리에 없습니다. 스위치를 하나라도 바꾸면 endpoint가 다시 시작하므로, 에이전트가 보는 것은 언제나 사용자가 허용한 것과 같습니다. 두 도움말 도구가 유일한 예외입니다. 앱의 문서만 읽고 스테이션에 관한 것은 아무것도 읽지 않으므로, 스위치가 어떻게 되어 있든 endpoint와 함께 제공됩니다([도움말](agent-tools#help)).
