# Cisco Modeling Labs CML

MCP-сервер связывает ИИ-агента с Cisco Modeling Labs: он помогает создавать лаборатории, управлять узлами и получать их конфигурации.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 76
- Автор: xorrkaz
- Лицензия: BSD-2-Clause · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/xorrkaz/cml-mcp
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/cisco-modeling-labs-cml

## Что делает

Через агента можно создавать пустые лаборатории или строить топологию по описанию, запускать и останавливать лаборатории, а также проверять состояние узлов и связей. Сервер умеет отправлять CLI-команды работающим устройствам, получать консольные журналы и собирать PCAP с сетевых соединений. Для выполнения команд на виртуальных устройствах нужна сборка `cml-mcp[pyats]`.

Для работы нужны Python 3.12, 3.13 или 3.14, `uv` и Cisco Modeling Labs 2.9 или новее. Подключение задаётся через `CML_URL`, `CML_USERNAME` и `CML_PASSWORD`; для команд устройств также предусмотрены переменные PyATS. В конфигурации по умолчанию проверяется TLS-сертификат, а CML поставляется с самоподписанным сертификатом, поэтому при такой настройке значение `CML_VERIFY_SSL` нужно поменять на `false`.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `CML_URL`, `CML_USERNAME`, `CML_PASSWORD`, `PYATS_USERNAME`, `PYATS_PASSWORD`, `PYATS_AUTH_PASS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add cml-mcp -e CML_URL=<CML_URL> -e CML_USERNAME=<CML_USERNAME> -e CML_PASSWORD=<CML_PASSWORD> -e PYATS_PASSWORD=<PYATS_PASSWORD> -e PYATS_AUTH_PASS=<PYATS_AUTH_PASS> -- uvx cml-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from cml-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add cisco-modeling-labs-cml --env CML_URL=<CML_URL> --env CML_USERNAME=<CML_USERNAME> --env CML_PASSWORD=<CML_PASSWORD> --env PYATS_USERNAME=<PYATS_USERNAME> --env PYATS_PASSWORD=<PYATS_PASSWORD> -- uvx cml-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from cml-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "cisco-modeling-labs-cml": {
            "command": "uvx",
            "args": [
                "cml-mcp"
            ],
            "env": {
                "CML_URL": "<CML_URL>",
                "CML_USERNAME": "<CML_USERNAME>",
                "CML_PASSWORD": "<CML_PASSWORD>",
                "PYATS_USERNAME": "<PYATS_USERNAME>",
                "PYATS_PASSWORD": "<PYATS_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from cml-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "cisco-modeling-labs-cml": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "cml-mcp"
            ],
            "env": {
                "CML_URL": "<CML_URL>",
                "CML_USERNAME": "<CML_USERNAME>",
                "CML_PASSWORD": "<CML_PASSWORD>",
                "PYATS_USERNAME": "<PYATS_USERNAME>",
                "PYATS_PASSWORD": "<PYATS_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from cml-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e CML_URL=<CML_URL> -e CML_USERNAME=<CML_USERNAME> -e CML_PASSWORD=<CML_PASSWORD> -e PYATS_USERNAME=<PYATS_USERNAME> -e PYATS_PASSWORD=<PYATS_PASSWORD> cisco-modeling-labs-cml uvx cml-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from cml-mcp <команда>

## Когда брать
- создать лабораторию CML с заданной топологией
- проверить состояние узлов и сетевых связей
- запустить или остановить лабораторию
- получить CLI-конфигурацию и консольный журнал узла
- снять PCAP с сетевого соединения

## Примеры запросов агенту
- Создай лабораторию CML с двумя маршрутизаторами и настрой OSPF.
- Покажи текущую конфигурацию Router1 и его консольный журнал.
- Останови лабораторию и собери PCAP с выбранной сетевой связи.

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/nevibecode/mcp/oh-my-posh-validator.md) — MCP-сервер · ★ 23643
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727
- [Coder](https://affpapa.org/nevibecode/mcp/coder.md) — MCP-сервер · ★ 17160
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
