Enables interaction with Cisco Modeling Labs (CML) for automated lab creation, topology management, device configuration, and network testing through the Model Context Protocol interface.
Provides a Python-based toolkit for managing Cisco Modeling Labs environments, supporting educational and development purposes with network device simulation and configuration.
Claude-Modeling-Labs MCP Server
A comprehensive, modular toolkit for interacting with Cisco Modeling Labs (CML) through the Model Context Protocol (MCP) interface. This server enables automated lab creation, topology management, device configuration, and network testing for educational and development purposes.
Features
Core Capabilities
- Lab Management: Create, start, stop, and delete CML labs
- Topology Building: Add routers, switches, and create network links
- Device Configuration: Apply and retrieve device configurations
- Console Access: Execute commands on network devices
- Network Discovery: Inspect lab topologies, nodes, and interfaces
Key Benefits
- Modular Architecture: Clean separation of concerns across handlers
- Educational Focus: Perfect for networking students and instructors
- Automation Ready: Designed for agentic AI tutoring systems
- Windows Compatible: Modular design resolves previous Windows compatibility issues
Installation
Prerequisites
- Python 3.8 or higher
- Access to a Cisco Modeling Labs server
- Valid CML credentials
Quick Start
- Clone or download this repository
- Install dependencies:
- Run the MCP server:
Development Installation
Usage
Initialize Connection
Basic Lab Operations
Device Configuration
Console Commands
Architecture
The modular design separates functionality into focused handlers:
Key Design Principles
- Separation of Concerns: Each handler focuses on one aspect of CML management
- Clean Dependencies: Minimal coupling between modules
- Error Handling: Consistent error handling across all operations
- Windows Compatibility: Modular structure avoids file size limitations
Available Tools
Lab Management
initialize_client()
- Authenticate with CML serverlist_labs()
- List all available labscreate_lab()
- Create a new labget_lab_details()
- Get detailed lab informationdelete_lab()
- Delete a labstart_lab()
- Start lab executionstop_lab()
- Stop lab executionwait_for_lab_nodes()
- Wait for nodes to initializelist_node_definitions()
- List available device types
Topology Management
get_lab_nodes()
- List nodes in a labadd_node()
- Add a device to a labcreate_router()
- Create a router (iosv)create_switch()
- Create a switch (iosvl2)get_node_interfaces()
- List node interfacesget_physical_interfaces()
- Get physical interfaces onlycreate_interface()
- Create new interface on a nodeget_lab_links()
- List all links in a labcreate_link_v3()
- Create link between specific interfaceslink_nodes()
- Automatically link two nodesdelete_link()
- Remove a linkget_lab_topology()
- Get complete topology summary
Configuration Management
configure_node()
- Apply configuration to a deviceget_node_config()
- Retrieve device configuration
Console Operations
open_console_session()
- Open console access to deviceclose_console_session()
- Close console sessionsend_console_command()
- Execute single commandsend_multiple_commands()
- Execute multiple commandscheck_interfaces()
- Check interface statusget_diagnostic_recommendations()
- Get troubleshooting suggestions
Educational Use Cases
This toolkit is designed to support networking education through:
Automated Lab Creation
- Dynamic topology generation based on learning objectives
- Pre-configured scenarios for specific networking concepts
- Rapid iteration and experimentation
AI-Powered Tutoring
- Agentic systems can create custom labs for individual students
- Real-time guidance and troubleshooting assistance
- Adaptive learning paths based on student progress
Curriculum Integration
- Support for various networking topics (OSPF, BGP, VLAN, STP, etc.)
- Scalable from basic connectivity to complex enterprise scenarios
- Integration with existing learning management systems
Contributing
This project follows a modular architecture to support easy extension and maintenance:
- Adding New Tools: Create new functions in the appropriate handler module
- New Handler Categories: Add new handler files and register them in
server.py
- Testing: Each module can be tested independently
- Documentation: Update both code comments and this README
License
MIT License - see LICENSE file for details.
Support
For issues, questions, or contributions, please refer to the project repository or documentation.
Version: 2.0.0
Authors: Claude AI Assistant
Purpose: Educational networking automation and AI-powered tutoring
This server cannot be installed
A comprehensive toolkit that enables automated interaction with Cisco Modeling Labs (CML) for creating network topologies, configuring devices, and managing lab environments.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides LLM Agents with a comprehensive toolset for IP geolocation, network diagnostics, system monitoring, cryptographic operations, and QR code generation.Last updated -1634TypeScriptApache 2.0
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -17PythonApache 2.0
- -securityFlicense-qualityAn MCP server that allows Claude to interact with local LLMs running in LM Studio, providing access to list models, generate text, and use chat completions through local models.Last updated -Python
- -securityAlicense-qualityConnects local LLMs to external tools (calculator, knowledge base) via MCP protocol, enabling automatic tool detection and execution to enhance query responses.Last updated -PythonMIT License