Servidor MCP (Model Context Protocol) que conecta Claude con Cisco Packet Tracer 9.x mediante su REST API. Permite controlar topologías de red, configurar dispositivos con comandos IOS y ejecutar diagnósticos directamente desde Claude.
MCP Packet Tracer/
├── mcpApp.py # Entry point — servidor MCP (15 herramientas)
├── models/
│ ├── device.py # Device, Interface, DeviceType
│ ├── link.py # Link, LinkType
│ └── network.py # Network (topología completa)
├── views/
│ ├── device_view.py # Formateo de dispositivos para Claude
│ └── network_view.py # Formateo de topología y conexiones
├── controllers/
│ ├── device_controller.py # CRUD de dispositivos
│ ├── network_controller.py # Topología y conexiones
│ └── command_controller.py # CLI IOS y diagnósticos
├── services/
│ └── packet_tracer_service.py # Cliente HTTP → PT REST API
└── requirements.txt
El patrón MVC separa responsabilidades:
| Capa | Responsabilidad |
|---|---|
| Models | Representación de datos (Pydantic v2) |
| Views | Formateo de respuestas en texto legible |
| Controllers | Lógica de negocio, orquesta services y views |
| Services | Comunicación HTTP con la REST API de Packet Tracer |
- Python 3.10+ (probado en 3.11.9)
- Cisco Packet Tracer 9.x con REST API habilitada en el puerto
39000 - Claude Desktop o Claude Code (extensión VS Code)
1. Clonar el repositorio
git clone https://github.com/mainorcruz/MCP_Packet_Tracer.git
cd MCP_Packet_Tracer2. Crear entorno virtual con Python 3.11
py -3.11 -m venv .venv3. Instalar dependencias
.venv\Scripts\pip install -r requirements.txt4. Verificar que el servidor carga correctamente
.venv\Scripts\python -c "from mcpApp import mcp; print('OK —', len(mcp._tool_manager._tools), 'herramientas')"Edita o crea %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"packet-tracer": {
"command": "C:\\ruta\\al\\proyecto\\.venv\\Scripts\\python.exe",
"args": [
"C:\\ruta\\al\\proyecto\\mcpApp.py"
]
}
}
}Edita ~\.claude\settings.json:
{
"mcpServers": {
"packet-tracer": {
"command": "C:\\ruta\\al\\proyecto\\.venv\\Scripts\\python.exe",
"args": [
"C:\\ruta\\al\\proyecto\\mcpApp.py"
]
}
}
}Reemplaza C:\\ruta\\al\\proyecto con la ruta absoluta donde clonaste el repositorio.
- Abre Packet Tracer 9.x
- Ve a Edit → Preferences → API
- Activa la opción Enable API
- Confirma que el puerto sea
39000 - Reinicia Packet Tracer si es necesario
Una vez activo el servidor, Claude tiene acceso a las siguientes herramientas:
| Herramienta | Descripción |
|---|---|
health_check |
Verifica la conexión con Packet Tracer |
| Herramienta | Descripción |
|---|---|
list_devices |
Lista todos los dispositivos de la topología |
get_device |
Detalle completo de un dispositivo por ID |
find_device |
Busca un dispositivo por nombre (parcial) |
add_device |
Agrega un nuevo dispositivo |
remove_device |
Elimina un dispositivo |
get_interfaces |
Lista interfaces con IP, MAC y estado |
| Herramienta | Descripción |
|---|---|
get_topology |
Topología completa agrupada por tipo de dispositivo |
list_links |
Lista todas las conexiones con tipo de cable y estado |
add_link |
Conecta dos interfaces de dispositivos distintos |
remove_link |
Elimina una conexión |
| Herramienta | Descripción |
|---|---|
execute_cli |
Ejecuta un comando IOS en un dispositivo |
execute_config_block |
Ejecuta un bloque de comandos IOS en secuencia |
ping |
Ping desde un dispositivo hacia una IP |
traceroute |
Traceroute desde un dispositivo hacia una IP |
Ver la topología:
"Muéstrame todos los dispositivos de la red"
Configurar una interfaz:
"Configura la interfaz GigabitEthernet0/0 del Router0 con IP 192.168.1.1 y máscara 255.255.255.0"
Claude ejecutará internamente:
execute_config_block(
device="Router0",
commands=[
"configure terminal",
"interface GigabitEthernet0/0",
"ip address 192.168.1.1 255.255.255.0",
"no shutdown",
"end"
]
)
Probar conectividad:
"Haz un ping desde PC0 a 192.168.1.1"
Conectar dos dispositivos:
"Conecta el Router0 (Gig0/1) con el Switch0 (Fa0/1) usando cable directo"
Router · Switch · PC · Server · WirelessRouter · AccessPoint · Firewall
CopperStraight · CopperCrossover · Fiber · Serial · Wireless
| Paquete | Versión | Uso |
|---|---|---|
mcp |
≥ 1.0.0 | SDK del protocolo MCP |
httpx |
≥ 0.27.0 | Cliente HTTP async para la PT REST API |
pydantic |
≥ 2.0.0 | Validación y serialización de modelos |
MIT