workspace/skills/cml-lab-lifecycle/SKILL.md
Cisco CML lab lifecycle management — create, start, stop, wipe, delete, clone, import/export labs. Use when building a network lab, starting or stopping a CML lab, cloning a topology, or importing lab YAML files.
npx skillsauth add automateyournetwork/netclaw cml-lab-lifecycleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
cml-mcp (pip-installed, stdio transport)CML_URL, CML_USERNAME, CML_PASSWORD environment variablesCML_VERIFY_SSL (default: true)| Tool | Parameters | What It Does |
|------|-----------|-------------|
| create_lab | title | Create a new empty lab with a title |
| get_lab | lab_id or lab_title | Get lab details (state, node count, link count) |
| get_labs | none | List all labs on the CML server |
| start_lab | lab_id or lab_title | Start all nodes in a lab (boot the topology) |
| stop_lab | lab_id or lab_title | Stop all nodes in a lab (graceful shutdown) |
| wipe_lab | lab_id or lab_title | Wipe lab node configurations (reset to factory) |
| delete_lab | lab_id or lab_title | Delete a lab permanently |
| Tool | Parameters | What It Does |
|------|-----------|-------------|
| import_lab | topology (YAML string) | Import a lab from CML topology YAML |
| export_lab | lab_id or lab_title | Export a lab as CML topology YAML |
| clone_lab | lab_id or lab_title | Clone an existing lab (deep copy) |
| download_lab_configs | lab_id or lab_title | Download all node configs from a running lab |
When a user says something like "build me a 3-router OSPF lab" in Slack:
create_lab with a descriptive titlestart_lab to boot everything"Build me a 3-router OSPF lab" → create_lab "OSPF Lab - 3 Routers" → create_node x3 (IOSv: R1, R2, R3) → create_interface + create_link (R1-R2, R2-R3, R1-R3 full mesh) → set_node_config for each (OSPF area 0, loopbacks, point-to-point links) → start_lab → execute_command: "show ip ospf neighbor" on each router → Report: "Lab ready! R1, R2, R3 all have FULL OSPF adjacencies."
"Add a 4th router to the OSPF lab" → stop_lab (topology changes require stopped state) → create_node R4 (IOSv) → create_interface + create_link (R4 to R2 and R3) → set_node_config for R4 (OSPF area 0) → Update R2 and R3 configs if needed → start_lab → Verify all 4 routers have adjacencies
"Create a lab from this YAML topology" → import_lab with the provided YAML → start_lab → Report node count, link count, state
"Clone the OSPF lab and add BGP peering" → clone_lab "OSPF Lab - 3 Routers" → "OSPF+BGP Lab" → Modify configs to add BGP router stanzas → start_lab → Verify both OSPF and BGP adjacencies
When a user is done with a lab:
stop_lab — graceful shutdown of all nodesexport_lab)wipe_lab to reset node configs (if reusing later)delete_lab to free CML resourcesWhen a user wants to experiment with a variant of an existing lab:
clone_lab creates a deep copystart_lab on the new copyWhen a user wants to share a lab topology:
export_lab returns CML YAML topologyLabs go through these states:
| State | Meaning |
|-------|---------|
| DEFINED_ON_CORE | Lab exists but no nodes are running |
| STARTED | All (or some) nodes are booting/running |
| STOPPED | All nodes have been shut down |
| BOOTED | All nodes have finished booting |
"Create a CCIE routing lab with:
- 4 x IOSv routers (R1-R4)
- 2 x IOSv L2 switches (SW1-SW2)
- Full mesh between R1-R4
- SW1 connecting R1 and R2, SW2 connecting R3 and R4"
"Build a DC lab:
- 2 x NX-OS spines
- 4 x NX-OS leaves
- 1 x external router (IOSv)
- Spine-leaf full mesh, external router to both spines"
"Create an SP lab:
- 4 x IOS-XR routers (PE1, PE2, P1, P2)
- 2 x IOSv CE routers
- PE-P full mesh, CE1 to PE1, CE2 to PE2"
get_labs first to see what already exists — avoid duplicate lab namesCML_URL — CML server URL (e.g., https://cml.example.com)CML_USERNAME — CML usernameCML_PASSWORD — CML passwordCML_VERIFY_SSL — Verify SSL certificate (true/false)tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
3D network topology visualization and interactive digital twin in Unreal Engine 5.8 via the built-in UE5 MCP server.
testing
Human-in-the-loop escalation via HumanRail — route low-confidence agent decisions, pre-destructive operation approvals, and ambiguous incident tickets to real human engineers. Human answers are verified and returned as structured output. Workers are paid via Lightning Network. Use when the agent is uncertain, when a destructive change needs explicit human sign-off beyond a ServiceNow CR, or when an ambiguous ticket requires human triage before automated handling.
testing
IPv4 and IPv6 subnet calculator - CIDR breakdown, usable hosts, previous/next subnets, address classification, VLSM planning, and dual-stack analysis. Use when calculating subnets, figuring out how many hosts fit in a prefix, planning IP addressing, getting wildcard masks for ACLs, or checking if two IPs are in the same subnet.