Skip to main content
Glama

Servidor MCP de Cisco Packet Tracer

Servidor Model Context Protocol (MCP) que permite a cualquier cliente con soporte MCP (OpenCode, Claude Code, Codex CLI, VS Code, Cursor) planificar, validar, generar y desplegar topologías de red completas directamente en Cisco Packet Tracer a partir de una instrucción en lenguaje natural.

Ejemplo: "crea una red con 3 routers, OSPF y DHCP" -> el servidor planifica, valida, genera configuraciones y despliega la topología en Packet Tracer en tiempo real.

Este repositorio contiene todo lo necesario para replicar el servidor: código fuente, catálogo de dispositivos, módulos, cables, pruebas y configuración de ejemplo para OpenCode.


Tabla de contenidos

  1. Requisitos previos

  2. Instalar Python

  3. Instalar Cisco Packet Tracer

  4. Obtener este repositorio

  5. Instalar el servidor MCP

  6. Instalar OpenCode

  7. Configurar el MCP en OpenCode

  8. Verificar la instalación

  9. Primer uso

  10. Despliegue en vivo en Packet Tracer

  11. Solución de problemas

  12. Estructura del repositorio

  13. Atribución y licencia


Related MCP server: Network Sketcher

1. Requisitos previos

Requisito

Versión mínima

Notas

Sistema operativo

Windows / macOS / Linux

Mismo comportamiento en los tres

Python

3.11+

Requerido

Cisco Packet Tracer

8.2+

Solo para despliegue en vivo (probado en 8.2 y 9.0)

Git

Cualquiera

Para clonar el repositorio

No se necesitan claves, tokens ni variables de entorno. Este repositorio no contiene secretos.


2. Instalar Python

Windows

  1. Descargue el instalador desde python.org/downloads.

  2. Ejecute el instalador y marque la opción "Add Python to PATH".

  3. Verifique en PowerShell:

python --version
# Python 3.11.x o superior

pip --version

macOS

brew install python@3.11
python3 --version

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install python3.11 python3.11-venv python3-pip
python3.11 --version

3. Instalar Cisco Packet Tracer

  1. Regístrese en netacad.com y descargue Cisco Packet Tracer (versión 8.2 o superior; se recomienda 9.0).

  2. Instale siguiendo el asistente de la plataforma.

  3. Abra Packet Tracer al menos una vez para confirmar que funciona.

El despliegue en vivo requiere la extensión MCP-BUILDER incluida en este repositorio (V3-MCP-BUILDER.pts). Véase la sección 10. Despliegue en vivo.


4. Obtener este repositorio

git clone https://github.com/oropezagabriel2004-blip/MCP-packet
cd MCP-packet

5. Instalar el servidor MCP

5.1. Crear un entorno virtual (recomendado)

Windows (PowerShell):

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -e .

macOS / Linux:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

5.2. Instalar dependencias opcionales

Herramientas offline de archivos .pkt/.pka (opcional, requiere twofish):

pip install -e ".[offline]"

Dependencias de desarrollo y pruebas (opcional):

pip install -e ".[dev]"

5.3. Verificar la instalación del paquete

python -m packet_tracer_mcp --help

También se instala un script de consola pt-mcp:

pt-mcp --stdio

6. Instalar OpenCode

Windows

OpenCode se distribuye como binario nativo. La forma más sencilla es con npm:

npm install -g @opencode/cli

Si no tiene Node.js instalado, descárguelo desde nodejs.org (versión LTS) y vuelva a ejecutar el comando.

Verifique:

opencode --version

macOS

brew install opencode 2>/dev/null || npm install -g @opencode/cli
opencode --version

Linux

npm install -g @opencode/cli
opencode --version

Nota: Windows no soporta gestores de paquetes para OpenCode. Use npm o descargue el binario standalone desde la página oficial.


7. Configurar el MCP en OpenCode

Este repositorio incluye un archivo opencode.jsonc en la raíz que registra el servidor MCP de Packet Tracer. El archivo usa la ruta python del sistema; para que funcione con el entorno virtual, modifique la ruta del intérprete.

7.1. Configuración por proyecto (recomendada)

Abra el repositorio en OpenCode y edite opencode.jsonc para usar el Python del entorno virtual:

