netlab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NETLAB_MCP_STORE | No | Store directory for the matrix db + artifacts (default: ./store) | |
| NETLAB_MCP_WORKDIR | No | Base directory for per-request temp workdirs (default: ./.work) | |
| NETLAB_MCP_NETLAB_BIN | No | Path to the netlab executable (default: same venv, then PATH) | |
| NETLAB_MCP_ACCEPT_CEOS_EULA | No | Set truthy to allow the EULA-gated ceos image |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_topologyA | Turn an intent + target platforms into a netlab topology YAML (parse-validated). intent: free text, e.g. "ebgp peering" or "ospf two routers". The module is inferred.
platforms: NOS list, dut first (MVP free set: srlinux, frr, cumulus, vyos, linux).
Feed the returned |
| render_configA | Render real per-device config from a netlab topology — offline, no containers. Returns {per_node: {node: {module: config_text}}, clab_yaml, disclaimer}. This is the netlab data-model transform + Jinja2 render; the config matches what would deploy. |
| query_compatibilityC | What netlab declares a platform supports, overlaid with what was observed in the lab.
|
| get_known_goodB | Return a previously lab-passed topology + rendered config for module+platform, if any. |
| list_examplesA | Index netlab's integration test topologies (real, maintained multi-platform scenarios). With no module: list available modules + counts. With a module: list its scenarios. |
| report_failureC | Record a negative result (a combo that did not work) into the compatibility matrix. |
| host_checkA | Diagnose this host's lab readiness in one call — run this first when anything fails. Reports docker/containerlab availability + versions, the netlab version, which platforms are allowed, which devices have locally loaded images (deployable without a pull), and which devices can anchor validate tests per module. |
| validate_in_labA | Deploy a topology to containerlab, run Requires docker + containerlab on a Linux host. Returns the verdict (pass/fail/warning), rendered config, raw validate output, and persists a version-scoped matrix row. The lab is always torn down afterward. On a host without containerlab this returns verdict "unavailable" rather than failing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/steinzi/netlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server