MCP server that drives Cisco Packet Tracer through a bridge extension.
Project description
cisco-pt-mcp
Let AI clients control a running Cisco Packet Tracer instance. Open source.
Install
Two components. Five minutes.
1. MCP Server
Install uv if you don't have it, then register with your client:
Claude Code
claude mcp add cisco-pt-mcp --scope user -- uvx cisco-pt-mcp
Cursor (~/.cursor/mcp.json or .cursor/mcp.json per project)
{
"mcpServers": {
"cisco-pt-mcp": { "command": "uvx", "args": ["cisco-pt-mcp"] }
}
}
VS Code (.vscode/mcp.json)
{
"servers": {
"cisco-pt-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["cisco-pt-mcp"]
}
}
}
Codex CLI (~/.codex/config.toml)
[mcp_servers.cisco-pt-mcp]
command = "uvx"
args = ["cisco-pt-mcp"]
2. Packet Tracer Extension
- Open Packet Tracer.
- Go to Extensions → Scripting → Configure PT Script Modules…
- Click Add and select
cisco-pt-mcp.pts. - Restart Packet Tracer.
3. Run
Click Extensions → Packet Tracer MCP to open the bridge window, then start your MCP client. The status pill flips to connected within a second. Start prompting.
Tools
| Tool | Description |
|---|---|
addDevice |
Drop a router, switch, or PC onto the canvas |
addModule |
Install an interface module into a device slot |
addLink |
Connect two devices with a cable |
removeDevice |
Delete one or more devices |
removeLink |
Delete one or more cables |
renameDevice |
Rename an existing device |
moveDevice |
Reposition a device on the canvas |
setPower |
Power a device on or off |
configurePcIp |
Set IP, subnet, gateway, DNS, or enable DHCP on a PC |
configureIosDevice |
Run IOS CLI commands on a router or switch |
getNetwork |
Snapshot of all devices, interfaces, and cables |
getDeviceInfo |
Detailed view of a single device |
setSimulationMode |
Switch between simulation and realtime mode |
getSimulationStatus |
Query simulation state and frame count |
stepSimulation |
Step the simulation forward, backward, or reset |
sendPdu |
Add an ICMP ping PDU between two devices |
getPduResults |
Read PDU outcomes after stepping the simulation |
getCommandLog |
Read the IOS command history logged by Packet Tracer |
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cisco_pt_mcp-0.1.5.tar.gz.
File metadata
- Download URL: cisco_pt_mcp-0.1.5.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
287b1a2b2234cbf0539dae51ca4cd23ac7e1f9bf485a1852a2d4bb42c5a74eab
|
|
| MD5 |
22d6df707db0d06aa8f1350186f7cafb
|
|
| BLAKE2b-256 |
1490365fffc0d80d0cd438392c2ea2264f041b544bfc450749c9485daffa24ee
|
Provenance
The following attestation bundles were made for cisco_pt_mcp-0.1.5.tar.gz:
Publisher:
publish.yml on muhammadbalawal/cisco-pt-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cisco_pt_mcp-0.1.5.tar.gz -
Subject digest:
287b1a2b2234cbf0539dae51ca4cd23ac7e1f9bf485a1852a2d4bb42c5a74eab - Sigstore transparency entry: 1570074585
- Sigstore integration time:
-
Permalink:
muhammadbalawal/cisco-pt-mcp@1321c0cfc9ede271edf2a6288400cfd2c53cab03 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/muhammadbalawal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1321c0cfc9ede271edf2a6288400cfd2c53cab03 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cisco_pt_mcp-0.1.5-py3-none-any.whl.
File metadata
- Download URL: cisco_pt_mcp-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e752be1d305d97f6010c736934358b84f061fed5e3398a753d5dd7f01f4837a3
|
|
| MD5 |
93f0c939c7f5d927110cb4a347711aa8
|
|
| BLAKE2b-256 |
1022268c94e1ad29b93f7fa4566f57908dff99f13d3e1c558f0f73dba3ae6439
|
Provenance
The following attestation bundles were made for cisco_pt_mcp-0.1.5-py3-none-any.whl:
Publisher:
publish.yml on muhammadbalawal/cisco-pt-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cisco_pt_mcp-0.1.5-py3-none-any.whl -
Subject digest:
e752be1d305d97f6010c736934358b84f061fed5e3398a753d5dd7f01f4837a3 - Sigstore transparency entry: 1570074690
- Sigstore integration time:
-
Permalink:
muhammadbalawal/cisco-pt-mcp@1321c0cfc9ede271edf2a6288400cfd2c53cab03 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/muhammadbalawal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1321c0cfc9ede271edf2a6288400cfd2c53cab03 -
Trigger Event:
push
-
Statement type: