Cml2
FreeNot checkedThin MCP server for Cisco CML2: openapi.json + generic authenticated REST.
About
Thin MCP server for Cisco CML2: openapi.json + generic authenticated REST.
README
Thin MCP server for Cisco CML2.
It deliberately avoids mirroring the CML API as typed (Pydantic) tools — every prior generation that did so broke when the controller shipped a schema change. Instead this server exposes only:
cml_openapi(refresh=False)— fetch CML's liveopenapi.json(cached 24 h).cml_api(method, path, body=None)— generic authenticated REST call after/api/v0. Re-authenticates and retries once on HTTP 401.- Resource
cml://openapi.json— same content ascml_openapi().
The model is expected to read the OpenAPI spec first and then craft calls.
Configuration
Required environment:
| Var | Example |
|---|---|
CML_URL |
https://cml.example.net/ |
CML_USERNAME |
admin |
CML_PASSWORD |
… |
Optional:
CML_VERIFY_SSL=true— verify TLS (default: off; CML often uses self-signed certs).CML_CACHE_DIR— token / openapi cache directory (default:~/.cache/cml/).
The token is written to $CML_CACHE_DIR/token with mode 0600.
Running
With uv directly from the source tree:
uv run cml2-mcp
After publishing to PyPI (or via uv tool install .):
uvx cml2-mcp
Claude Desktop / Claude Code registration
Wrap the command so the password is fetched from a secure store rather than appearing in plain text. Example with macOS Keychain:
{
"mcpServers": {
"cml2": {
"command": "sh",
"args": [
"-c",
"CML_PASSWORD=$(security find-generic-password -a <account> -s <service> -w) exec uvx cml2-mcp"
],
"env": {
"CML_URL": "https://cml.example.net/",
"CML_USERNAME": "admin"
}
}
}
}
For Claude Code:
claude mcp add cml2 -- sh -c 'CML_PASSWORD=$(security find-generic-password -a <account> -s <service> -w) exec uvx cml2-mcp'
(Set CML_URL / CML_USERNAME in the same env or via claude mcp add ... -e KEY=VAL.)
Installing Cml2
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/higebu/cml2-mcpFAQ
Is Cml2 MCP free?
Yes, Cml2 MCP is free — one-click install via Unyly at no cost.
Does Cml2 need an API key?
No, Cml2 runs without API keys or environment variables.
Is Cml2 hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Cml2 in Claude Desktop, Claude Code or Cursor?
Open Cml2 on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Cml2 with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
