CML Administration
MCP Server
- Command:
cml-mcp (pip-installed, stdio transport)
- Requires:
CML_URL, CML_USERNAME, CML_PASSWORD environment variables
Available Tools
User Management
| Tool |
Parameters |
What It Does |
get_users |
none |
List all CML users |
create_user |
username, password, fullname?, email?, admin? |
Create a new CML user |
get_user |
user_id/username |
Get user details (labs, resource usage) |
update_user |
user_id/username, fields to update |
Update user properties |
delete_user |
user_id/username |
Delete a CML user |
Group Management
| Tool |
Parameters |
What It Does |
get_groups |
none |
List all CML groups |
create_group |
name, description?, members? |
Create a new group |
update_group |
group_id/name, fields to update |
Update group properties |
delete_group |
group_id/name |
Delete a group |
System Information
| Tool |
Parameters |
What It Does |
get_system_info |
none |
CML version, uptime, resource usage (CPU, RAM, disk) |
get_node_defs |
none |
List all available node definitions and their resource requirements |
get_licensing |
none |
License status, node count, expiration |
get_resource_usage |
none |
Current resource utilization across all labs |
Workflow: Onboard a New Lab User
When an admin wants to add a new team member:
- Check existing users:
get_users to see current user list
- Create the user:
create_user with their credentials
- Add to group (optional):
update_group to add user to a team group
- Verify:
get_user to confirm creation
- Share credentials: Report the username and CML URL to the admin (never share the password in Slack)
Workflow: Resource Capacity Check
Before building a large lab:
- Check system resources:
get_system_info for CPU, RAM, disk
- Check licensing:
get_licensing for available node count
- Check node definitions:
get_node_defs for per-node resource requirements
- Calculate: Does the planned lab fit within available resources?
- Report: "You have X GB RAM free, Y CPU cores available, Z node licenses remaining. Your planned lab needs A GB RAM and B nodes."
Workflow: System Health Report
For CML server health monitoring:
- System info:
get_system_info — version, uptime, resource usage
- Licensing:
get_licensing — license status and node count
- Resource usage:
get_resource_usage — breakdown by lab/user
- Active labs:
get_labs (from cml-lab-lifecycle) — list running labs
- Generate report: Summary of CML platform health
Resource Planning Guide
Typical per-node resource requirements:
| Node Type |
vCPUs |
RAM |
Disk |
| IOSv |
1 |
512 MB |
2 GB |
| IOSv L2 |
1 |
768 MB |
2 GB |
| CSR1000v / Cat8000v |
1 |
3 GB |
8 GB |
| NX-OS 9000v |
2 |
6 GB |
8 GB |
| IOS-XR 9000v |
2 |
8 GB |
16 GB |
| ASAv |
1 |
2 GB |
8 GB |
| Ubuntu Server |
1 |
512 MB |
8 GB |
| Unmanaged Switch |
0 |
0 |
0 |
| External Connector |
0 |
0 |
0 |
Rule of thumb: Plan for the CML host to have at least 2x the total RAM needed by all concurrent labs, plus 8 GB for the CML OS itself.
User Roles
| Role |
Capabilities |
| Admin |
Full access: create/delete users, manage all labs, system settings |
| User |
Create/manage own labs, view shared labs |
Workflow: Audit CML Usage
For tracking who's using what:
- List all users:
get_users
- For each user:
get_user to see their labs and resource usage
- List all labs:
get_labs with ownership info
- Check resource usage:
get_resource_usage for allocation breakdown
- Report: Table of users, their labs, running state, and resource consumption
- Identify stale labs: Labs that have been stopped for days — candidates for cleanup
Important Rules
- Admin operations require admin credentials — user management needs admin-level CML access
- Never share passwords in Slack — report usernames only, instruct admin to share credentials securely
- Check resources before big labs — don't let users build labs that exceed server capacity
- Monitor licensing — CML has node count limits; stay within license boundaries
- Record in GAIT — log all admin operations for audit trail
Environment Variables
CML_URL — CML server URL
CML_USERNAME — CML username (admin for full access)
CML_PASSWORD — CML password
CML_VERIFY_SSL — Verify SSL certificate (true/false)
1---2name: cml-admin3description: CML administration — user/group management, system info, licensing, resource monitoring. Use when creating CML users, checking license status, monitoring CML server resources, or auditing lab usage across teams.4license: Apache-2.05---6
7# CML Administration
8
9## MCP Server
10
11- **Command**: `cml-mcp` (pip-installed, stdio transport)
12- **Requires**: `CML_URL`, `CML_USERNAME`, `CML_PASSWORD` environment variables
13
14## Available Tools
15
16### User Management
17
18| Tool | Parameters | What It Does |
19|------|-----------|-------------|
20| `get_users` | none | List all CML users |
21| `create_user` | `username`, `password`, `fullname?`, `email?`, `admin?` | Create a new CML user |
22| `get_user` | `user_id`/`username` | Get user details (labs, resource usage) |
23| `update_user` | `user_id`/`username`, fields to update | Update user properties |
24| `delete_user` | `user_id`/`username` | Delete a CML user |
25
26### Group Management
27
28| Tool | Parameters | What It Does |
29|------|-----------|-------------|
30| `get_groups` | none | List all CML groups |
31| `create_group` | `name`, `description?`, `members?` | Create a new group |
32| `update_group` | `group_id`/`name`, fields to update | Update group properties |
33| `delete_group` | `group_id`/`name` | Delete a group |
34
35### System Information
36
37| Tool | Parameters | What It Does |
38|------|-----------|-------------|
39| `get_system_info` | none | CML version, uptime, resource usage (CPU, RAM, disk) |
40| `get_node_defs` | none | List all available node definitions and their resource requirements |
41| `get_licensing` | none | License status, node count, expiration |
42| `get_resource_usage` | none | Current resource utilization across all labs |
43
44## Workflow: Onboard a New Lab User
45
46When an admin wants to add a new team member:
47
481. **Check existing users**: `get_users` to see current user list
492. **Create the user**: `create_user` with their credentials
503. **Add to group** (optional): `update_group` to add user to a team group
514. **Verify**: `get_user` to confirm creation
525. **Share credentials**: Report the username and CML URL to the admin (never share the password in Slack)
53
54## Workflow: Resource Capacity Check
55
56Before building a large lab:
57
581. **Check system resources**: `get_system_info` for CPU, RAM, disk
592. **Check licensing**: `get_licensing` for available node count
603. **Check node definitions**: `get_node_defs` for per-node resource requirements
614. **Calculate**: Does the planned lab fit within available resources?
625. **Report**: "You have X GB RAM free, Y CPU cores available, Z node licenses remaining. Your planned lab needs A GB RAM and B nodes."
63
64## Workflow: System Health Report
65
66For CML server health monitoring:
67
681. **System info**: `get_system_info` — version, uptime, resource usage
692. **Licensing**: `get_licensing` — license status and node count
703. **Resource usage**: `get_resource_usage` — breakdown by lab/user
714. **Active labs**: `get_labs` (from cml-lab-lifecycle) — list running labs
725. **Generate report**: Summary of CML platform health
73
74## Resource Planning Guide
75
76Typical per-node resource requirements:
77
78| Node Type | vCPUs | RAM | Disk |
79|-----------|-------|-----|------|
80| IOSv | 1 | 512 MB | 2 GB |
81| IOSv L2 | 1 | 768 MB | 2 GB |
82| CSR1000v / Cat8000v | 1 | 3 GB | 8 GB |
83| NX-OS 9000v | 2 | 6 GB | 8 GB |
84| IOS-XR 9000v | 2 | 8 GB | 16 GB |
85| ASAv | 1 | 2 GB | 8 GB |
86| Ubuntu Server | 1 | 512 MB | 8 GB |
87| Unmanaged Switch | 0 | 0 | 0 |
88| External Connector | 0 | 0 | 0 |
89
90**Rule of thumb**: Plan for the CML host to have at least 2x the total RAM needed by all concurrent labs, plus 8 GB for the CML OS itself.
91
92## User Roles
93
94| Role | Capabilities |
95|------|-------------|
96| **Admin** | Full access: create/delete users, manage all labs, system settings |
97| **User** | Create/manage own labs, view shared labs |
98
99## Workflow: Audit CML Usage
100
101For tracking who's using what:
102
1031. **List all users**: `get_users`
1042. **For each user**: `get_user` to see their labs and resource usage
1053. **List all labs**: `get_labs` with ownership info
1064. **Check resource usage**: `get_resource_usage` for allocation breakdown
1075. **Report**: Table of users, their labs, running state, and resource consumption
1086. **Identify stale labs**: Labs that have been stopped for days — candidates for cleanup
109
110## Important Rules
111
112- **Admin operations require admin credentials** — user management needs admin-level CML access
113- **Never share passwords in Slack** — report usernames only, instruct admin to share credentials securely
114- **Check resources before big labs** — don't let users build labs that exceed server capacity
115- **Monitor licensing** — CML has node count limits; stay within license boundaries
116- **Record in GAIT** — log all admin operations for audit trail
117
118## Environment Variables
119
120- `CML_URL` — CML server URL
121- `CML_USERNAME` — CML username (admin for full access)
122- `CML_PASSWORD` — CML password
123- `CML_VERIFY_SSL` — Verify SSL certificate (true/false)