Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NETLAB_MCP_STORENoStore directory for the matrix db + artifacts (default: ./store)
NETLAB_MCP_WORKDIRNoBase directory for per-request temp workdirs (default: ./.work)
NETLAB_MCP_NETLAB_BINNoPath to the netlab executable (default: same venv, then PATH)
NETLAB_MCP_ACCEPT_CEOS_EULANoSet truthy to allow the EULA-gated ceos image

Capabilities

Features and capabilities supported by this server

CapabilityDetails
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

NameDescription
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 topology_yaml to render_config or validate_in_lab.

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.

declared comes from netlab; observed comes from prior validate_in_lab/harvest runs. conflicts flags cells declared-supported but observed-failing for the current version.

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 netlab validate, and record the verdict.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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