cisco-iosxe-mcp
cisco-iosxe-mcp
Сервер MCP, который предоставляет устройства Cisco IOS-XE в качестве инструментов, которые может вызывать LLM-клиент. Именованные оперативные чтения, а также путь изменения конфигурации, который показывает точный список команд, применяет его под configure terminal revert timer, проверяет, что устройство все еще отвечает на новой сессии, и только затем подтверждает.
Он общается по MCP через Streamable HTTP, поэтому работает как собственный сервис в сети, а не как локальный подпроцесс одного клиента. Транспорт к устройству — это CLI IOS-XE через SSH, с помощью scrapli.
Создан для universal-network-director, многопротокольного сетевого менеджера с чат-управлением и шлюзом одобрения человека для каждой записи — но это автономный MCP-сервер и работает с любым MCP-клиентом.
Не аффилирован, не одобрен и не поддерживается Cisco Systems, Inc. «Cisco» и «IOS-XE» являются товарными знаками соответствующих владельцев и используются здесь только для описания того, с чем общается это программное обеспечение.
Модель безопасности
Двухшаговая, той же формы, что и путь Junos — с одним честным отличием, которое вы должны понять перед использованием.
Шаг 1 — предпросмотр показывает список команд, а не diff
preview_config_change возвращает точные команды, которые будут отправлены, устройство, на которое они пойдут, и текущее состояние строк, которые они затрагивают. Вы одобряете это.
Это слабее, чем Junos show | compare. Junos загружает кандидатскую конфигурацию, и устройство вычисляет реальный diff; у IOS-XE нет кандидатской конфигурации, поэтому нечего просить устройство сравнивать. Предпросмотр здесь — это изменение как написано, проверенное на соответствие текущей конфигурации — а не собственный отчет устройства о том, что получится. Читайте команды, а не только сводку.
Шаг 2 — применение под таймером отката
write_apply_config_block принимает только идентификатор предпросмотра — он не может применить то, что не было предпросмотрено. Команды вводятся под configure terminal revert timer <n>: действуют немедленно, но IOS-XE автоматически откатывает конфигурацию, если configure confirm не поступит вовремя. Затем этот сервер переподключается по новой SSH-сессии, чтобы доказать, что устройство все еще доступно, и подтверждает только в этом случае. Заблокируйте себя — и устройство отменяет изменение.
Необходимое условие для устройства, которого нет у Junos: функция
archiveIOS должна быть настроена (archive/path ...), иначе у таймера отката нет точки отката, и страховочная сеть молча отсутствует.get_archive_statusсообщает об этом для каждого устройства, аwrite_apply_config_blockотказывается, когда она отсутствует, вместо того чтобы применять без защиты.
Намеренно нет инструмента для произвольных команд. Каждое оперативное чтение выполняет команду, построенную из фиксированного шаблона плюс проверенные аргументы. Единственное место, где модель свободно составляет текст — блок конфигурации — заблокировано, показано человеку дословно и применяется под таймером отката.
Related MCP server: Itential MCP Server
Прочтите это, прежде чем направлять на production
Три из девятнадцати инструментов изменяют состояние, и этот сервер не спрашивает перед их выполнением. Префикс write_ — это соглашение, чтобы ваш клиент мог их блокировать.
Инструмент | Что делает | Риск |
| Применяет предпросмотренный список команд | Что бы ни говорили команды. Под таймером отката с проверкой доступности — но только если настроен |
| Копирует running-config в startup-config | Не записывает новую конфигурацию — делает текущую устойчивой к перезагрузке, включая изменения, о которых вы еще думали. |
| Перезагружает устройство, опционально с задержкой | Выводит устройство из строя. Не отменяемо. Несохраненная конфигурация теряется; сохраненная конфигурация возвращается. |
Обратите внимание на асимметрию, которую кодирует префикс: write_ означает «человек должен это одобрить», а не «это редактирует конфигурацию». write_save_config не добавляет никакой конфигурации и блокируется, потому что сделать изменение постоянным — это решение, которое кто-то должен принять обдуманно.
cancel_reload намеренно не заблокирован — это действие по восстановлению, и требование цикла одобрения для остановки ожидаемой перезагрузки — неправильный компромисс.
Ограничьте учетную запись устройства только чтением, если вы специально не намерены, чтобы записи работали. Этот контроль находится на устройстве, а не в этом коде.
Конечная точка MCP не имеет аутентификации
Этот сервер предоставляет свои инструменты любому, кто может достичь его порта. Нет токена, нет аутентификации клиента, нет TLS на стороне MCP.
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 читается только в том случае, если устройству это действительно нужно — учетная запись, уже имеющая привилегию 15, оказывается на # и не требует дополнительного повышения.
Используйте другой файл, чем у шлюза Junos. Раздельные контейнеры, содержащие раздельные учетные данные, — это причина, по которой серверы вообще разделены: ошибка в этом не может достичь ваших брандмауэров.
UID контейнера. Образ намеренно создает запись passwd для uid-1000. Транспорт
systemscrapli выполняет бинарникssh, а OpenSSH отказывается работать, когда у вызывающего uid нет записи в/etc/passwd— симптомом является вводящее в заблуждение «EOF reading from transport», а не что-то, называющее причину.
Запуск
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