Windows:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "packet-tracer": {
        "type": "local",
        "command": [
          "C:\\Users\\SU_USUARIO\\MCP-packet\\.venv\\Scripts\\python.exe",
          "-m",
          "packet_tracer_mcp",
          "--stdio"
        ]
      }
    }
  }
}

macOS / Linux:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "packet-tracer": {
        "type": "local",
        "command": [
          "/ruta/a/MCP-packet/.venv/bin/python",
          "-m",
          "packet_tracer_mcp",
          "--stdio"
        ]
      }
    }
  }
}

7.2. Configuración global (opcional)

Si desea usar el MCP desde cualquier directorio, regístrelo globalmente:

opencode mcp add packet-tracer --global -- .venv/Scripts/python.exe -m packet_tracer_mcp --stdio

En Windows use la ruta absoluta al intérprete del entorno virtual.

7.3. Alternativa: usar el CLI de OpenCode

opencode mcp add packet-tracer -- npx -y example-mcp-server

Adapte el comando al intérprete de Python que tenga instalado el paquete.


8. Verificar la instalación

8.1. Probar el servidor manualmente

En una terminal, ejecute:

python -m packet_tracer_mcp --stdio

El servidor se iniciará en modo stdio y esperará entrada. Presione Ctrl+C para detenerlo.

8.2. Verificar desde OpenCode

  1. Abra OpenCode en el directorio del repositorio.

  2. Ejecute:

opencode mcp list

Debería aparecer packet-tracer con estado Connected.

8.3. Ejecutar las pruebas

python -m pytest tests/ -q

Resultado esperado:

389 passed in ~10s

8.4. Probar una herramienta

Desde OpenCode, pida al asistente:

"Lista los dispositivos disponibles en Packet Tracer"

El asistente invocará pt_list_devices y mostrará los 74 modelos soportados.


9. Primer uso

Ejemplo básico

Pida al asistente de OpenCode:

"Crea una red con 2 routers, 2 switches, 4 PCs, DHCP y enrutamiento estático"

El servidor ejecutará el pipeline completo:

  1. Planificación -> genera un TopologyPlan con dispositivos, enlaces, IPs, DHCP y rutas.

  2. Validación -> verifica modelos, puertos, cables e IPs.

  3. Generación -> produce el script JavaScript para Packet Tracer y las configuraciones IOS.

  4. Despliegue -> envía los comandos al bridge HTTP (si está conectado) o exporta a archivos.

Transporte HTTP (opcional)

Para compartir una sola instancia del servidor entre varios clientes:

python -m packet_tracer_mcp
# Servidor en http://127.0.0.1:39000/mcp
# Bridge en http://127.0.0.1:54321

10. Despliegue en vivo en Packet Tracer

El despliegue en vivo envía comandos directamente a una instancia de Packet Tracer en ejecución.

10.1. Instalar la extensión MCP-BUILDER

  1. Copie el archivo V3-MCP-BUILDER.pts a la carpeta extensions/ del directorio de instalación de Packet Tracer (no la carpeta por usuario):

    • Windows: C:\Program Files\Cisco Packet Tracer <versión>\extensions\

    • macOS / Linux: carpeta extensions/ dentro de la instalación de Packet Tracer

  2. Reinicie Packet Tracer.

  3. En el primer inicio, Packet Tracer mostrará un aviso de "load this extension?" -> haga clic en Yes.

  4. La ventana MCP-BUILDER se abrirá automáticamente. Déjela visible (puede moverla a una esquina); si se oculta, QtWebEngine congela los temporizadores y el polling se detiene.

En Windows puede necesitar ejecutar Packet Tracer o copiar el archivo como administrador para escribir en Program Files.

10.2. Verificar la conexión

Desde OpenCode, pida al asistente:

"Verifica el estado del bridge de Packet Tracer"

El asistente invocará pt_bridge_status. Debería reportar que el bridge está activo y PTBuilder está haciendo polling.

10.3. Método alternativo (sin extensión)

Si prefiere usar el builder integrado de Packet Tracer:

  1. Vaya a Extensions -> Builder Code Editor.

  2. Pegue este fragmento y haga clic en Run:

