Skip to main content

MCP server providing Claude/LLM agents with programmatic access to EVE-NG network labs

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eveng_mcp_server-0.1.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eveng_mcp_server-0.1.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file eveng_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: eveng_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for eveng_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 317c81e89261819a7e02784fb00afd5df383070cf8c1346aacf4358f76ffe2ed
MD5 c4fee83bd5820fad1ce12c771eebb206
BLAKE2b-256 fdd24377b1bb43a516b3e3f113506edc7d15c10ce480403ecc03c3be47e41499

See more details on using hashes here.

File details

Details for the file eveng_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for eveng_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d937a8622b6c9802d67f3089e3e92486b66438465e49b250e5b3041fdd36637b
MD5 c4d7f4dc6d64650d9d2ac4f96946ac73
BLAKE2b-256 d30e9dd9e09ddd641b6e46a3228ae2a4f4af879f53a86c1f6ccda2b159102b11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page