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: 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 도구
도구 | 디바이스 백엔드 | 용도 |
| 모두 | 구성된 디바이스 이름과 백엔드 유형을 나열합니다. |
|
| 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 installed
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 Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Issue, rotate and revoke scoped API-key passes for 25+ providers — the agent never sees a real key
Run commands and read/write files on your servers over Termalin's keyless tunnels (hosted MCP).
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables 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
- AlicenseAqualityCmaintenanceEnables 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.11194MIT
- 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.4210MIT
- AlicenseAqualityCmaintenanceBridges AI agents with network infrastructure, enabling secure read-only access to multiple vendor routers via SSH for natural language queries and troubleshooting.581MIT
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/bowling233/network-operator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server