Packet Tracer MCP
Tell your AI "create a network with 3 routers, OSPF and DHCP" β it plans, validates, generates, and deploys the topology directly into Cisco Packet Tracer in real time.
π Website: https://www.mcpnetwork.top β’ π Documentation: https://mats2208.github.io/MCP-Packet-Tracer/
Showcase
What it does
A Model Context Protocol (MCP) server that gives any LLM (Claude, GitHub Copilot, Codex, β¦) full programmatic control over Cisco Packet Tracer.
Feature | Details | |
Planning | Natural language β topology | A single prompt becomes a complete |
IP / DHCP | Auto /24 LANs + /30 links, DHCP pools | Sequential, gateway at |
Routing | Static Β· OSPF Β· EIGRP Β· RIP | Full IOS generation |
Switching | VLANs, trunks, inter-VLAN routing (router-on-a-stick), STP, port-security |
|
Security | Device hardening (SSH, local users, enable-secret, banner), ACL/NAT | On live devices via the bridge |
IPv6 | Dual-stack addressing | Routers via CLI, hosts via SLAAC |
Wireless | WiFi laptops + auto-associated Access Points | NIC swap β |
Validation | Typed errors + auto-fixer | Wrong cables, missing ports, model upgrades |
Verification | Plan-vs-live diff, health check, real ping ( | Drift, down links, duplicate IPs β and actual reachability |
Security audit |
| Reads the device, not the plan. Credentials never leave it β only the algorithm label |
Live inspection |
| Per-port protocol/duplex/NAT/ACL state, real VLAN database, power-cycle with read-back |
Packet tracing |
| Step the simulation and read why each packet did what it did β PT's own per-OSI-layer decision log, not just pass/fail |
Telemetry |
| Collector address, UDP port, version, source interface |
Backup |
| Real startup-config + serial + config-register; project info; auto-cabling and real-network-access toggles |
Deploy | Real-time bridge to PT (auto-reconciles) | No copy-paste β commands stream directly |
Two channels | HTTP when the extension window is open, file-bridge when it's closed | PT keeps executing with the window minimized/closed |
Projects | Save / open the real | Persist the running topology, not just the plan JSON |
Export | Plans, JS scripts, CLI configs | Reusable project files on disk |
π Full tool reference, device catalog, networking guides and architecture live in the documentation site.
Installation
1. Install the server
pip install packet-tracer-mcpOr from source, if you want to modify it:
git clone https://github.com/Mats2208/MCP-Packet-Tracer
cd MCP-Packet-Tracer
pip install -e .2. Connect your MCP client (Claude Code shown)
Linux Β· macOS Β· Git Bash Β· Windows cmd.exe:
claude mcp add --scope user --transport stdio packet-tracer -- python -m packet_tracer_mcp --stdioWindows PowerShell β quote the -- separator, or PowerShell swallows it and Claude aborts with error: unknown option '-m':
claude mcp add --scope user --transport stdio packet-tracer "--" python -m packet_tracer_mcp --stdioVerify with claude mcp list (look for packet-tracer β¦ β Connected).
3. Install the live-deploy extension β only if you want real-time deploy into a running Packet Tracer
Download V5.2.pts from Releases, then in Packet Tracer go to Extensions β Scripting β Configure PT Script Modules β Addβ¦ and select it. Full walkthrough in Live deploy below.
v0.6.0+ requires V5. The bridge now authenticates with a per-machine token that the V5 extension reads automatically; builds before V5 can't authenticate.
4. Install the Claude Code Skill β recommended; makes the AI use the MCP correctly instead of guessing
The repo ships a companion Agent Skill that teaches the model the exact tool catalog, the discoverβplanβvalidateβdeploy workflow, and the precise Script-Engine API (so it never invents method/model/port names). Install it globally from the repo root:
Linux Β· macOS Β· Git Bash:
mkdir -p ~/.claude/skills/packet-tracer && cp skill/SKILL.md ~/.claude/skills/packet-tracer/SKILL.mdWindows PowerShell:
New-Item -ItemType Directory -Force "$HOME\.claude\skills\packet-tracer" | Out-Null; Copy-Item skill\SKILL.md "$HOME\.claude\skills\packet-tracer\SKILL.md"Then run /reload-skills in Claude Code (or restart it) and confirm with /skills. Details β
Skill docs.
Requires Python 3.11+ (deps
mcp[cli]>=1.13,pydantic>=2.11install automatically). Full setup for every client β Installation docs.
Quick start
Just talk to your AI:
"Build a network with 2 routers, 2 switches, 4 PCs, DHCP and static routing."
The LLM calls pt_full_build, which plans β validates β generates β deploys.
See the Quick Start guide.
Live deploy
Stream topologies into a running Packet Tracer in real time. Install this repo's
own MCP Control Center extension once β the .pts from
Releases β via
Extensions β Scripting β Configure PT Script Modules β Addβ¦, then open
Extensions β MCP BUILDER. It auto-connects to the bridge β no snippet to paste.
π Full steps β Live Deploy Setup.
Clients
Any MCP client drives this server β Claude Code, Cursor, Claude Desktop, VS Code with Copilot, Codex. Nothing in it is client-specific.
There is also one built on it: PacketSmith,
a terminal app that runs these 61 tools with the network drawn beside the conversation β a
fabric tree and a canvas plan derived from the pt_* results themselves, so a device the
model says it created but did not never shows up.
This server alone | This server + PacketSmith | |
Where you talk | the MCP client you already use | a terminal app built for this one job |
What you see | a chat log, plus PT in another window | split screen: reply left, live topology right |
Topology | read out of the tool output | fabric tree and canvas plan, drawn for you |
Tools loaded | every MCP server you have configured | this one only β measurably faster to start |
Engine | whatever your client speaks | Claude, or ~150 providers |
You need this server either way β PacketSmith runs it underneath, and its setup installs it for you. If you already live in Claude Code, you are done here; the client is for when you want the topology in front of you instead of buried in a scrollback.
npm i -g packetsmith # beta Β· MITCredits & Acknowledgements
Live deploy runs through our own Packet Tracer extension β the MCP Control
Center (the .pts in Releases).
Its Script-Engine helper layer was inspired by
PTBuilder by
Kim Knight (@kimmknight), who pioneered driving
Packet Tracer's Script Engine from JavaScript β thanks for the groundwork. π
PTBuilder and Packet Tracer MCP are separate, independent projects. You install our extension, not PTBuilder. Full Credits & Attribution.
Security
Driving Packet Tracer from outside means running a local HTTP bridge whose whole job is to hand JavaScript to PT's Script Engine β code that executes with PT's own privileges, including disk access. That makes the bridge a genuine attack surface, not an implementation detail, and it is hardened accordingly.
The attack this design exists to stop. Binding to 127.0.0.1 is not a
security control. A POST with Content-Type: text/plain is a CORS simple
request: any web page open in your browser can send it to a loopback port
without a preflight and without needing to read the response. An unauthenticated
bridge therefore lets any website you visit β while Packet Tracer happens to be
open β queue arbitrary code inside it. Injection never needed to read anything
back, so same-origin policy alone never closed this.
What actually closes it is a secret the attacking page cannot guess:
Control | Implementation |
Token on every endpoint | Every route except |
| Deliberately unauthenticated so the server can tell who owns the port before trusting it β but it returns only a SHA-256 fingerprint of the token, never the token. |
Foreign-bridge detection | Before sending any payload, the server checks that |
DNS-rebinding defense | The |
Loopback bind |
|
Token at rest |
|
Body size cap | Oversized bodies are rejected with |
Silent failures | Error responses carry no CORS headers, so a hostile page cannot even distinguish why it failed. |
Tamper visibility | Unauthorized attempts are counted and surfaced by |
Regression coverage lives in tests/test_bridge_security.py
and tests/test_injection_regressions.py;
the full suite runs offline with python -m pytest β no Packet Tracer required.
v0.6.0+ requires the V5 extension. Versions before v0.6.0 shipped an unauthenticated bridge and are vulnerable to exactly the attack above. Upgrade β there is no safe configuration of the old bridge.
Deliberate, documented behaviour: pt_send_raw executes arbitrary JavaScript
inside Packet Tracer by design β it is the escape hatch for exploring the IPC
API. It is reachable only by an MCP client you have already authorised, over the
authenticated bridge. That is a capability, not a vulnerability.
Found a vulnerability? Report it privately via GitHub Security Advisories, not a public issue. SECURITY.md documents the full threat model.
What's new
v0.9.0 β the first release you can pip install, and the one that went hunting
for silent false OKs: a topology split into islands that validation approved
with error_count: 0, a bridge handing back the previous operation's result, a
"CONECTIVIDAD OK" reported with 75% packet loss. None of them crashed; all of
them lied. The server also reports its own version during the MCP handshake now β
it used to announce the version of the mcp SDK. v0.8.0 let the agent show the
network instead of only describing it: canvas screenshots plus notes and drawings,
for topologies that document themselves. v0.7.0 made the server read a live
topology, not just build one: security auditing, per-port inspection, packet
tracing with Packet Tracer's own per-layer decision log, NetFlow, and config
backup. Full list in the Changelog.
Contributing
See CONTRIBUTING.md. Tests run offline with
python -m pytest; no Packet Tracer needed.
License
Released under the MIT License β Β© 2026 Mateo (@Mats2208).
Built with MCP Β· Powered by Pydantic Β· Deploys to Cisco Packet Tracer Β· Script-engine logic inspired by PTBuilder
Terminal client built on this server β PacketSmith
If this project is useful to you, star it β and share it with the community.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/Mats2208/MCP-Packet-Tracer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server