
omichelbraga/pnetlab-mcp-server
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
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
- Features
- How PNETLab differs from EVE-NG
- Requirements
- Installation
- Configuration
- Register with an MCP client
- Tool reference
- Worked examples
- Gotchas & hard-won lessons
- Troubleshooting
- Architecture
- Development & testing
- Project status
- License
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
インストール
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"
}
}
}
}