cml-mcp-server
by dr-stutters
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CML_URL | Yes | Controller URL, e.g. https://cml.example.com (required) | |
| MCP_HOST | No | HTTP listener host | 0.0.0.0 |
| MCP_PATH | No | HTTP listener path | /mcp |
| MCP_PORT | No | HTTP listener port | 8000 |
| CML_TOKEN | No | A pre-issued JWT instead of username/password | |
| LOG_LEVEL | No | Log level | INFO |
| MCP_TASKS | No | Run the long tools (image upload, builds/starts with wait, convergence waits, recipe verify, captures) as MCP background tasks for clients that support them; others still call them synchronously | false |
| CML_RETRIES | No | Retries for idempotent calls | 2 |
| CML_TIMEOUT | No | Per-request timeout (s) | 30 |
| CML_PASSWORD | No | API password (JWT login via /api/v0/auth_extended) | |
| CML_USERNAME | No | API user (JWT login via /api/v0/auth_extended) | |
| CML_CA_BUNDLE | No | CA file to verify the controller certificate | |
| CML_IMAGE_DIR | No | The only directory cml_upload_image reads (images are streamed from it; uploads are off without it) | |
| MCP_AUDIT_LOG | No | Audit trail of previews and applied writes | stderr |
| MCP_CACHE_DIR | No | OpenAPI index cache ("" disables it) | ~/.cache/cml-mcp-server |
| MCP_TASKS_URL | No | URL for MCP background tasks | memory:// |
| MCP_TRANSPORT | No | http for a network server | stdio |
| CML_RATE_LIMIT | No | Client-side throttling rate limit | |
| CML_VERIFY_SSL | No | false for self-signed lab controllers (logged as a warning) | true |
| CML_CONFIG_DENY | No | One extra regex for cml_configure_node to deny | |
| MCP_AUTH_TOKENS | No | name:sha256:<hex> entries; HTTP refuses to start without one | |
| MCP_CONFIRM_TTL | No | Confirm-token lifetime (s) | 600 |
| CML_CONSOLE_PORT | No | SSH port of the CML console server (used for device CLI) | 22 |
| CML_MANAGED_LABS | No | Safety rails: labs the dangerous tools may wipe/delete (title globs or ids) | |
| CML_WAIT_TIMEOUT | No | Default wait for start/stop/convergence (s) | 600 |
| MCP_ENABLE_WRITES | No | Register the write tier | false |
| CML_PROTECTED_LABS | No | Safety rails: labs no change may touch (title globs or ids) | |
| CML_MAX_CONCURRENCY | No | Client-side max concurrency | 8 |
| CML_LAB_SECRETS_FILE | No | dotenv file with the LAB_* values that recipes reference as ${LAB_*} (device passwords, keys, communities). LAB_* environment variables override it. Recipe builds name any missing variable | |
| MCP_AUTH_TOKENS_FILE | No | File containing name:sha256:<hex> entries; HTTP refuses to start without one | |
| MCP_ENABLE_DANGEROUS | No | Register the dangerous tier | false |
| CML_CONSOLE_LOCK_WAIT | No | Seconds a console call waits for another call on the same node before reporting it busy | 60 |
| CML_NODE_LICENSE_LIMIT | No | Running licensed-node cap. Detected from /licensing when unset (base licence nodes + CML_NODE_COUNT expansion; 5 in evaluation mode). Start/build previews refuse to exceed it; cml_plan_licences says which labs to stop | |
| CML_TLS_CHECK_HOSTNAME | No | false only with CML_CA_BUNDLE = the controller's own certificate (pinned; scripts/pin_controller.py) | true |
| MCP_MAX_RESPONSE_CHARS | No | Response size budget | 40000 |
| CML_CONSOLE_KNOWN_HOSTS | No | known_hosts file for the console server's host key. When unset, the key is checked against ~/.ssh/known_hosts if CML_VERIFY_SSL=true, and not checked otherwise | |
| CML_CONFIG_DENY_DEFAULTS | No | cml_configure_node refuses destructive device commands (write erase, reload, format, delete, ...) | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessResponsive