Skip to main content
Glama
moimran

EVE-NG MCP Server

by moimran
README.md
# EVE-NG MCP Server

A comprehensive Model Context Protocol (MCP) server for EVE-NG network emulation platform integration. This server exposes EVE-NG's full API capabilities through MCP's standardized interface, enabling LLMs to manage network topologies, labs, nodes, and configurations.

## Features

### ๐Ÿ”Œ Connection Management
- Secure authentication with EVE-NG servers
- Connection testing and health monitoring
- Session management with automatic reconnection
- Support for both HTTP and HTTPS protocols

### ๐Ÿงช Lab Management
- Create, list, and delete labs
- Comprehensive lab information retrieval
- Lab metadata management (description, author, version)
- Import/export capabilities (planned)

### ๐Ÿ–ฅ๏ธ Node Management
- Add and configure nodes with various templates
- Start, stop, and manage node lifecycle
- Bulk operations for multiple nodes
- Node configuration and status monitoring
- Comprehensive template and image support

### ๐ŸŒ Network Management
- Create and manage networks (clouds, bridges, NAT)
- Connect nodes to networks and each other
- Topology visualization and management
- Network configuration and monitoring

### ๐Ÿ“Š MCP Resources & Prompts
- Dynamic resources for real-time lab status
- Static resources for documentation and examples
- Guided prompts for common workflows
- Educational content generation

## ๐Ÿ”— Client Integrations

The EVE-NG MCP Server integrates seamlessly with popular MCP-compatible clients:

### ๐Ÿค– Claude Desktop
Use EVE-NG directly in conversations with Claude Desktop for natural language network management:

```json
{
  "mcpServers": {
    "eveng-mcp-server": {
      "command": "uv",
      "args": ["run", "eveng-mcp-server", "run", "--transport", "stdio"],
      "env": {
        "EVENG_HOST": "eve.local",
        "EVENG_USERNAME": "admin",
        "EVENG_PASSWORD": "eve"
      }
    }
  }
}
```

**[๐Ÿ“– Complete Claude Desktop Integration Guide โ†’](docs/integrations/claude-desktop.md)**

### ๐Ÿ’ป VS Code
Integrate with VS Code for enhanced network development workflows:

- Lab deployment from configuration files
- Automated testing and validation
- Topology visualization and documentation
- Custom tasks and debugging support

**[๐Ÿ’ป Complete VS Code Integration Guide โ†’](docs/integrations/vscode.md)**

### ๐Ÿ” MCP Inspector
Test and debug the server using the MCP Inspector:

```bash
# Start server in SSE mode
uv run eveng-mcp-server run --transport sse --host 0.0.0.0 --port 8000

# Start MCP Inspector
npx @modelcontextprotocol/inspector
```

**[๐Ÿ”— All Integration Guides โ†’](docs/integrations/README.md)**

## Installation

### Prerequisites
- Python 3.11 or higher
- UV package manager
- Access to an EVE-NG server

### Using UV (Recommended)

```bash
# Clone the repository
git clone <repository-url>
cd eveng-mcp-server

# Install dependencies
uv sync

# Copy example configuration
cp .env.example .env

# Edit configuration as needed
nano .env
```

## Configuration

The server can be configured using environment variables or a `.env` file:

```bash
# EVE-NG Server Settings
EVENG_HOST=eve.local
EVENG_PORT=80
EVENG_PROTOCOL=http
EVENG_USERNAME=admin
EVENG_PASSWORD=eve

# MCP Server Settings
MCP_TRANSPORT=stdio
MCP_LOG_LEVEL=INFO
```

See `.env.example` for all available configuration options.

## Usage

### Command Line Interface

```bash
# Run with stdio transport (default)
uv run eveng-mcp-server run

# Run with SSE transport
uv run eveng-mcp-server run --transport sse --host localhost --port 8000

# Test EVE-NG connection
uv run eveng-mcp-server test-connection --host eve.local --username admin --password eve

# Show configuration
uv run eveng-mcp-server config-info

# Show version
uv run eveng-mcp-server version
```

## Available MCP Tools

### Connection Management
- `connect_eveng_server` - Connect to EVE-NG server
- `disconnect_eveng_server` - Disconnect from server
- `test_connection` - Test server connectivity
- `get_server_info` - Get server information and status

### Lab Management
- `list_labs` - List available labs
- `create_lab` - Create a new lab
- `get_lab_details` - Get detailed lab information
- `delete_lab` - Delete a lab

