OP

omichelbraga/pnetlab-mcp-server

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

5 stars 5 forks Качество 74 Тренд 17Apache-2.0

MCP server for programmatic control of PNETLab network labs — 31 tools for labs, nodes, links, configs, live console (read+write), and backup/restore.

Обзор

Give Claude (or any MCP client) programmatic control of a PNETLab network-emulation lab — build topologies, wire links, push device configs, and boot the lab, all from natural language. An MCP (Model Context Protocol) server that exposes PNETLab lab operations as tools an LLM agent can call. Ask Claude to "build me a two-router OSPF lab with a PC on each side and boot it" and it will create the lab, add the nodes, cable them, inject startup-configs, and start everything — driving the same PNETLab API the web UI uses. It is a — same tool names and shapes — but the client speaks session-bound API instead of EVE-NG's path-addressed REST API. The stock EVE-NG MCP server does work against a PNETLab box; this fork bridges the gap. Verified against a live server. PNETLab is a popular fork of EVE-NG, but it quietly replaced EVE-NG's clean REST API with a model borrowed from its Laravel front-end: - You , then (which binds it to your server-side session).

README

Показан фрагмент оригинального README. Открыть оригинал.

PNETLab MCP Server

Give Claude (or any MCP client) programmatic control of a PNETLab network-emulation lab — build topologies, wire links, push device configs, and boot the lab, all from natural language.

An MCP (Model Context Protocol) server that exposes PNETLab lab operations as tools an LLM agent can call. Ask Claude to “build me a two-router OSPF lab with a PC on each side and boot it” and it will create the lab, add the nodes, cable them, inject startup-configs, and start everything — driving the same PNETLab API the web UI uses.

It is a drop-in-compatible fork of eveng-mcp-server — same tool names and shapes — but the client speaks PNETLab’s session-bound API instead of EVE-NG’s path-addressed REST API. The stock EVE-NG MCP server does not work against a PNETLab box; this fork bridges the gap. Verified against a live PNETLab 5.3.x server.


Table of contents


Why this exists

PNETLab is a popular fork of EVE-NG, but it quietly replaced EVE-NG’s clean REST API with a session-bound model borrowed from its Laravel front-end:

  • You log in, then open exactly one lab (which binds it to your server-side session).
  • Every subsequent operation targets that open lab via /api/labs/session/* — there is no way to address a lab by path in the URL.
  • Lab/folder listing and teardown live in a separate Laravel “store” admin API (/store/..., /api/folders).

The consequence: tooling written for EVE-NG’s API returns 404s and empty topologies against PNETLab. This server re-implements the client to speak PNETLab’s dialect, while keeping an EVE-NG-style lab_path argument on every tool so agents (and humans) don’t have to think about session binding. The client tracks which lab is open and re-binds only when lab_path changes.


Features

Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "pnetlab": { "command": "python", "args": ["-m", "pnetlab_mcp_server"], "env": { "PNETLAB_HOST": "https://pnetlab.example", "PNETLAB_USERNAME": "mcp-user", "PNETLAB_PASSWORD": "pnet", "PNETLAB_VERIFY_SSL": "true" } } } }