packet-coders-mcp
The packet-coders-mcp server enables an LLM to interact with and manage network labs (mock or real EVE-NG), offering tools for device visibility, diagnostics, and guarded configuration.
list_lab_devices— Retrieve the full inventory of lab devices the server can reach, without exposing credentials.send_command— Execute a read-onlyshow/displaycommand on a specific device; configuration commands are blocked at the tool level.run_health_check— Run basic health diagnostics on a single device or across the entire lab.get_ospf_neighbors— Fetch OSPF neighbor state using the correct platform-appropriate command automatically.get_bgp_summary— Fetch BGP summary state using the correct platform-appropriate command automatically.configure_device— Push configuration lines to a device with strong safety guardrails: dry-run is enabled by default, and actually applying changes requiresdry_run=falseplus an out-of-band confirmation code that the model never sees (a human must read it from the server console).
Additional capabilities include operating in mock mode (no physical hardware needed), connecting to a live EVE-NG environment, and compatibility with Claude Code, Claude Desktop, Ollama, and vLLM with Open WebUI.
Provides tools to manage Cisco IOS, IOS-XE, and NX-OS network devices via SSH, including sending show commands, running health checks, retrieving OSPF and BGP neighbor states, and pushing configuration changes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@packet-coders-mcprun a health check on the lab"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
From Chat to MCP: A Network Engineer's MCP Lab
A compact demo MCP server (FastMCP) that lets an LLM safely drive a network lab. Runs in mock mode with no hardware, or against a real EVE-NG lab by swapping one inventory file. Works from Claude Code, Claude Desktop, or a fully local LLM stack (Ollama / vLLM).
Tool | Purpose |
| Show the inventory the server can reach. |
| Run a read-only show command on one device. |
| Health bundle against one device or the whole lab. |
| OSPF neighbor state (right command per platform). |
| BGP summary state (right command per platform). |
| Push config — gated by an out-of-band confirm code (read-only is one flag). |
Quickstart (Docker)
Spins up the whole stack — chat UI, lab tools, and a local model — with one command.
git clone https://github.com/E-Conners-Lab/Packet-Coders-Demo.git
cd Packet-Coders-Demo
docker compose up # first run pulls images + the qwen3:8b model (a few minutes)Open http://localhost:3000 (no login) → Settings → Integrations → add
http://localhost:8000 as a tool server → set the model's Function Calling → Native →
ask "list the lab devices." Defaults to the mock lab (no hardware needed).
Want… | Do this |
Faster on a Mac (host Ollama, Metal GPU) |
|
The real EVE-NG lab | |
Change port / model / inventory | copy |
Read-only (hide the write tool) |
|
Stop everything |
|
Port
8000already in use? SetMCPO_PORTin.env. More fixes in docs/troubleshooting.md.
Related MCP server: nornir-mcp-server
Connect a client
Point any MCP client at the server (start with the mock inventory). Full per-client steps — Claude Code, Claude Desktop, Ollama / vLLM + Open WebUI — are in docs/clients.md.
# Claude Code, from the repo root:
claude mcp add packet-coders-lab \
--env PACKET_CODERS_INVENTORY="$PWD/configs/inventory.mock.yaml" \
-- uv run --project "$PWD" packet-coders-mcpVerify with claude mcp list, then ask it to list_lab_devices.
Safety
A demo, not a production change tool. Strongest guardrails:
Writes need an out-of-band code the model never sees —
configure_deviceprints a one-time code to the server console; a human reads it back, so the model can't self-approve.Read-only is one flag —
PACKET_CODERS_ALLOW_WRITES=falsehides the write tool entirely.Hosts that confirm each call (Claude Desktop / Code) can use their own approval instead — set
PACKET_CODERS_REQUIRE_CONFIRM_CODE=false.
Don't point it at production. Full model: docs/safety.md.
Docs
docs/clients.md — connect Claude Code / Desktop / Ollama / vLLM + Open WebUI
docs/real-lab.md — inventory model + EVE-NG setup + keeping creds private
docs/configuration.md — every
.envknob + native (no-Docker) rundocs/topology.md — the four-switch reference lab (OSPF + eBGP)
docs/safety.md — full guardrail model
docs/troubleshooting.md — common errors and fixes
Develop
uv run --extra dev pytest
uv run --extra dev ruff check .Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/E-Conners-Lab/Packet-Coders-Demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server