/* PT-MCP Bridge */ window.webview.evaluateJavaScriptAsync("setInterval(function(){var x=new XMLHttpRequest();x.open('GET','http://127.0.0.1:54321/next',true);x.onload=function(){if(x.status===200&&x.responseText){$se('runCode',x.responseText)}};x.onerror=function(){};x.send()},500)");

Use solo comentarios de bloque /* */. Los comentarios de línea // rompen el snippet porque Packet Tracer elimina los saltos de línea internamente.


11. Solución de problemas

Síntoma

Causa

Solución

pt_bridge_status reporta PT no conectado

QtWebEngine congela temporizadores de webviews ocultos

Mantenga la ventana MCP-BUILDER visible

La extensión .pts no aparece en PT 9.0

PT 9.0 no escanea la carpeta de extensiones por usuario

Copie V3-MCP-BUILDER.pts a la carpeta extensions/ del directorio de instalación

"Could not start the HTTP bridge on :54321"

Otro proceso ocupa el puerto 54321

Detenga el proceso: Get-NetTCPConnection -LocalPort 54321 en PowerShell

addModule devuelve false silenciosamente

El argumento slot fue un entero en lugar de cadena

Pase el slot como cadena: "0/0" para HWIC, "0" para NIM

Error "Invalid arguments for IPC call createLink"

addLink() sin el 5º argumento (tipo de cable)

Siempre pase el cable: addLink("R1","Gig0/0","SW1","Gig0/1","straight")

El snippet del bridge no hace polling

PTBuilder elimina saltos de línea; // comenta el resto

Use solo comentarios /* */

Instalar 2+ módulos con llamadas separadas agota el bridge

Cada llamada reinicia el dispositivo

Use pt_install_modules_batch

Claude Desktop (MSIX) no enciende el indicador MCP

El sandbox MSIX no expone python en PATH

Reemplace "command": "python" por la ruta absoluta del intérprete

ModuleNotFoundError: No module named 'imp'

twofish 0.3.0 importa imp, eliminado en Python 3.12

El archivo offline-tools/_twofish_compat.py se carga automáticamente

Un proyecto exportado no aparece en el repositorio

ProjectRepository es relativo al directorio de trabajo del servidor

Inicie el servidor desde la raíz del repositorio


12. Estructura del repositorio

MCP-packet/
├── src/packet_tracer_mcp/     # Código fuente del servidor MCP
│   ├── adapters/mcp/          # Registro de herramientas y recursos MCP
│   ├── application/           # Casos de uso y DTOs
│   ├── domain/                # Modelos, servicios y reglas de negocio
│   ├── infrastructure/        # Catálogo, generadores, ejecución, persistencia
│   ├── shared/                # Enums, constantes y utilidades
│   ├── server.py              # Instancia FastMCP
│   ├── settings.py            # Configuración del servidor
│   └── __main__.py            # Punto de entrada: python -m packet_tracer_mcp
├── tests/                     # 389 pruebas automatizadas
├── offline-tools/             # Utilidades para archivos .pkt/.pka/.pts
├── demo/                      # Imágenes de demostración
├── img/                       # Capturas de pantalla
├── docs/                      # Documentación adicional
├── scripts/                   # Scripts auxiliares
├── V3-MCP-BUILDER.pts         # Extensión de Packet Tracer para despliegue en vivo
├── opencode.jsonc             # Configuración de ejemplo para OpenCode
├── pyproject.toml             # Metadatos y dependencias del paquete
├── LICENSE                    # Licencia MIT
├── SECURITY.md                # Política de seguridad
└── README.md                  # Este archivo

Resumen de capacidades

Categoría

Cantidad

Herramientas MCP

71

Recursos MCP

5

Modelos de dispositivos

74

Módulos de expansión

150

Tipos de cable

15

Plantillas de topología

9

Protocolos de enrutamiento

Static, OSPF, EIGRP, RIP

Pruebas automatizadas

389


13. Atribución y licencia

Este proyecto se basa en MCP-Packet-Tracer (licencia MIT, autor: Mateo). Se conservan los avisos de licencia y autoría originales.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

MIT License
Copyright (c) 2026 Mateo - Packet Tracer MCP Server

Puede usar, modificar y distribuir este software libremente, siempre que se mantenga el aviso de licencia.

Créditos


Construido con MCP - Impulsado por Pydantic - Se despliega en Cisco Packet Tracer

Related MCP Connectors

Related MCP Servers