Network Operator MCP
Network Operator MCP
network-operator-mcp는 에이전트가 네트워크 디바이스 관리 인터페이스를 운영할 수 있게 하면서 디바이스 자격 증명을 MCP 서버 내부에 보관합니다.
서버는 다음 디바이스 백엔드를 지원합니다:
ssh-terminal: 대화형 네트워크 CLI를 위한 영구 SSH PTY.ssh-exec: 도구 호출당 표준 SSH exec 요청 하나.http-tplink-switch: TP-Link 스위치 WebUI API.http-zte-be7200: ZTE BE7200 Pro+ WebUI API.http-mellanox-onyx: Mellanox Onyx WebUI API.
서버는 명령, 프롬프트 또는 API 응답을 해석하지 않습니다. 에이전트와 선택된 디바이스 간에 요청과 응답을 전송할 뿐입니다.
테스트된 디바이스
제조업체 및 모델 | 소프트웨어 | 백엔드 |
Huawei S1730S-S48T4X-A1 | VRP 5.170 (V200R022C00SPC500) |
|
Huawei S5720-28P-LI-AC | VRP 5.170 (V200R011C10SPC600) |
|
Huawei S5720S-52P-LI-AC | VRP 5.170 (V200R011C10SPC600) |
|
Huawei FutureMatrix S6720S-S24S28X-A | VRP 5.170 (V200R022C00SPC500) |
|
MikroTik CCR2004-1G-12S+2XS (r3) | RouterOS 7.23.1 stable |
|
OpenWrt 및 ImmortalWrt 디바이스 | Various |
|
TP-Link TL-SG2226 | 2023 WebUI |
|
TP-Link TL-SG2024D | 2023 WebUI |
|
TP-Link TL-SE2206 | 2024 WebUI |
|
ZTE BE7200 Pro+ | V1.0.0.4B8.8000 |
|
Mellanox SN2700 | Onyx 3.7.1134 |
|
Related MCP server: mcp-ssh
구성
backends:
ssh-terminal:
connect_timeout_seconds: 15
default_quiet_timeout_ms: 1000
default_deadline_ms: 15000
default_response_limit_bytes: 200000
max_sessions: 10
session_idle_ttl_seconds: 600
max_session_lifetime_seconds: 3600
ssh-exec:
connect_timeout_seconds: 15
default_command_timeout_seconds: 60
http:
connect_timeout_seconds: 10
default_request_timeout_seconds: 30
max_response_bytes: 2000000
accounts:
ssh-operator:
username: netadmin
password: plaintext-password
web-operator:
username: webadmin
password: plaintext-password
zte-password:
password: plaintext-password
devices:
example-huawei:
type: ssh-terminal
host: 192.0.2.10
account: ssh-operator
example-tplink:
type: http-tplink-switch
host: 192.0.2.20
account: web-operator
example-zte:
type: http-zte-be7200
host: 192.0.2.30
account: zte-password
example-onyx:
type: http-mellanox-onyx
host: 192.0.2.40
account: web-operator
verify_tls: false여러 디바이스가 계정을 공유할 수 있습니다. SSH 계정은 password, 인라인 private_key, 선택적 private_key_passphrase를 사용할 수 있습니다. ZTE 백엔드는 해당 제품에 고정 WebUI 사용자 이름이 있으므로 비밀번호 전용 계정을 허용합니다.
HTTP는 기본적으로 포트 80을 사용하지만, http-mellanox-onyx는 기본적으로 HTTPS 포트 443을 사용합니다. 설정이 이러한 기본값과 다른 디바이스에는 scheme, port, verify_tls를 설정하세요. 전체 자리 표시자 구성은 config/devices.example.yaml에 있습니다.
MCP 도구
도구 | 디바이스 백엔드 | 용도 |
| 모두 | 구성된 디바이스 이름과 백엔드 유형을 나열합니다. |
|
| SSH exec 요청 하나를 실행합니다. |
|
| 디바이스의 터미널을 열거나 재사용합니다. |
|
| 열린 터미널을 나열합니다. |
|
| 터미널 입력을 쓰고 출력을 읽습니다. |
|
| 바이트 커서에서 출력을 읽습니다. |
|
| 디바이스의 터미널을 닫습니다. |
| HTTP 백엔드 | 인증된 WebUI API 요청을 보냅니다. |
HTTP 요청
http_request는 구성된 device, HTTP method, 디바이스 상대 path를 받습니다. 선택적 인수는 query, headers, body, body_base64, form, timeout_seconds입니다. body, body_base64, form 중 최대 하나만 제공하세요.
MCP 서버는 자격 증명, 쿠키, 디바이스 토큰을 관리합니다. 호출자는 자격 증명이 포함된 헤더를 제공할 수 없으며, 민감한 인증 헤더는 반환되지 않습니다. 에이전트 요청의 리디렉션은 자동으로 따르지 않고 에이전트에게 반환됩니다. 텍스트 응답은 직접 반환되고, 바이너리 응답은 base64를 사용하며 body_encoding을 base64로 설정합니다.
예:
{
"device": "example-zte",
"method": "POST",
"path": "/?_type=vueData&_tag=vuecfg_data",
"form": {
"IF_ACTION": "Get"
}
}SSH 터미널
각 터미널에는 디바이스 출력을 임시 트랜스크립트에 추가하는 백그라운드 리더가 있습니다. 첫 번째 exchange에 initial_output.next_cursor를 전달한 다음, 반환된 각 next_cursor를 계속 전달하세요. 조용한 타임아웃은 해당 간격 동안 새 바이트가 도착하지 않았음을 의미할 뿐이며, 명령이 완료되었음을 증명하지는 않습니다.
MCP 서버를 다시 시작하면 활성 SSH 연결이 반드시 닫히고 해당 트랜스크립트가 삭제됩니다. 디바이스에 대해 open_session을 다시 호출하고 새 초기 커서로 계속하세요.
상태
SSH 터미널은 디바이스 이름으로 키가 지정되며 MCP 클라이언트 세션에 속하지 않습니다. 도구는 터미널 세션 식별자를 노출하거나 받지 않습니다. Streamable HTTP 전송도 상태 비저장이므로 MCP 서버를 다시 시작해도 클라이언트가 더 이상 사용되지 않는 MCP 세션 식별자를 보유하지 않습니다.
서버 실행
구성 검증:
network-operator-mcp --config config/devices.local.yaml validate-configstdio로 실행:
network-operator-mcp --config config/devices.local.yaml serveStreamable HTTP로 실행:
network-operator-mcp --config config/devices.local.yaml serve \
--transport streamable-http --host 127.0.0.1 --port 8000서버는 sse 전송도 지원합니다.
보안 참고 사항
구성 파일에는 평문 자격 증명이 포함되어 있으므로 보호하세요.
SSH 서버 호스트 키는 검증되지 않습니다.
디바이스에 신뢰할 수 있는 인증서가 있는 경우 TLS 검증을 활성화된 상태로 유지하세요. WebUI 인증서를 검증할 수 없는 디바이스에만
verify_tls: false를 사용하세요.MCP 전송을 신뢰할 수 있는 에이전트와 사용자에게만 노출하세요. HTTP API 호출은 디바이스 구성을 변경할 수 있습니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
- emisarOAuthdev.emisar
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
- NoxgildOAuthcom.noxgild
Secure AI access to Windows, macOS, Linux computers and a hosted Cloud Browser.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables remote server management through SSH and SFTP, supporting command execution, file transfers, and interactive shell sessions. It allows for multiple concurrent connections using either password or SSH key authentication.1120 npm5MIT
- AlicenseBqualityDmaintenanceEnables secure SSH connections to remote servers for executing shell commands and managing active sessions. It supports authentication via passwords or private keys and provides optional host-based access control.4109 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute SSH commands on network devices using natural language, supporting multiple vendors and authentication methods for automated network management.-
- FlicenseBqualityCmaintenanceEnables remote management of TR-069 ACS (Auto Configuration Server) via SSH, including device management, configuration deployment, script execution, and server lifecycle control.32-