Skip to content

mainorcruz/MCP_Packet_Tracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Packet Tracer

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.

Arquitectura

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

Requisitos

  • 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)

Instalación

1. Clonar el repositorio

git clone https://github.com/mainorcruz/MCP_Packet_Tracer.git
cd MCP_Packet_Tracer

2. Crear entorno virtual con Python 3.11

py -3.11 -m venv .venv

3. Instalar dependencias

.venv\Scripts\pip install -r requirements.txt

4. Verificar que el servidor carga correctamente

.venv\Scripts\python -c "from mcpApp import mcp; print('OK —', len(mcp._tool_manager._tools), 'herramientas')"

Configuración en Claude

Claude Desktop

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"
      ]
    }
  }
}

Claude Code (VS Code)

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.

Habilitar la REST API en Packet Tracer

  1. Abre Packet Tracer 9.x
  2. Ve a Edit → Preferences → API
  3. Activa la opción Enable API
  4. Confirma que el puerto sea 39000
  5. Reinicia Packet Tracer si es necesario

Herramientas disponibles

Una vez activo el servidor, Claude tiene acceso a las siguientes herramientas:

Diagnóstico

Herramienta Descripción
health_check Verifica la conexión con Packet Tracer

Dispositivos

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

Red y Conexiones

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

CLI y Diagnósticos

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

Ejemplos de uso con Claude

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"

Tipos de dispositivos soportados

Router · Switch · PC · Server · WirelessRouter · AccessPoint · Firewall

Tipos de cable soportados

CopperStraight · CopperCrossover · Fiber · Serial · Wireless

Dependencias

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

Licencia

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages