Releases: xorrkaz/cml-mcp
0.26.0
HTTP Mode: Session Caching
Authenticated CML sessions are now cached and reused across requests in HTTP mode, eliminating a login round-trip on every tool call. The cache uses an idle TTL (default: 3600 s, configurable via CML_SESSION_TTL) — the timer resets on each request, so active sessions stay alive. Sessions are closed automatically on expiry or authentication failure.
Improved HTTP Middleware Logging
Auth and header validation failures in HTTP mode now emit targeted WARNING log entries server-side, making it easier to diagnose client mis-configurations.
Elicitation: Client Capability Check
Destructive tools (wipe_*, delete_*) now check whether the connected client advertises MCP elicitation support before attempting a confirmation prompt. Clients that don't support elicitation proceed directly without hanging.
0.25.1
0.25.0
v0.25.0
What's New
- CML 2.9 and 2.10 compatibility — Cross-version schema improvements ensure the server works correctly with both CML 2.9 and 2.10. Fields introduced in 2.10 (autostart, node staging, health metrics) are now optional and default gracefully when talking to a 2.9 server. (@tmikuska )
- FastMCP 3.x — Updated to FastMCP 3.x (>=3.1.1).
- Python 3.12–3.13 only — Python 3.14+ is not supported by pyATS. The package now declares this constraint explicitly.
Fixes
- Fixed incorrect node operational data handling in CML 2.10 that caused missing data in
get_nodes_for_cml_labresults. - Fixed
PYATS_AUTH_PASSfallback — when unset, the enable password now correctly falls back toPYATS_PASSWORDinstead of silently failing authentication. - Improved tool docstrings to reduce LLM confusion around object vs. string arguments and node label vs. UUID.
Developer
- Added just check task runner target (runs black, isort, and flake8).
- Added
AGENTS.mdwith project conventions to guide AI coding assistants.
0.24.0
New Features
- Download Lab Topology: New tool to download lab topology by UUID, returning the topology as a YAML string
- Clone CML Lab: New tool to clone an existing lab by UUID with optional custom title (defaults to "Copy of {original title}")
Improvements
- Refined deletion confirmation prompts to be more explicit and user-friendly
- Refactored lab creation logic for better code reuse between import and clone operations
Dependencies
- Pinned FastMCP to version < 3.0.0 for stability
- Updated various dependencies to latest compatible versions
Testing
- Added comprehensive test coverage for new
download_lab_topologyandclone_cml_labtools
New Contributors
- @marcomobar made their first contribution in #18
Full Changelog: v0.23.0...v0.24.0
0.23.0
Release Notes - CML MCP v0.23.0
Overview
Version 0.23.0 represents a major architectural update to the CML MCP server, introducing significant improvements to concurrency handling, HTTP transport support, and code organization. This release skips version 0.22.0 due to the extensive nature of the changes.
Major Features
Architecture & Concurrency
- Async Safety & HTTP Transport Support: Implemented comprehensive async safety improvements to eliminate race conditions in concurrent HTTP request handling
- Request-scoped state management using contextvars for HTTP transport
- Transport-aware client initialization with per-request clients and proper lifecycle management
- Thread-isolated PyATS operations to prevent event loop blocking
- Fixed race conditions in PyATS credentials, os.chdir(), and concurrent HTTP requests
Code Organization
- Major Refactoring: Modularized the codebase as the number of tools grew beyond 40
- Organized tools into logical modules: labs, nodes, links, pcap, annotations, CLI, interfaces, system, users/groups
- Improved maintainability and code readability
- Enhanced dependency injection with
get_cml_client_dep()function
Access Control
- ACL Support: Added Access Control List functionality to control tool availability per user (HTTP mode only)
- YAML-based ACL configuration file support
- Fine-grained control over which users can access which tools
- Sample ACL configuration file included (
acl.yaml.example)
Packet Capture
- PCAP Support: New tools for network traffic analysis
- Start and stop packet captures on network links
- Retrieve PCAP files for analysis with Wireshark or other tools
- Check packet capture status and get captured packet overview
- Comprehensive test coverage for packet capture functionality
Improvements
Docker
- Multi-stage Build: Implemented multi-stage Docker build process
- Reduces image size by ~40 MB
- Improved build efficiency and security
- Eliminated unnecessary echoing during startup that could cause errors in Claude Desktop
Dependencies
- Updated all dependencies to latest compatible versions
- Synced local type definitions to match CML server schemas
- Updated copyright notices to 2026
Documentation
- Updated all documentation for new tools and modular structure
- Improved readability for both new and experienced users
- Enhanced installation and development guides
Breaking Changes
- HTTP mode no longer uses stateless operations internally, allowing for better session management and elicitation support
Bug Fixes
- Fixed grammar issues in documentation
- Resolved semaphore leaks by reverting to single worker (async handles concurrency)
- Fixed virl2_client initialization to work in both stdio and HTTP transport modes
- Corrected handling of stream closure errors in elicitation calls
Contributors
Special thanks to:
- @tmikuska for copyright updates and model cleanups
- All contributors who tested and provided feedback on the HTTP transport improvements
Migration Notes
Users upgrading from v0.21.3 should note:
- The modular structure is backward compatible with existing tool calls
- HTTP mode users can now implement ACL configurations for enhanced security
- Docker users will benefit from smaller image sizes automatically
- No configuration changes required for existing stdio mode deployments
0.21.3
0.21.2
What's Changed
- Lock the python version to >=3.12,<4 by @tmikuska in #10
- Remove unused modules by @tmikuska in #11
- Update tests for new annotation tool
- Fix fetching annotations
- Split docs to make them more readable
- Slightly improve login performance for HTTP transport
New Contributors
Full Changelog: v0.21.0...v0.21.2