EVE-NG MCP Server

EVE-NG MCP Server

An MCP server that gives Claude and other LLM agents programmatic access to EVE-NG network labs, enabling creation, configuration, and management of virtual network topologies through natural language.

Category
访问服务器

README

EVE-NG MCP Server

PyPI CI Python License

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 required.

You: "Create a lab with two Arista switches running OSPF, connected to each other"

Claude: ✓ Created lab "OSPF Demo"
        ✓ Added vEOS-1 (Arista vEOS 4.28)
        ✓ Added vEOS-2 (Arista vEOS 4.28)
        ✓ Connected e0/0 ↔ e0/0
        ✓ Pushed OSPF configs
        ✓ Started all nodes — lab is running

Quick Start

1. Install

pip install eveng-mcp-server

2. Configure

Set your EVE-NG connection details:

export EVENG_HOST=http://your-eve-ng-server
export EVENG_USERNAME=admin
export EVENG_PASSWORD=eve

3. Add to Claude

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Claude Code — add to .claude/settings.json:

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

4. Use

Ask Claude to build you a network lab. That's it.

How It Works

┌─────────────┐     MCP Protocol      ┌──────────────────┐     REST API     ┌─────────────┐
│   Claude /   │◄──────────────────────►│  EVE-NG MCP      │◄───────────────►│   EVE-NG    │
│   LLM Agent  │   (stdio transport)   │  Server           │  (HTTP + cookies)│   Server    │
└─────────────┘                        └──────────────────┘                  └─────────────┘
                                              │
                                       14 MCP Tools:
                                       create_lab, add_node,
                                       connect_nodes, push_config,
                                       start_all, etc.

The MCP server translates natural language requests from Claude into EVE-NG REST API calls. It handles authentication (session cookies), lab lifecycle, node management, configuration push, and network connectivity.

Available Tools

Lab Management

Tool Description
list_labs List all labs on the server
get_lab Get lab details — nodes, networks, links, status
create_lab Create a new empty lab
delete_lab Delete a lab and all its resources

Node Operations

Tool Description
list_images Browse all installed QEMU and Docker images
add_node Add a node to a lab — specify image, name, RAM, CPU, interface count
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 a node's current status and configuration

Configuration

Tool Description
push_config Push startup configuration to a node (must be stopped)
get_node_config Retrieve a node's current startup configuration

Networking

Tool Description
connect_nodes Connect two node interfaces — creates a shared network and wires both endpoints

Usage Examples

Build a Multi-Vendor Lab

"Create a lab called 'Data Center Fabric' with 2 VOSS spine switches and 4 EXOS leaf switches. Connect each leaf to both spines."

Claude will use list_images to find your installed Extreme images, create the lab, add 6 nodes, and wire the spine-leaf fabric.

Push Configs Before Boot

"Push OSPF configuration to all routers in the lab, then start everything."

Claude will call push_config on each node with vendor-appropriate configuration, then start_all to boot the lab.

Inspect Lab State

"Show me what's running in the BGP lab — which nodes are up, which are still booting?"

Claude calls get_lab to retrieve the full topology with per-node status.

Tear Down and Rebuild

"Destroy the current lab and build a new one with 3 Cisco IOSv routers in a triangle topology."

Claude calls delete_lab, then create_lab, add_node x3, and connect_nodes x3.

Common Use Cases

Certification Lab Prep (CCNA/CCNP/CCIE)

"Build me a lab for practicing OSPF multi-area with 5 routers — one ABR connecting area 0 and area 1, with stub and NSSA areas."

The MCP server handles the tedious setup: creating the lab, adding nodes, wiring interfaces, and pushing base configs so you can focus on the protocol practice.

Pre-Change Validation

"I need to test adding a new VLAN to our spine-leaf fabric before doing it in production. Build a lab that mirrors our 2-spine 4-leaf topology with VOSS switches."

Build a lab topology matching production, test your change, verify traffic flow — all through conversation with Claude.

Vendor Comparison / PoC

"Create two identical 3-router triangle topologies — one with Arista vEOS and one with Cisco IOSv. Push BGP configs to both so I can compare convergence behavior."

Side-by-side vendor comparison without manually building two separate labs.

Training and Demos

"Set up a classroom lab with 5 separate student topologies, each with 2 routers and 1 switch, all pre-configured with basic connectivity."

Quickly spin up multiple isolated lab instances for training sessions.

Network Automation Development

"Create a 4-router lab and start all nodes. I need to test my Ansible playbooks against real network devices."

Use the MCP server to provision labs for testing Ansible, Nornir, Terraform, or any network automation tooling.

Troubleshooting Practice

"Build a lab with intentional misconfigurations — wrong OSPF area IDs, mismatched BGP AS numbers, or broken VLAN trunks — and don't tell me what's wrong."

AI-generated fault injection for network troubleshooting practice.

Prerequisites

  • Python 3.10+
  • EVE-NG server (Community or Professional) with API access enabled
    • The server must be reachable from where the MCP server runs
    • Default EVE-NG API port is 80 (HTTP) or 443 (HTTPS)
    • Default credentials: admin / eve
  • MCP-compatible client — Claude Desktop, Claude Code, or any MCP client

EVE-NG Network Access

The MCP server connects to EVE-NG's REST API over HTTP. Your EVE-NG server must be reachable:

Setup EVENG_HOST Value
Same machine http://localhost
Local network http://192.168.1.100
Via Tailscale http://100.x.y.z:8080
Via SSH tunnel http://localhost:8080 (after ssh -L 8080:192.168.122.10:80 jump-host)

Configuration Reference

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

Troubleshooting

"Connection refused" or timeout

  • Verify EVE-NG is running and the API is accessible: curl http://your-server/api/status
  • Check firewall rules — EVE-NG API runs on port 80 by default
  • If using a jump host, set up an SSH tunnel first

"Authentication failed"

  • Default credentials are admin / eve
  • EVE-NG Community Edition limits to 2 admin accounts
  • Check if another session is active (EVE-NG allows one session per user)

"Image not found" when adding nodes

  • Run list_images to see what's installed
  • EVE-NG image folder names must follow exact naming conventions
  • QEMU images go in /opt/unetlab/addons/qemu/

Node starts but no console access

  • Nodes need 30-120 seconds to fully boot (vendor dependent)
  • Use get_node_status to check if the node is still building (status=1) or running (status=2)

Development

# Clone and install
git clone https://github.com/axiom-works-ai/eveng-mcp-server.git
cd eveng-mcp-server
pip install -e ".[dev]"

# Run tests (69 tests, mocked — no EVE-NG server needed)
pytest

# Run with verbose output
pytest -v

# Type check
mypy src/eveng_mcp_server/ --ignore-missing-imports

EVE-NG API Notes

  • Uses session cookies for authentication (not bearer tokens)
  • Lab paths are URL-encoded filesystem paths (e.g., /api/labs/My%20Lab.unl)
  • Node status codes: 0 = stopped, 1 = building/booting, 2 = running
  • Push startup configs while nodes are stopped — they apply at next boot
  • connect_nodes is a compound operation: creates a network, then attaches both interfaces

License

Apache-2.0

Author

Built by Axiom Works AI — AI-powered tools for network engineers.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选