Skip to main content

EVE-NG MCP Server

An MCP (Model Context Protocol) server that gives Claude and other LLM agents programmatic access to EVE-NG network labs.

Create, configure, and manage virtual network topologies through natural language — no manual clicking in the EVE-NG web UI required.

Features

  • Lab management — Create, list, get details, and delete labs
  • Node operations — Add nodes from any installed template, start/stop individually or all at once
  • Configuration push — Push startup configs to nodes before boot
  • Network connectivity — Create networks and connect node interfaces
  • Image discovery — List all available QEMU/Docker images on the server

Requirements

  • Python >= 3.10
  • An EVE-NG server (Community or Professional) with API access
  • An MCP-compatible client (Claude Desktop, Claude Code, etc.)

Installation

# From source
git clone https://github.com/axiom-works-ai/eveng-mcp-server.git
cd eveng-mcp-server
pip install -e .

# With dev dependencies (for testing)
pip install -e ".[dev]"

Configuration

The server reads connection details from environment variables:

Variable Default Description
EVENG_HOST http://192.168.122.10 EVE-NG API base URL
EVENG_USERNAME admin API username
EVENG_PASSWORD eve API password

Usage

Claude Desktop

Add to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "eveng": {
      "command": "eveng-mcp-server",
      "env": {
        "EVENG_HOST": "http://192.168.122.10",
        "EVENG_USERNAME": "admin",
        "EVENG_PASSWORD": "eve"
      }
    }
  }
}

Claude Code

Add to your Claude Code settings (.claude/settings.json):

{
  "mcpServers": {
    "eveng": {
      "command": "eveng-mcp-server",
      "env": {
        "EVENG_HOST": "http://192.168.122.10",
        "EVENG_USERNAME": "admin",
        "EVENG_PASSWORD": "eve"
      }
    }
  }
}

Direct (stdio)

export EVENG_HOST=http://192.168.122.10
export EVENG_USERNAME=admin
export EVENG_PASSWORD=eve
eveng-mcp-server

Or run as a Python module:

python -m eveng_mcp_server

Available Tools

Lab Management

Tool Description
list_labs List all labs on the server
get_lab Get lab details with nodes, networks, and topology
create_lab Create a new lab
delete_lab Delete a lab

Node Operations

Tool Description
add_node Add a node to a lab (specify template, RAM, CPU, interfaces)
start_node Start a single node
stop_node Stop a single node
start_all Start all nodes in a lab
stop_all Stop all nodes in a lab
get_node_status Get node status and details

Configuration

Tool Description
push_config Push startup configuration to a node
get_node_config Get a node's current startup configuration

Network Connectivity

Tool Description
connect_nodes Connect two node interfaces via a shared network

Discovery

Tool Description
list_images List all installed QEMU/Docker images

Example Conversation

You: Create a lab called "OSPF Demo" with two Arista vEOS switches connected together, then push basic OSPF configs to both.

The agent will:

  1. Call create_lab to create "OSPF Demo"
  2. Call list_images to find the vEOS template
  3. Call add_node twice to add two vEOS switches
  4. Call connect_nodes to link their interfaces
  5. Call push_config on each node with OSPF configuration
  6. Call start_all to boot the lab

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check src/ tests/

EVE-NG API Notes

  • The EVE-NG API uses session cookies (not bearer tokens) — the client authenticates once and reuses the session.
  • Lab paths use URL-encoded filesystem paths (e.g., /api/labs/My%20Lab.unl).
  • Node status codes: 0 = stopped, 1 = building, 2 = running.
  • Startup configs should be pushed while the node is stopped.

License

Apache-2.0 — see LICENSE for details.

Author

Axiom Works AI

Metadata

Release files for eveng-mcp-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eveng-mcp-server 0.1.0
File Size Uploaded
eveng_mcp_server-0.1.0.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eveng-mcp-server 0.1.0
File Interpreter ABI Platform
eveng_mcp_server-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.0 kB

Release files / eveng_mcp_server-0.1.0.tar.gz

Download URL eveng_mcp_server-0.1.0.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
317c81e89261819a7e02784fb00afd5df383070cf8c1346aacf4358f76ffe2ed
BLAKE2b-256 checksum
How to use checksums
fdd24377b1bb43a516b3e3f113506edc7d15c10ce480403ecc03c3be47e41499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / eveng_mcp_server-0.1.0-py3-none-any.whl

Download URL eveng_mcp_server-0.1.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d937a8622b6c9802d67f3089e3e92486b66438465e49b250e5b3041fdd36637b
BLAKE2b-256 checksum
How to use checksums
d30e9dd9e09ddd641b6e46a3228ae2a4f4af879f53a86c1f6ccda2b159102b11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page