Skip to main content
Glama
bowling233

Network Operator MCP

by bowling233

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)

ssh-terminal

Huawei S5720-28P-LI-AC

VRP 5.170 (V200R011C10SPC600)

ssh-terminal

Huawei S5720S-52P-LI-AC

VRP 5.170 (V200R011C10SPC600)

ssh-terminal

Huawei FutureMatrix S6720S-S24S28X-A

VRP 5.170 (V200R022C00SPC500)

ssh-terminal

MikroTik CCR2004-1G-12S+2XS (r3)

RouterOS 7.23.1 stable

ssh-exec

OpenWrt 및 ImmortalWrt 디바이스

Various

ssh-exec

TP-Link TL-SG2226

2023 WebUI

http-tplink-switch

TP-Link TL-SG2024D

2023 WebUI

http-tplink-switch

TP-Link TL-SE2206

2024 WebUI

http-tplink-switch

ZTE BE7200 Pro+

V1.0.0.4B8.8000

http-zte-be7200

Mellanox SN2700

Onyx 3.7.1134

http-mellanox-onyx

Related MCP server: SSH MCP Server

구성

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 도구

도구

디바이스 백엔드

용도

list_devices

모두

구성된 디바이스 이름과 백엔드 유형을 나열합니다.

ssh_execute

ssh-exec

SSH exec 요청 하나를 실행합니다.

open_session

ssh-terminal

디바이스의 터미널을 열거나 재사용합니다.

list_sessions

ssh-terminal

열린 터미널을 나열합니다.

exchange

ssh-terminal

터미널 입력을 쓰고 출력을 읽습니다.

read_session

ssh-terminal

바이트 커서에서 출력을 읽습니다.

close_session

ssh-terminal

디바이스의 터미널을 닫습니다.

http_request

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_encodingbase64로 설정합니다.

예:

{
  "device": "example-zte",
  "method": "POST",
  "path": "/?_type=vueData&_tag=vuecfg_data",
  "form": {
    "IF_ACTION": "Get"
  }
}

SSH 터미널

각 터미널에는 디바이스 출력을 임시 트랜스크립트에 추가하는 백그라운드 리더가 있습니다. 첫 번째 exchangeinitial_output.next_cursor를 전달한 다음, 반환된 각 next_cursor를 계속 전달하세요. 조용한 타임아웃은 해당 간격 동안 새 바이트가 도착하지 않았음을 의미할 뿐이며, 명령이 완료되었음을 증명하지는 않습니다.

MCP 서버를 다시 시작하면 활성 SSH 연결이 반드시 닫히고 해당 트랜스크립트가 삭제됩니다. 디바이스에 대해 open_session을 다시 호출하고 새 초기 커서로 계속하세요.

상태

SSH 터미널은 디바이스 이름으로 키가 지정되며 MCP 클라이언트 세션에 속하지 않습니다. 도구는 터미널 세션 식별자를 노출하거나 받지 않습니다. Streamable HTTP 전송도 상태 비저장이므로 MCP 서버를 다시 시작해도 클라이언트가 더 이상 사용되지 않는 MCP 세션 식별자를 보유하지 않습니다.

서버 실행

구성 검증:

network-operator-mcp --config config/devices.local.yaml validate-config

stdio로 실행:

network-operator-mcp --config config/devices.local.yaml serve

Streamable 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 호출은 디바이스 구성을 변경할 수 있습니다.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables seamless SSH operations including secure connections, file transfers, interactive shell sessions, and Docker container management on remote servers. Supports both password and SSH key authentication with credential management and connection pooling.
    18
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    11
    19
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    4
    210
    MIT

Latest Blog Posts

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/bowling233/network-operator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server