cml
A Model Context Protocol (MCP) Server for Cisco Modeling Labs (CML)
claude mcp add --transport stdio xorrkaz-cml-mcp uvx cml-mcp \ --env CML_URL="https://your-cml-server.example.com" \ --env CML_PASSWORD="your_password" \ --env CML_USERNAME="your_username" \ --env CML_VERIFY_SSL="false"
How to use
This MCP server provides AI-assisted control over Cisco Modeling Labs (CML) by exposing a wide range of tools through the MCP interface. It allows you to create and manage labs, add and configure nodes, connect interfaces, apply link conditioning, run device commands (via PyATS), capture and retrieve PCAP files, and manage visual annotations within labs. When connected through an MCP client (such as Claude Desktop), you can issue natural language prompts like 'Create a lab with two routers and configure OSPF' or 'Show me the running config for Router1,' and the server translates those requests into CML actions. The available tools are organized into categories including Lab Management, Node Management, Interface & Link Management, Annotations, Packet Capture, User & Group Management, and System Information, enabling end-to-end lab lifecycle management from a single interface. This setup emphasizes modularity, security via access control lists in HTTP mode, and the ability to run complex sequences of actions across labs and devices.
To use it, configure your MCP client to point at the uvx-based server (as shown in the Quick Start configuration), provide your CML credentials and server URL, and restart your MCP client. Once connected, you can start issuing prompts that leverage the 47+ MCP tools to script lab creation, topology definitions, lab/start/stop operations, node configuration, CLI command execution, packet capture retrieval, and more. The system supports running commands on devices via PyATS and retrieving console logs for troubleshooting, making it a powerful automation layer over your CML environment.
How to install
Prerequisites
- Python 3.12 or later
- Cisco Modeling Labs (CML) 2.9 or later
- uv (Python package manager)
- Access to a CML server with reachable URL and admin credentials
Installation steps
-
Install uv and the MCP server package (example assumes a prepackaged cml-mcp server compatible with uvx):
pip install uv uv install cml-mcp
-
Verify Python environment and dependencies are available. Ensure network access to the CML server and that the CML URL, username, and password will be provided at runtime via environment variables.
-
Configure Claude Desktop or your MCP client with the provided configuration (see Quick Start in the README) and save it to claude_desktop_config.json or the equivalent for your client.
-
Run the MCP server via uvx (as shown in the Quick Start snippet) and connect your MCP client to the server. If you choose other deployment modalities (Docker, Windows WSL, HTTP server mode), follow the INSTALLATION.md linked in the README for platform-specific steps.
-
Restart your MCP client to establish the connection and begin issuing natural language prompts to manage CML labs.
Additional notes
Tips and common considerations:
- Ensure CML_URL is reachable from the machine running the MCP server and that proper SSL settings are configured (set CML_VERIFY_SSL to false if using self-signed certs).
- For device CLI command execution, you can switch to the cml-mcp[pyats] variant in your args if you need PyATS-based command execution.
- If you want HTTP mode access control, configure the YAML ACL file to limit which users can access specific tools.
- The configuration example uses the logical display name 'Cisco Modeling Labs (CML)'; you can rename it in your MCP client configuration to match your environment.
- When upgrading CML or the MCP server, review compatibility notes in INSTALLATION.md to ensure tool modules remain aligned with CML versions.
- Keep your MCP tokens and credentials secure; avoid embedding sensitive data in shared configuration files.
Related MCP Servers
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
mcp-yfinance
Real-time stock API with Python, MCP server example, yfinance stock analysis dashboard
pfsense
pfSense MCP Server enables security administrators to manage their pfSense firewalls using natural language through AI assistants like Claude Desktop. Simply ask "Show me blocked IPs" or "Run a PCI compliance check" instead of navigating complex interfaces. Supports REST/XML-RPC/SSH connections, and includes built-in complian
cloudwatch-logs
MCP server from serkanh/cloudwatch-logs-mcp
servicenow-api
ServiceNow MCP Server and API Wrapper
the -company
TheMCPCompany: Creating General-purpose Agents with Task-specific Tools