Packet-Tracer-MCP
Packet Tracer MCP
Servidor MCP que permite a Claude Code construir y configurar topologías en Cisco Packet Tracer hablando en lenguaje natural: crear dispositivos, cablearlos, aplicar comandos IOS, VLANs, OSPF, NAT, ACLs, VoIP, o reproducir una red completa a partir de la imagen de un diagrama.
Tu -> Claude Code --stdio--> mcp_server.py --HTTP--> bridge :54321
|
Packet Tracer <-----------+
modulo Builder:
bridge.js (pagina: hace el polling)
bridge_runner.js (motor: ejecuta y devuelve)El bridge HTTP corre dentro del servidor MCP: no hace falta una terminal aparte para levantarlo. Y el loop de polling vive dentro del modulo Builder: tampoco hay que pegar nada en Packet Tracer.
Requisitos
gestiona Python y las dependencias | |
Cisco Packet Tracer | probado en 9.0.0 (Windows) |
Claude Code | cliente MCP |
Related MCP server: packet-tracer-mcp
Puesta en marcha (una sola vez)
1. Dependencias
uv sync2. Instalar el modulo Builder en Packet Tracer
packet_tracer/Builder.pts es el modulo de script que define dentro de PT las
funciones que usa este proyecto (addDevice, addLink, addModule,
configureIosDevice, configurePcIp, getDevices, removeLink, addLabel,
saveTopology) y el puente que lo comunica con el bridge HTTP.
Sin este modulo nada funciona.
En Packet Tracer (menus en ingles, verificado en PT 9.0.0):
Extensions->Scripting->Configure PT Script ModulesAdd-> seleccionapacket_tracer/Builder.ptsde este repoSelecciona Builder en la lista ->
Settings-> marca On Startup, para que el modulo arranque solo cada vez que abras PTPara confirmar que esta corriendo: en el menu
Extensionsdebe aparecer la entrada Builder Code Editor. Si no aparece, el modulo no arranco.
Al arrancar, el modulo abre solo la ventana Builder Code Editor. Esa ventana es la que hospeda el loop de polling, asi que debe quedarse abierta mientras trabajas; si su titulo dice "bridge activo", el puente esta funcionando.
3. Abrir el proyecto en Claude Code
Desde una terminal, en la carpeta del proyecto:
claudeClaude Code lee .mcp.json y levanta el servidor MCP (y con el, el bridge HTTP) automaticamente. La primera vez puede pedirte que confirmes que confias en la carpeta.
Para comprobar que el servidor esta conectado, escribe /mcp dentro de Claude
Code: debe aparecer packet-tracer con sus herramientas.
Uso diario
1. Abre Packet Tracer
-> la ventana "Builder Code Editor" se abre sola y debe quedarse abierta
2. En una terminal, en la carpeta del proyecto:
cd ruta/al/pt_MCP
claude
3. Dentro de Claude Code:
/pt-iniciar -> confirma que las 3 piezas respondenNo hay que arrancar nada mas: ni main.py, ni pegar scripts en Packet Tracer,
ni terminales adicionales.
Y a partir de ahi, en lenguaje natural:
«Crea dos routers 2911 unidos por serial con la 10.0.0.0/30 y una PC en cada LAN»
/pt-desde-imagen diagramas/ejemplo-red1.jpeg— reproduce la topologia de un diagrama«Configura VLAN 10 VENTAS en SW1 y pon los puertos 1-4 en access»
Si algo no aparece en el canvas, pidele a Claude que llame verificar_entorno():
dice cual de las tres piezas esta caida y como levantarla.
Estructura
Archivo | Rol |
| Servidor MCP: 38 herramientas de red + bridge HTTP embebido |
| App FastAPI del bridge (colas de comandos y resultados) |
| Modulo de script de PT, listo para importar |
| Loop de polling (va en Custom Interfaces del modulo) |
| Ejecutor con canal de vuelta (va en Script Engine) |
| Instrucciones y reglas que sigue Claude Code |
|
|
| Diagramas de entrada para /pt-desde-imagen (ver su README) |
| Script suelto que habla directo al bridge: ejemplo y depuracion sin Claude |
Los dos .js de packet_tracer/ ya van dentro de Builder.pts; estan sueltos en
el repo para poder leerlos, versionarlos y reimportarlos si hace falta.
uv run python main.py sigue sirviendo para levantar el bridge solo, sin MCP
(es lo que necesitan esos scripts de depuracion).
Como viaja un comando
Claude llama a una herramienta MCP, que traduce a una linea de JS de PT.
mcp_server.pyla encola conPOST /add_command.bridge.js, dentro de la ventana Builder Code Editor, la recoge conGET /next_command(cada 2 s) y llama$se('runCodeBridge', codigo).bridge_runner.jsla ejecuta en el script engine y, si devuelve un valor, se lo entrega de vuelta a la pagina conevaluateJavaScriptAsync.La pagina lo publica con
POST /command_resultymcp_server.pylo recoge.
El paso 4 es necesario porque $se() solo confirma que despacho la llamada
(resuelve a true), nunca entrega el valor del codigo ejecutado.
Cada consulta viaja envuelta en una marca unica (a1b2c3d4|...) y solo se
acepta el resultado que la trae de vuelta. Sin eso, una respuesta que llega
tarde se queda en la cola y la siguiente consulta recoge la respuesta
equivocada.
Limitaciones conocidas
Packet Tracer no expone el output de los comandos IOS:
hacer_ping()yobtener_tabla_routing()envian el comando, pero su salida solo se ve en la consola del dispositivo dentro de PT. Las consultas por API (getDevices(), estado de puertos) si devuelven datos.crear_dispositivo(),conectar_dispositivos(),agregar_modulo_router()yeliminar_conexion()confirman el resultado real ([OK] / [ERROR]). El resto de comandos de escritura (configuracion IOS) se encolan sin confirmacion:Exito: Comando enviadosignifica encolado, no ejecutado.Al crear ciertos dispositivos, PT agrega automaticamente un
Power Distribution Device0al canvas. Aparece en los inventarios y no es un error.obtener_puertos_dispositivo()lee los puertos reales del dispositivo en PT, incluidos los de las tarjetas instaladas, y dice cuales estan libres.diagnosticar_red()no ve subinterfaces 802.1Q, VLANs ni tablas de routing: que no reporte fallos no garantiza conectividad.La ventana Builder Code Editor debe permanecer abierta: es donde vive el loop.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceConnects Claude with Cisco Packet Tracer 9.x to control network topologies, configure devices with IOS commands, and run diagnostics via natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables control of Cisco Packet Tracer 9.0 via natural language, allowing creation of network topologies, device configuration, and simulation launches through an MCP interface.998MIT
- AlicenseBqualityBmaintenanceEnables automation of Cisco Packet Tracer simulations by placing devices, connecting links, and generating IOS configurations via MCP, ideal for network coursework and demonstrations.231MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Cisco Packet Tracer in real time, allowing natural language-driven creation and configuration of network topologies.4MIT
Related MCP Connectors
Generate cloud architecture diagrams, flowcharts, and sequence diagrams.
Turns vague automation requests into tool stacks, prompts, QA checks, and human boundaries.
Designs, prices, and deploys AWS/GCP cloud infrastructure from plain-English requirements.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cvz-dev/Packet-Tracer-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server