cisco-iosxe-mcp
cisco-iosxe-mcp
Cisco IOS-XE 장치를 LLM 클라이언트가 호출할 수 있는 도구로 노출하는 MCP 서버입니다. 명명된 운영 읽기(named operational reads)와 더불어 구성 변경 경로(configuration-change path)를 제공합니다. 이 경로는 정확한 명령 목록을 보여주고, configure terminal revert timer 아래에서 적용한 후 새 세션에서 장치가 여전히 응답하는지 확인한 다음에야 확정(confirm)합니다.
이 서버는 Streamable HTTP를 통해 MCP를 사용하므로, 단일 클라이언트의 로컬 하위 프로세스가 아닌 네트워크 상에서 자체 서비스로 실행됩니다. 장치로의 전송은 scrapli를 통해 SSH를 통한 IOS-XE CLI를 사용합니다.
universal-network-director를 위해 구축되었습니다. 이는 모든 쓰기(write)에 인간 승인 게이트(human approval gate)가 있는 채팅 기반 다중 벤더 네트워크 관리자입니다. 그러나 이는 독립형 MCP 서버이며 모든 MCP 클라이언트와 함께 작동합니다.
Cisco Systems, Inc.의 계열사, 보증 또는 지원을 받지 않습니다. "Cisco" 및 "IOS-XE"는 해당 소유자의 상표이며, 이 소프트웨어가 통신하는 대상을 설명하는 데에만 사용됩니다.
안전 모델
Junos 경로와 동일한 형태의 두 단계 과정입니다. 단, 사용하기 전에 반드시 이해해야 하는 한 가지 중요한 차이점이 있습니다.
1단계 — 미리보기는 차이(diff)가 아닌 명령 목록을 보여줍니다
preview_config_change는 전송될 정확한 명령, 해당 명령이 적용될 장치, 그리고 명령이 영향을 주는 라인의 현재 상태를 반환합니다. 사용자가 이를 승인합니다.
이는 Junos의 show | compare보다 약합니다. Junos는 후보 구성을 로드하고 장치가 실제 차이를 계산합니다. 그러나 IOS-XE에는 후보 구성이 없으므로 장치에 차이를 요청할 대상이 없습니다. 여기서의 미리보기는 작성된 대로의 변경 사항이며, 현재 구성된 내용과 비교하여 확인된 것입니다. 장치 자체가 결과를 계산한 것이 아닙니다. 요약뿐만 아니라 명령 자체를 읽으십시오.
2단계 — 되돌리기 타이머 아래에서 적용
write_apply_config_block은 미리보기 ID만 허용합니다. 미리보기되지 않은 것은 적용할 수 없습니다. 명령은 configure terminal revert timer <n> 아래에 들어갑니다: 즉시 적용되지만, configure confirm이 제때 도착하지 않으면 IOS-XE가 자동으로 구성을 롤백합니다. 그런 다음 이 서버는 새 SSH 세션에서 다시 연결하여 장치에 계속 접근 가능한지 확인하고, 접근 가능한 경우에만 확정(confirm)합니다. 자신을 잠그면 장치가 변경 사항을 취소합니다.
Junos에는 없는 장치 전제 조건: IOS
archive기능이 구성되어 있어야 합니다(archive/path ...). 그렇지 않으면 되돌리기 타이머에 롤백 지점이 없으며 안전망이 조용히 사라집니다.get_archive_status는 장치별로 이를 보고하며,write_apply_config_block은 이 기능이 없을 경우 보호되지 않은 상태로 적용하는 것을 거부합니다.
의도적으로 자유 형식 명령 도구가 없습니다. 모든 운영 읽기는 고정 템플릿과 검증된 인수로부터 구성된 명령을 실행합니다. 모델이 자유롭게 텍스트를 구성하는 유일한 곳인 구성 블록(configuration block)은 게이트(gate)가 있으며, 인간에게 그대로 표시되고, 되돌리기 타이머 아래에서 적용됩니다.
Related MCP server: Itential MCP Server
프로덕션 환경에 적용하기 전에 읽으십시오
19개의 도구 중 세 개는 상태를 변경하며, 이 서버는 실행 전에 묻지 않습니다. write_ 접두사는 사용자 클라이언트가 이 도구들을 게이트할 수 있도록 하는 규칙입니다.
도구 | 수행 작업 | 위험 |
| 미리보기된 명령 목록을 적용합니다 | 명령이 말하는 대로. 연결 가능성 확인 기능이 있는 되돌리기 타이머 뒤에 있지만 — |
| running-config를 startup-config에 복사합니다 | 새 구성을 작성하지 않습니다 — 현재 구성을 재부팅 시 유지되도록 하며, 아직 결정 중인 변경 사항도 포함됩니다. |
| 선택적 지연 후 장치를 재부팅합니다 | 장치를 다운시킵니다. 되돌릴 수 없습니다. 저장되지 않은 구성은 손실됩니다. 저장된 구성은 다시 돌아옵니다. |
접두사가 인코딩하는 비대칭성에 유의하십시오: write_는 "인간이 이를 승인해야 함"을 의미하며, "이것이 구성을 편집함"을 의미하지 않습니다. write_save_config는 구성을 전혀 추가하지 않으며, 변경 사항을 영구적으로 만드는 것은 누군가가 신중하게 결정해야 하기 때문에 게이트됩니다.
cancel_reload는 의도적으로 게이트되지 않았습니다 — 이는 복구 작업이며, 보류 중인 재부팅을 중지하기 위해 승인 왕복(approval round-trip)을 요구하는 것은 잘못된 트레이드오프입니다.
쓰기(write)가 의도적으로 작동하지 않는 한 장치 계정을 읽기 전용으로 범위를 지정하십시오. 그 제어는 이 코드가 아닌 장치에 있습니다.
MCP 엔드포인트에는 인증이 없습니다
이 서버는 포트에 연결할 수 있는 모든 사람에게 도구를 노출합니다. 토큰, 클라이언트 인증, MCP 측의 TLS가 없습니다.
MCP_HOST는 이러한 이유로 기본값이 127.0.0.1입니다. 컨테이너 이미지는 0.0.0.0으로 설정하는데, 이는 불가피합니다. 따라서 컨테이너의 포트를 게시하면 라우터에 대한 인증되지 않은 경로가 해당 인터페이스에 생깁니다. 내부 네트워크에서 클라이언트와 함께 유지하거나, 앞단에서 TLS 및 인증을 종료하십시오.
장치 인벤토리
장치 자격 증명은 컨테이너에 읽기 전용으로 마운트된 JSON 파일에 저장됩니다. 이미지에 포함되지 않으며, 커밋되지 않습니다. 여기에는 평문 SSH 자격 증명이 포함되므로 chmod 600으로 설정하고 컨테이너가 실행되는 uid가 소유해야 합니다.
Junos 게이트웨이의 인벤토리와 동일한 형식이므로 하나의 형식만 배우면 되며, 선택적 enable_password가 추가됩니다:
{
"csr-lab": {
"ip": "192.0.2.53",
"port": 22,
"username": "automation",
"auth": { "type": "password", "password": "..." }
}
}enable_password는 장치가 실제로 필요할 때만 읽힙니다. 이미 privilege 15인 계정은 #에 도착하며 추가 에스컬레이션이 필요하지 않습니다.
Junos 게이트웨이와 다른 파일을 사용하십시오. 별도의 컨테이너가 별도의 자격 증명을 보유하는 것이 서버를 분리한 이유입니다. 이 서버의 버그가 방화벽에 도달할 수 없습니다.
컨테이너 uid. 이미지는 의도적으로 uid-1000 passwd 항목을 생성합니다. scrapli의
system전송은ssh바이너리를 실행하며, OpenSSH는 호출 uid에/etc/passwd항목이 없으면 실행을 거부합니다. 증상은 원인을 명시하지 않고 "전송에서 EOF 읽기"라는 오해의 소지가 있는 메시지입니다.
실행 방법
docker build -t cisco-iosxe-mcp .
docker run --rm \
-v "$PWD/secrets/devices.json:/app/config/devices.json:ro" \
--user 1000:1000 \
-p 127.0.0.1:8004:8004 \
cisco-iosxe-mcp변수 | 기본값 | 의미 |
|
| 장치 인벤토리 경로 |
|
| 미리보기가 유효한 시간(초) |
|
| 바인드 주소 (이미지는 |
|
| 바인드 포트 |
테스트
docker run --rm cisco-iosxe-mcp python test_arg_validation.py
docker run --rm cisco-iosxe-mcp python test_reload.py둘 다 오프라인입니다. 장치 접촉이 필요 없고 자격 증명이 필요 없습니다. test_reload.py는 실제 IOS-XE 상자가 reload in 5, reload cancel 및 확인 프롬프트에 대해 보낸 정확한 바이트를 재생하며, 저장 프롬프트가 나타나지 않는 경우도 포함합니다.
도구 참조
TOOLS.md에는 도구별 참조가 있습니다: 인수, 각각이 반환하는 항목, 승인이 필요한 항목, 게이트 설계 뒤의 추론.
라이선스
Apache-2.0. LICENSE 참조.
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 Servers
- Alicense-qualityAmaintenanceAn MCP server that allows LLMs to create, configure, validate, and explain Cisco Packet Tracer network topologies. It provides a comprehensive suite of tools for generating deployment scripts, CLI configurations, and automated network troubleshooting.129MIT

Itential MCP Serverofficial
AlicenseBqualityAmaintenanceMCP server for connecting LLMs to Itential Platform, enabling network automation, workflow orchestration, and platform monitoring.7635GPL 3.0- Alicense-qualityCmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
- Flicense-qualityDmaintenanceMCP server for Cisco Catalyst SD-WAN Manager (vManage) that exposes REST API as tools for AI assistants to query and manage SD-WAN fabric, including device management, monitoring, templates, and policies.8
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
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/anderson-jason573/cisco-iosxe-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server