An MCP server that provides access to common Cisco Modeling Labs (CML) operations.
mcp-name: io.github.xorrkaz/cml-mcp
cml-mcp brings the power of AI assistants to your network lab! This tool allows you to interact with Cisco Modeling Labs (CML) using natural language through AI applications like Claude Desktop, Claude Code, and Cursor.
Instead of clicking through menus or writing scripts, simply tell the AI what you want to do in plain English—like "Create a new lab with two routers and configure OSPF" or "Show me the running config on Router1"—and watch it happen automatically.
This is accomplished through the Model Context Protocol (MCP), a standard way for AI applications to interact with external tools and services. Think of it as giving your AI assistant a direct connection to your CML server.
The easiest way to get started is using uvx with Claude Desktop (or other MCP-compatible clients). The uvx tool automatically downloads and runs the server without manual installation steps.
Configuration: Find and edit your Claude Desktop configuration file (claude_desktop_config.json). Add the following:
{
"mcpServers": {
"Cisco Modeling Labs (CML)": {
"command": "uvx",
"args": ["cml-mcp"],
"env": {
"CML_URL": "https://your-cml-server.example.com",
"CML_USERNAME": "your_username",
"CML_PASSWORD": "your_password",
"CML_VERIFY_SSL": "false"
}
}
}
}
Important: Replace the placeholder values with your actual CML server details:
CML_URL: Your CML server address (e.g., https://cml.example.com or https://10.10.20.50)CML_USERNAME and CML_PASSWORD: Your CML login credentialsCML_VERIFY_SSL to "false" if using self-signed certificates (common in lab environments)Need more capabilities?
cml-mcp[pyats] instead of cml-mcp in the argsWhere to find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonThe server provides 47 MCP tools organized into the following categories:
Once configured, restart your MCP client (e.g., Claude Desktop) and start chatting! The AI assistant now has direct access to your CML server and can help you build and manage network labs through natural conversation.
Here are some example prompts to try:
Getting Started:
Building Labs:
Configuration & Testing:
Complete Workflow Example:
Here's a sequence of prompts that demonstrates building and testing a complete lab:
Here's a demo showing it working in Claude Desktop:

If your LLM tool supports a system prompt, or you want to provide some richer initial context, here's a good example courtesy of Hank Preston:
You are a network lab assistant specializing in supporting Cisco Modeling Labs (CML). You provide a natural language interface for many common lab activities such as:
- Creating new lab
- Adding nodes to a lab
- Creating interfaces between nodes
- Configuring nodes
- Creating annotations
You have access to tools to access the CML server.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
For development setup, testing, and code style information, see DEVELOPMENT.md.
Make sure you've installed the package with all extras if you need PyATS support:
uvx cml-mcp[pyats] # For uvx installations
If you're using a self-signed certificate on your CML server, set CML_VERIFY_SSL=false in your environment configuration.
cml-mcp[pyats]PYATS_USERNAME, PYATS_PASSWORD, and PYATS_AUTH_PASS are set correctlyFor more troubleshooting help, see INSTALLATION.md.
The MCP server portion of this project is licensed under the BSD 2-Clause "Simplified" License. However, it leverages the pydantic schema typing code from CML itself, which is covered under a proprietary Cisco license.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx cml-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-xorrkaz-cml-mcp": {
"command": "uvx",
"args": [
"cml-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceCisco Modeling Labs CML works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.