pktctl
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PKTCTL_ADDR | No | Optional host:port of Packet Tracer's IPC listener. When unset, pktctl looks on 127.0.0.1, ports 39000 to 39009. | |
| PKTCTL_APP_ID | Yes | App id pktctl is registered under in Packet Tracer (Extensions > IPC > Configure Apps), for example dev.pktctl. | |
| PKTCTL_SECRET | Yes | Secret registeretup_exapp tool writes theregistration file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| activity_instructionsB | Read a page of the open activity's instructions, as text and as HTML. |
| activity_statusA | Progress of the open activity (.pka): percentage complete, score, assessment items and points, instruction pages, time elapsed or left. For a plain network it only says it is not an activity. |
| add_deviceA | Add a device to the logical workspace by model name (see list_models), optionally naming it and placing it at x/y. Routers and switches boot immediately. Returns the device as Packet Tracer now shows it. |
| add_locationA | Create a place in the physical workspace: a |
| add_moduleA | Install a module (for example HWIC-2T for serial ports) in an empty slot. The device is powered off, the module inserted and the device powered back on, exactly like real hardware, so unsaved configuration is lost. Returns the ports the module added. |
| add_noteA | Write a text note on the logical canvas, for example to label a subnet or a VLAN. Returns the note with its id. |
| add_pduA | Send a simple PDU (ICMP echo) from one device to another, like the Add Simple PDU button. In Realtime mode it goes at once; in Simulation mode it waits for simulation_step. |
| add_server_userC | Add an FTP account (with permissions such as RWDNL) or an email account to a server. |
| arrange_devicesA | Lay devices out inside a room, building, rack or table of the physical workspace, moving in the ones that are somewhere else. Positions are percentages of the room, which is how Packet Tracer draws them: leave them out for an even grid, set |
| browse_webA | Open a URL in the Web Browser of a PC, laptop or server, like typing it and pressing Go, and return the page Packet Tracer served: its status (ok, timeout, host_not_found, ...), the server's address, the HTML and the text. Names are resolved through the host's DNS server. |
| call_ipcA | Call any Packet Tracer IPC method: start at a root or an object uuid and chain |
| check_activityB | Run the open activity's connectivity tests and return them with the current completion and score, like Check Results. |
| configure_access_pointA | Set the SSID, security (open, wep, wpa_psk, wpa2_psk), key and SSID broadcast of an access point or wireless router. Clients keep their current association until connect_wireless reconnects them. |
| configure_dhcp_serverB | Configure the DHCP service of a server: switch it on and create or update pools (gateway, DNS, start address, mask, maximum users). Existing pools with the same name are updated. |
| configure_dns_serverB | Switch a server's DNS service on and add A, CNAME or NS records. |
| configure_emailB | Set up the Email app of a PC, laptop or server: display name, address, user name, password and the incoming (POP3) and outgoing (SMTP) servers. Returns the account as Packet Tracer now has it. |
| configure_hostA | Set the IPv4 configuration of a PC, laptop or server: either DHCP, or a static ip and mask with optional gateway and DNS. Catches classic mistakes (invalid mask, host address equal to the network or broadcast, gateway outside the subnet) before touching Packet Tracer. |
| configure_host_ipv6A | Set the IPv6 configuration of a PC, laptop or server, like the IPv6 part of IP Configuration: |
| configure_iosA | Apply a block of IOS configuration commands to a router or switch, as if typed after |
| connectA | Cable two ports together. Both ports must exist and be free. With the default |
| connect_wirelessA | Connect a laptop, PC or other client with a wireless card to a network: SSID, security and key, plus DHCP or a static address. Packet Tracer only associates when a network is loaded, so pktctl takes the network as bytes, sets the client's current profile, opens the result as a temporary copy (your own file is not written) and reports whether it associated and with which access point. |
| describe_ipcA | Explore Packet Tracer's complete IPC API (every class, method, argument and enum of the official framework). Give |
| disconnectB | Remove the cable plugged into a port. |
| drawA | Draw on the logical canvas: a |
| fast_forwardA | Press Realtime mode's Fast Forward Time button: timers jump ahead so spanning tree converges, DHCP leases arrive and routing protocols settle at once instead of after 30 seconds or more. Call it after cabling or configuring, before testing connectivity. |
| get_preferencesA | Read Packet Tracer's preferences: port labels, link lights, device labels, auto cabling, animation, sound, device dialog tabs, toolbars and more. |
| host_filesA | Work with the text files of a PC, laptop or server, the ones its Text Editor opens and |
| list_devicesA | List every device in the open network with its model, kind (router, switch, pc, ...) and canvas position. Use the names to target devices in other tools. |
| list_drawingsA | List the circles, rectangles and lines drawn on the logical canvas with their ids and centres. |
| list_linksA | List every cable in the network with both endpoints and the cable type. |
| list_locationsA | List the physical workspace: Intercity, cities, buildings, wiring closets and racks, each with its path, position and the devices placed in it. |
| list_modelsA | List the device models this Packet Tracer can create, straight from its hardware catalog, optionally filtered by kind (router, switch, pc, server, access_point, ...). Set include_modules to also list slot modules such as HWIC-2T or NIM-2T, or give a module kind (interface_card, pt_laptop_module, ...) to list only those modules. |
| list_notesA | List the text notes on the logical canvas with their ids and positions. Port labels drawn at cable ends are left out unless include_port_labels is true. |
| list_portsA | List a device's ports with their state, IPv4 address when they have one, and what each port is connected to. Use it to pick free ports before connect. |
| list_server_servicesA | List the services of a server (DHCP, DNS, HTTP, HTTPS, FTP, SMTP, POP3, NTP, Syslog, TFTP) and whether each one is on. |
| list_simulation_eventsB | Read the simulation event list: where each PDU was, when, which protocol, and whether it was accepted or dropped. With include_decisions, also Packet Tracer's per-layer explanation of each step, the same text as the PDU Details window. |
| list_slotsA | List a device's module slots (path, the kind of module each accepts, what is installed) and the module models the device supports. |
| move_deviceB | Move a device to a new position on the logical canvas. |
| move_to_locationA | Move a device, or a whole location such as a wiring closet, to another place in the physical workspace, for example a switch into |
| network_descriptionA | Read the open file's description (the Description button in Packet Tracer), or replace it with |
| new_networkA | Start an empty network. Unsaved changes are discarded unless |
| open_networkA | Open a .pkt or .pka file. Unsaved changes in the current network are discarded unless |
| power_cycle_allA | Power cycle every device that is on, like the Power Cycle Devices button but without its confirmation dialog: every device reloads and unsaved configuration on every router and switch is lost. Returns the devices cycled. |
| receive_emailA | Press Receive in the Email app: download the account's new mail over POP3 and return it. Like a real POP3 client, the mail is removed from the server; Packet Tracer does not expose the app's inbox, so keep what this returns. |
| remove_deviceA | Delete a device and all of its links from the network. |
| remove_drawingA | Remove a circle, rectangle or line from the logical canvas by id. |
| remove_locationA | Delete a city, building, wiring closet or rack with everything inside it. Devices must be moved out first (move_to_location); the power units Packet Tracer puts in racks go with it. Packet Tracer has no call for this, so pktctl edits the network as bytes and opens the result as a temporary copy; save with save_network and a path to keep the change. |
| remove_moduleA | Remove the module in a slot, power cycling the device like add_module. Returns the ports that disappeared with it. |
| remove_noteB | Delete a note from the logical canvas by id. |
| rename_deviceB | Rename a device. The new name must not be taken by another device. |
| rename_locationA | Rename a city, building, wiring closet or other location. Packet Tracer has no call for this, so pktctl takes the network as bytes, edits them and opens the result as a temporary copy; your own file is not written, save with save_network and a path to keep the change. |
| reset_activityA | Reset the open activity to its initial network, discarding the work done in it. |
| run_cliA | Type one IOS command at the console of a router or switch and return its output, including commands that take time such as ping or traceroute. |
| run_host_commandA | Run a command in the Command Prompt of a PC, laptop or server (ping, ipconfig, tracert, nslookup, arp -a) and return its output. Waits until the command finishes; a command still running after |
| save_networkA | Save the open network as a .pkt file, without any dialog. Give an absolute path, or omit it to save over the file already open. |
| screenshotA | Capture Packet Tracer as a PNG image: the logical workspace rendered by Packet Tracer (default), the physical workspace ( |
| send_emailA | Send an email from the account set up with configure_email and wait for the SMTP server's answer. A recipient the server does not know comes back later as a delivery failure in receive_email. |
| set_backgroundA | Paper a physical location (a city, building, room or rack) with a background image, or the logical workspace when no location is given. Takes one of Packet Tracer's own backgrounds (grid_10x10, grid_25x25, grid_50x50, grid_100x100, city, building, intercity, container) or the absolute path of an image; an empty image clears it. |
| set_host_firewallA | Use the Firewall and IPv6 Firewall apps of a PC, laptop or server: switch each one on or off, add rules (permit or deny ip, icmp, tcp or udp, by remote address and port) and remove them. Returns both switches and the rules in the order the firewall evaluates them. |
| set_powerA | Switch a device on or off. Switching a router or switch off and on reloads it: configuration that was not saved with write memory is lost. IOS devices come back ready at the prompt. |
| set_preferencesA | Change Packet Tracer preferences by name, for example |
| set_server_serviceB | Switch one service of a server on or off, as in its Services tab. |
| set_web_pageB | Write a page of a server's HTTP service, for example index.html. |
| setup_exappA | Create the Packet Tracer app registration file (.pta) for pktctl's configured app id and secret, using Packet Tracer's own |
| show_workspaceA | Switch Packet Tracer's main window between the logical and the physical workspace, for example before a screenshot or a class demo. |
| simulation_modeB | Switch between Realtime and Simulation mode. Returns the mode, the simulation clock and how many events are recorded. |
| simulation_stepA | Advance the simulation ( |
| statusA | Check whether Packet Tracer is reachable and summarize the open network. When it is not reachable, |
| unlock_activityA | Give a password-protected activity its password (for its author or instructor) so Packet Tracer reports scores and runs checks. activity_status shows password_confirmed: false when this is needed. |
| vpn_clientA | Use the VPN app of a PC, laptop or server against an Easy VPN server: |
| watch_eventsA | Listen to Packet Tracer's live IPC events for a few seconds and return them: devices and links added or removed, console output, simulation steps, ARP and DHCP activity, and 200 more across 73 classes. Start something (for example with another tool call in parallel, or by hand in Packet Tracer) and see what it triggers. describe_ipc with |
| wireless_statusB | Read the wireless settings of an access point, wireless router or client, and for clients which access point they are associated with. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 72 tools
Most tools target a clearly distinct resource and action, and descriptions often guide the agent toward the right tool. A few overlaps remain, such as set_server_service versus configure_dhcp_server/configure_dns_server, and add_device versus add_module, which could cause occasional misselection.
The set is predominantly consistent snake_case with verb_noun naming (e.g., add_device, list_ports, configure_ios). Minor deviations like status, screenshot, draw, connect, and disconnect are still readable and predictable, so the pattern holds strongly.
With 72 tools, the server far exceeds the recommended 3–15 range and lands in the rubric's extreme mismatch tier (50+ tools). Even though the domain is broad, this volume creates a heavy selection and maintenance burden for an agent.
The surface covers network creation, device and module lifecycle, cabling, logical and physical workspace, activities, simulation, server services, email, wireless, VPN, firewall, CLI and host commands, files, preferences, screenshots, and IPC escape hatches. Generic tools like call_ipc, run_cli, and run_host_command close remaining gaps, so no major dead ends are apparent.