Installation¶
Requirements¶
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.11+ | |
mcp[cli] |
≥ 1.13, < 2 | Installed automatically |
pydantic |
≥ 2.11, < 3 | Installed automatically |
| Cisco Packet Tracer | 8.2+ (tested on 9.0 and 9.0.1: Windows, macOS, Linux) | Only for live deploy |
| MCP Control Center extension | latest | This project's own PT extension (.pts in Releases), only for live deploy — see Live Deploy Setup |
pydantic ≥ 2.11 is required
Modern mcp builds tool output schemas from return annotations and needs
pydantic ≥ 2.11. An older pydantic makes the server crash on startup. The
pinned dependencies handle this for you; just don't force an older pydantic.
Let your AI agent install it¶
Paste this into Claude Code, OpenCode, Codex or any coding agent:
Install the Packet Tracer MCP from https://github.com/Mats2208/MCP-Packet-Tracer and set everything up for me.
The agent follows llms-install.md,
does every step below, and leaves you one click: Yes when Packet Tracer asks to enable the extension.
Install the server¶
Install uv, which brings its own Python:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS · Linux
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows
There is nothing else to install: the client runs the server with uvx packet-tracer-mcp --stdio, which
downloads and caches it on first use.
pip
pip install packet-tracer-mcp also works (then the command is python -m packet_tracer_mcp --stdio),
but on macOS/Homebrew and recent Linux distros a plain pip install is refused with
externally-managed-environment (PEP 668). Use uv or a virtualenv there.
Or from source, if you want to modify it:
The extension is not part of the package
The server and the skill come from the package; the .pts extension is a module compiled by Packet
Tracer itself, so it ships as a
release asset and Packet Tracer only
accepts it through its own Extensions menu.
Connect your MCP client¶
Linux · macOS · Git Bash · Windows cmd.exe:
Windows PowerShell — quote the -- separator:
PowerShell eats a bare --
In Windows PowerShell the bare -- separator is consumed before it reaches the
claude CLI, so Claude treats the following -m as one of its own options and
aborts with error: unknown option '-m'. Quoting it ("--") passes it through
literally. Alternatively use the cmd.exe/Git Bash form above, or wrap the whole
command in cmd /c "…".
Verify (any shell):
Remove later with claude mcp remove packet-tracer --scope user.
Add to your MCP config (.vscode/mcp.json or user settings):
Live deploy extension (optional)¶
To stream topologies into a running Packet Tracer, also install this project's own MCP Control Center extension:
- Download
MCP-Control-Center.ptsfrom Releases (latest). - In Packet Tracer: Extensions → Scripting → Configure PT Script Modules → Add…,
select
MCP-Control-Center.pts, and confirm. - Open Extensions → MCP BUILDER — it auto-connects to the bridge.
Linux (verified on Ubuntu 26.04 with PT 9.0.1)
- PT ships as a single AppImage in
/opt/pt, so there is noextensionsfolder to copy the module into: step 2 above is the way on Linux. - Accept the EULA once by running
packettracerin a terminal. Started from the menu, PT waits for an answer it never gets and no window appears. - On Ubuntu 26.04 PT also needs
sudo apt install libopengl0 libts0t64(otherwise:libOpenGL.so.0: cannot open shared object file). - PT's user folder is
~/pt; saved labs go to~/pt/saves.
Full walkthrough → Live Deploy Setup.
Agent Skill (required in practice)¶
The package 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 the AI drives the MCP from verified facts instead of guessing. Install it into your agent's skills folder:
uvx packet-tracer-mcp install-skill # Claude Code, OpenCode → ~/.claude/skills
uvx packet-tracer-mcp install-skill --dest ~/.agents/skills # Codex
Then run /reload-skills (or restart your agent) and confirm with /skills. Full details →
Claude Code Skill.
Transport modes¶
- stdio (recommended for desktop clients): the client spawns the server as a
child process. The internal HTTP bridge to Packet Tracer (
:54321) still starts automatically inside that process — live deploy works the same. - streamable-http (
http://127.0.0.1:39400/mcp): start the server yourself withpython -m packet_tracer_mcpand let multiple clients share one instance.
If the client can't find uvx
A shell or app opened before installing uv doesn't see it yet: restart it, or put the full path in
command (~/.local/bin/uvx on macOS/Linux, %USERPROFILE%\.local\bin\uvx.exe on Windows).
Next: run the Quick Start example.