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
- Requisitos previos
- Instalar Python
- Instalar Cisco Packet Tracer
- Obtener este repositorio
- Instalar el servidor MCP
- Instalar OpenCode
- Configurar el MCP en OpenCode
- Verificar la instalación
- Primer uso
- Despliegue en vivo en Packet Tracer
- Solución de problemas
- Estructura del repositorio
- Atribución y licencia
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
- Descargue el instalador desde python.org/downloads.
- Ejecute el instalador y marque la opción "Add Python to PATH".
- 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
- Regístrese en netacad.com y descargue Cisco Packet Tracer (versión 8.2 o superior; se recomienda 9.0).
- Instale siguiendo el asistente de la plataforma.
- 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
- Abra OpenCode en el directorio del repositorio.
- 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:
- Planificación -> genera un
TopologyPlancon dispositivos, enlaces, IPs, DHCP y rutas. - Validación -> verifica modelos, puertos, cables e IPs.
- Generación -> produce el script JavaScript para Packet Tracer y las configuraciones IOS.
- 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
- Copie el archivo
V3-MCP-BUILDER.ptsa la carpetaextensions/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
- Windows:
- Reinicie Packet Tracer.
- En el primer inicio, Packet Tracer mostrará un aviso de "load this extension?" -> haga clic en Yes.
- 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:
- Vaya a Extensions -> Builder Code Editor.
- 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
- Proyecto original: mex-i/MCP-Packet-Tracer
- Protocolo MCP: modelcontextprotocol.io
- Cisco Packet Tracer: netacad.com
Construido con MCP - Impulsado por Pydantic - Se despliega en Cisco Packet Tracer