### Node Management
- `list_node_templates` - List available node templates
- `add_node` - Add nodes to labs with comprehensive configuration
- `list_nodes` - List lab nodes with status and details
- `get_node_details` - Get detailed node information
- `start_node` / `stop_node` - Control individual node power state
- `start_all_nodes` / `stop_all_nodes` - Bulk node operations
- `wipe_node` / `wipe_all_nodes` - Reset nodes to factory state
- `delete_node` - Remove nodes from labs

### Network Management
- `list_network_types` - List available network types
- `list_lab_networks` - List all networks in a lab
- `create_lab_network` - Create networks with positioning
- `delete_lab_network` - Remove networks from labs
- `connect_node_to_network` - Connect nodes to networks
- `connect_node_to_node` - Create point-to-point connections
- `get_lab_topology` - Retrieve complete topology information

## Testing

```bash
# Test EVE-NG connection
uv run eveng-mcp-server test-connection

# Run the server
uv run eveng-mcp-server run
```

## ๐Ÿ“š Documentation

### Complete Guides
- **[๐Ÿ“– API Reference](docs/api/README.md)** - Complete documentation for all 25 tools, 4 resources, and 6 prompts
- **[๐Ÿš€ Deployment Guide](docs/deployment/README.md)** - Production deployment with Docker, Kubernetes, and systemd
- **[๐Ÿ”ง Troubleshooting Guide](docs/troubleshooting/README.md)** - Common issues and solutions
- **[๐Ÿงช Testing Guide](tests/README.md)** - Comprehensive testing procedures

### Integration Guides
- **[๐Ÿค– Claude Desktop Integration](docs/integrations/claude-desktop.md)** - Natural language network management
- **[๐Ÿ’ป VS Code Integration](docs/integrations/vscode.md)** - Enhanced development workflows
- **[๐Ÿ”— All Integrations](docs/integrations/README.md)** - Complete integration documentation

### Examples
- **[๐Ÿ“ Configuration Examples](examples/integrations/)** - Ready-to-use configurations
- **[๐Ÿงช Test Scripts](tests/)** - Comprehensive test suite with examples
- **[๐Ÿ“Š Sample Labs](examples/integrations/sample-lab.json)** - Example network topologies

## ๐ŸŽฏ Development Status

- โœ… **Production Ready** - Complete MCP server implementation
- โœ… **EVE-NG Integration** - Full API coverage with 25 tools
- โœ… **Client Integrations** - Claude Desktop and VS Code support
- โœ… **Comprehensive Testing** - Unit, integration, and E2E tests
- โœ… **Production Deployment** - Docker, Kubernetes, systemd ready
- โœ… **Complete Documentation** - API reference, guides, and examples
- โœ… **MCP Resources** - 4 dynamic and static resources
- โœ… **MCP Prompts** - 6 guided workflow prompts

## ๐Ÿš€ Quick Start

1. **Install**: `git clone <repo> && cd eveng-mcp-server && uv sync`
2. **Configure**: Copy `.env.example` to `.env` and set your EVE-NG credentials
3. **Test**: `uv run eveng-mcp-server test-connection`
4. **Integrate**: Follow our [Claude Desktop](docs/integrations/claude-desktop.md) or [VS Code](docs/integrations/vscode.md) guides
5. **Deploy**: Use our [production deployment guide](docs/deployment/README.md) for production use

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
- Code style and standards
- Testing requirements
- Documentation guidelines
- Pull request process

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support

- **Issues**: [GitHub Issues](https://github.com/moimran/eveng-mcp-server/issues)
- **Discussions**: [GitHub Discussions](https://github.com/moimran/eveng-mcp-server/discussions)
- **Documentation**: [Complete Documentation](docs/README.md)

TDQS

A3.5/5.0

Scored across 26 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions in the EVE-NG domain. For example, connect_node_to_network vs connect_node_to_node handle different connection types, while start_node vs wipe_node perform fundamentally different operations on nodes. No tools appear to overlap or cause confusion.

Naming Consistency5/5

All 26 tools follow a consistent verb_noun or verb_noun_noun pattern throughout. Examples include create_lab, delete_node, list_network_types, and connect_node_to_network. The naming is perfectly uniform with no mixing of conventions or stylistic deviations.

Tool Count4/5

With 26 tools, the count is on the higher side but reasonable for a comprehensive network emulation platform like EVE-NG. The tools cover server management, lab operations, node lifecycle, and network configuration, which justifies the breadth. It's slightly heavy but well-scoped for the domain.

Completeness5/5

The toolset provides complete CRUD/lifecycle coverage for EVE-NG's core domain. It includes server connection/disconnection, lab creation/deletion/listing, node addition/deletion/starting/stopping/wipe, network management, and detailed information retrieval. No obvious gaps exist for typical emulation workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues