Skip to main content
Glama

Packet Tracer MCP

English | 简体中文

Control Cisco Packet Tracer from an MCP client through its native PTMP/IPC interface. Create devices and links, configure IOS and PC addresses, run real ping tests, save .pkt files, and export the native topology as a PNG.

Python 3.10+, no runtime dependencies, no desktop automation. Packet Tracer itself must be installed, running and authenticated through its normal workflow. This is an independent project, not a Cisco product.

What is verified

  • Live-tested on Windows with Packet Tracer 8.0.0.0212.

  • The MCP stdio flow covers initialization, 14 tool definitions, native device creation, cabling, addressing, IOS configuration, ping, .pkt save/reopen and PNG export.

  • A separate two-VLAN SVI example verifies communication with routing enabled, isolation with routing disabled, and communication again after restoration.

  • Python/protocol tests run without Packet Tracer. Compatibility with other Packet Tracer versions, macOS and Linux has not been live-tested. Python portability does not guarantee native IPC compatibility.

Related MCP server: pktctl

Quick start

git clone https://github.com/YanamiAnnaForensic/packet-tracer-mcp.git
cd packet-tracer-mcp
python run_server.py --help

You can run directly from the checkout. Package installation is optional: python -m pip install . provides the packet-tracer-mcp command.

1. Generate local ExApp credentials

Packet Tracer accepts registered external applications (ExApps). Use its included meta utility to generate a manifest:

python run_server.py setup --pt-home "C:\Program Files\Cisco Packet Tracer 8.0" --pt-version 8.0

The command prints the paths of packet-tracer-mcp.pta and connection.json, without printing the secret. By default they live under %LOCALAPPDATA%\PacketTracerMCP on Windows, ~/Library/Application Support/PacketTracerMCP on macOS, or $XDG_CONFIG_HOME/packet-tracer-mcp (~/.config fallback) on Linux. Re-running setup reuses existing credentials.

2. Register the manifest

In Packet Tracer, use Extensions → IPC → Configure Apps → Add, choose the generated .pta, and confirm. Exit Packet Tracer normally once so its settings persist, then restart it. Confirm that IPC is enabled and uses port 39000.

Alternatively, for Windows Packet Tracer 8.0 only, close Packet Tracer normally and run:

python run_server.py setup --pt-home "C:\Program Files\Cisco Packet Tracer 8.0" --register-user-config

This adds only the manifest entry to the user PT.conf, creates a timestamped backup, and leaves installation files unchanged. It refuses to run while PacketTracer.exe is running. Existing options and other registered apps are retained. It does not enable IPC if your settings disabled it. Details and undo instructions: Registration.

3. Check the connection

python run_server.py status

Expected: connected: true, the installed version and the current device count. If setup used --output-dir, set PT_MCP_CONFIG to that directory's connection.json before starting the server.

4. Add to an MCP client

Replace the Python command and script path with absolute paths on your computer. The client launches this process over stdio:

{
  "mcpServers": {
    "packet-tracer": {
      "command": "python",
      "args": ["C:/path/to/packet-tracer-mcp/run_server.py", "serve"]
    }
  }
}

If the MCP client cannot resolve python, use the absolute Python executable path. A generic example is in examples/mcp-client.json. Client-specific configuration formats may differ.

Tools

Tool

Function

pt_status

Connection, version and device count

pt_list_devices

Device names, models and type codes

pt_new_network

Create an empty workspace

pt_open_network

Open a local .pkt

pt_save_network

Save .pkt; overwriting is explicit

pt_create_device

Add a PC, router, 2960 switch or 3560 multilayer switch

pt_connect_devices

Connect exact port names with straight/crossover cables

pt_set_pc_ipv4

Set a PC's IPv4 address, mask and gateway

pt_configure_ios

Run IOS config lines and optionally write memory

pt_show

Return real output from a single IOS show command

pt_pc_ipconfig

Read real PC address output

pt_ping

Return actual replies and sent/received/lost statistics for every attempt

pt_fast_forward

Advance simulator time

pt_topology_png

Return a native PNG as MCP image content; optionally save it

Tool descriptions are bilingual. Mutations are serialized against Packet Tracer's active workspace. Opening/replacing a populated workspace requires discard_current=true. File replacement requires overwrite=true. Tools do not retry network mutations automatically after a transport failure; inspect the actual state before retrying.

pt_configure_ios enters global configuration mode automatically. Supply only commands that would follow configure terminal. Syntax errors stop the operation and return the command transcript; previously accepted commands remain applied. pt_ping may retry after address learning, but every attempt's real output is retained and reported. An unsuccessful or unparseable ping is never synthesized into success.

pt_topology_png exports the native logical workspace. It is not a screenshot of a CLI dialog or the desktop. Some native labels may overlap in Packet Tracer's export.

Example

First save your active Packet Tracer project. Choose a new output filename in an existing directory:

python examples/vlan_svi.py --output "C:\labs\demo.pkt" --replace-workspace

This builds a small, independent VLAN10/VLAN20 SVI topology through real MCP calls, checks cross-VLAN ping, and saves .pkt and .png outputs. --replace-workspace explicitly discards the current workspace; omit it when starting from an empty one. The example refuses existing output files.

For a connection-only example, run python examples/stdio_client.py.

Configuration

Environment variable

Meaning / default

PT_MCP_CONFIG

Path to local connection.json

PT_MCP_APP_ID / PT_MCP_SECRET

Override ExApp credentials

PT_MCP_HOST

IPC host; defaults to 127.0.0.1

PT_MCP_PORT

IPC port; defaults to 39000

PT_MCP_TIMEOUT

Per-IPC-call timeout in seconds; defaults to 30

All paths refer to the computer running the MCP server. Keep connection.json, .pta and PT.conf backups private. The .pta also contains the local secret. PTMP's MD5 authentication is required by Packet Tracer; this connection is not an encrypted transport. Use local IPC with Packet Tracer's Allow Remote Applications disabled.

Development

python -m pip install -e .
python -m unittest discover -s tests -v

Tests cover fragmented/binary PTMP frames, Unicode, authentication, disconnects, reply matching, configuration backups, MCP handshake and tool validation. See contributing, protocol notes, and test evidence.

Credits and license

MIT, copyright YanamiAnnaForensic. See LICENSE.

The PTMP implementation was informed by Cisco's PTMP specification, the installed Cisco IPC framework, pktctl and PT Python examples. See NOTICE.md. No Cisco binaries, SDK archives, third-party API index, account credentials or course assignments are distributed.

Available Tools

14 tools
pt_configure_iosA
Destructive

Run IOS config lines in order, stop on syntax errors, optionally write memory. Supply commands after configure terminal. / 按顺序执行全局配置命令并可保存。

NameRequiredDescriptionDefault
saveNoSave startup configuration; default true. / 保存启动配置,默认是。
deviceYesRouter or switch name. / 路由器或交换机名称。
commandsYesOne IOS command per element; global configuration mode is entered automatically. / 每项一条命令,自动进入全局配置。

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare the operation non-read-only and destructive, and the description usefully adds that commands run in order, stop on syntax errors, and optionally write memory. It does not explain whether prior commands remain applied after a syntax error or what output is returned, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the main operation, with failure behavior and the save option stated early. The bilingual duplication adds length without adding new meaning, but the overall structure remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The annotations and full parameter schema cover safety and inputs, and the description explains ordering and syntax-error handling. However, for a destructive tool with no output schema, it does not describe return behavior or partial-application consequences after an error, so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents device, commands, and save. The description adds only limited parameter context: that commands are global configuration lines supplied after configure terminal, and that memory may optionally be written.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: run IOS configuration lines in order, stop on syntax errors, and optionally write memory. It is clearly a device-configuration tool, but it does not explicitly contrast itself with sibling tools such as pt_show, pt_ping, or pt_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying to supply commands after configure terminal and that commands are run in global configuration mode. However, it gives no explicit when-to-use guidance, exclusions, or named alternatives among the available sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_connect_devicesB

Connect two available ports using a straight/crossover cable. / 连接两个空闲端口。

NameRequiredDescriptionDefault
cableNoCable type; default straight. / 线缆类型,默认直通。
port_aYesFirst exact port name. / 端口一。
port_bYesSecond exact port name. / 端口二。
device_aYesFirst device. / 设备一。
device_bYesSecond device. / 设备二。

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the agent knows this mutates state. The description adds the 'available ports' precondition, which is real value, but it does not say whether an existing link is replaced, what error occurs if a port is busy, or whether the link is persisted to the saved topology.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence (duplicated bilingually) with the action and the cable dimension front-loaded. No filler; the only cost is the redundant bilingual repetition which consumes space without adding information for an English-reading agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should carry the return/error story, and it does not: it says nothing about what is returned on success or what happens on a busy/invalid port. For a five-parameter mutation tool this leaves a meaningful gap, though the core intent is conveyed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters including the cable enum with its 'default straight' note are already documented in the schema. The description's mention of straight/crossover adds nothing beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (connect) and resource (two ports on two devices) plus the cable-type dimension, so the action is unambiguous. It is clearly differentiated from siblings like pt_topology_png or pt_ping, though it doesn't explicitly contrast with other configuration tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Two available ports' implies a precondition (both ports must be free), which is useful context. However, there is no guidance on prerequisites (device existence, port naming), no mention of what to do if a port is already connected, and no named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_create_deviceC

Add a named PC, router or switch with native IPC. / 通过原生接口添加设备。

NameRequiredDescriptionDefault
xYesWorkspace x coordinate. / 横坐标。
yYesWorkspace y coordinate. / 纵坐标。
kindYesDevice kind. / 类型。
nameYesUnique device name. / 唯一名称。
modelNoOptional exact model, e.g. 2911, 2960-24TT, 3560-24PS, PC-PT. / 可选型号。

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the mutation profile is covered. The description adds only the opaque phrase 'native IPC' and does not explain the non-idempotent consequence — e.g. what happens on a duplicate name, whether the device count/topology changes visibly, or whether an open simulated network is required. With annotations present the bar is lower, but almost nothing beyond them is contributed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with no padding. The bilingual duplication roughly doubles the length but is a formatting convention rather than filler, and the content is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should say what the call returns (e.g. a device identifier or updated topology state) — it does not. For a mutation tool that requires four parameters including workspace coordinates, omitting the prerequisite of an open network and the post-call effect leaves a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are documented in the schema, and this establishes a baseline of 3. The description adds only that the device is 'named' and restates the kind categories the enum already lists (and even misses multilayer_switch). No extra semantics about coordinate units or model defaults are offered beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: adding (creating) a named PC, router or switch. This clearly separates it from sibling operations like pt_connect_devices, pt_list_devices, and pt_configure_ios. It stops short of naming an alternative, and it omits the 'multilayer_switch' kind that the enum allows, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus pt_new_network/pt_open_network, nor any stated prerequisite that a workspace must already exist and be open. The word 'native IPC' hints at an execution environment but does not tell the agent the conditions for a successful call. The agent must infer the workflow entirely from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_fast_forwardA

Advance simulator time for boot, STP or command completion. / 推进仿真时间。

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations establish that this is a non-read-only, non-idempotent, non-destructive operation. The description adds useful context that it advances simulator time to allow boot, STP, or command completion, but it does not explain whether the call blocks, how much time advances, or what happens on return.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The bilingual duplication adds length without extra semantic detail, but overall it is efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with annotations and no output schema, the description covers the basic purpose but leaves important behavioral details implicit, such as whether it returns immediately or after completion. It is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to clarify. The baseline for zero parameters is 4, and the description does not introduce confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Advance simulator time') and lists concrete purposes: boot, STP, and command completion. It is clearly distinct from sibling tools like pt_ping or pt_status, though it does not explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for boot, STP or command completion' implies when the tool is useful, but it does not explicitly say when to invoke it versus checking status or waiting. No alternatives or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_list_devicesB
Read-onlyIdempotent

List device names, models and type codes. / 列出设备名称、型号及类型。

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds that the call surfaces three specific attributes, which is modestly useful given there is no output schema, but says nothing about completeness, ordering, or whether an empty result is possible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded with the core verb and resource, with the returned attributes following immediately. The bilingual duplication adds length without new information for most readers, but it is a deliberate locale affordance rather than noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument, read-only enumeration tool with rich annotations and no output schema, the description covers the essentials by naming the attributes returned. Missing only edge-case context such as result ordering or behavior on an empty topology.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool applies. The description correctly implies no filtering or scope arguments are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List devices') and further specifies the returned fields (names, models, type codes), which separates it from mutation siblings like pt_create_device. It does not explicitly contrast with potentially overlapping read siblings such as pt_show or pt_status, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains no when-to-use or when-not-to-use guidance and names no alternative tool. An agent must infer that this is the discovery/enumeration step, likely before pt_connect_devices or pt_create_device, entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_new_networkA
Destructive

Create an empty network; occupied workspace requires explicit discard_current. / 新建空网络,替换现有网络须明确指定。

NameRequiredDescriptionDefault
discard_currentNoDiscard the current workspace without saving. / 放弃当前工作区。

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds the crucial detail of what is destroyed (the existing network is replaced) plus the safety interlock requiring an explicit discard flag. This is real added value beyond the annotations, though the failure behavior when discard_current is omitted is only implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence front-loads the action and immediately follows with the conditional constraint. No filler, and the bilingual restatement adds no ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with full schema coverage and destructive annotations, the description supplies the essential replacement semantics and the guard condition. Only the outcome when discard_current is false on an occupied workspace is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes further by stating the condition under which discard_current must be set, giving the parameter operational meaning rather than just a definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create an empty network") and clarifies the replacement scope. It does not name the sibling pt_open_network, which is the obvious alternative for working with an existing network, so the distinction is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage rule: if the workspace is occupied, discard_current must be explicitly set. It lacks explicit when-not guidance or a named alternative (e.g., use pt_open_network to load an existing file), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_open_networkB
Destructive

Open a local .pkt, replacing the occupied workspace only when requested. / 打开本地pkt。

NameRequiredDescriptionDefault
pathYesAbsolute local .pkt path. / 本机pkt绝对路径。
discard_currentNoDiscard current workspace. / 放弃当前工作区。

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is known. The description usefully qualifies the destruction as opt-in via "only when requested," adding real context, but it says nothing about failure behavior (nonexistent path, invalid .pkt, occupied workspace with discard_current=false) or whether unsaved work is silently lost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and short enough to scan in one pass. The trailing Chinese duplicate (打开本地pkt。) is redundant with the English for an agent that already parsed the first clause, though it costs little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive two-parameter workspace-replacing operation with no output schema, an agent still needs to know the return/confirmation shape and the exact failure mode when the workspace is occupied. Those gaps are meaningful, though the annotations and full schema coverage carry most of the load.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both `path` and `discard_current` are documented in the schema itself. The description's "replacing the occupied workspace only when requested" reinforces the discard_current semantics but adds no format, path-resolution, or default behavior detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Open a local .pkt" gives a specific verb plus resource, and "replacing the occupied workspace only when requested" scopes the mutation. It is distinguishable from pt_new_network (create) and pt_save_network (save) by implication, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "only when requested" implies a conditional path (opt-in discard) but never states when to pick this over pt_new_network or pt_save_network, nor what happens if the workspace is occupied and discard is not requested. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_pc_ipconfigB
Read-onlyIdempotent

Read real PC ipconfig output. / 读取PC实际ipconfig输出。

NameRequiredDescriptionDefault
deviceYesPC name. / PC名称。

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds only the nuance that output is 'real' device data rather than simulated, but says nothing about failure modes when the named device is absent or offline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action front-loaded and nothing wasted. The bilingual duplication is a presentation convention rather than padding, so length remains appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A one-parameter read tool with full annotations needs little more, and 'ipconfig output' implies the return content. Still missing is any note on device-name validity or what happens on an unknown/offline device, which an agent would want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'device' is documented as 'PC name'. The description adds no meaning beyond the schema, such as requiring the name to match an existing topology device; baseline 3 applies when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: read the actual ipconfig output of a PC. That distinguishes it from generic siblings like pt_show or pt_ping, though it doesn't explicitly name which sibling to use for adjacent config-reading tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to prefer this over pt_show or other inspection tools, no prerequisites (e.g., device must exist / be powered on), and no exclusions. Usage is only implied by the tool name and the word 'ipconfig'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_pingA

Run PC ping and retain actual output for every attempt. Advances simulator time while waiting. / 执行真实PC ping,保留每次结果并推进仿真时间。

NameRequiredDescriptionDefault
deviceYesSource PC. / 源PC。
timeoutNoSeconds per attempt. / 每次超时秒数。
attemptsNoAttempts; retry after address learning. / 测试次数。
destinationYesDestination IPv4 address. / 目标IPv4。

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false; the description usefully adds that every attempt's actual output is retained and that simulated time advances (consistent with a non-read-only, non-idempotent call). It stops short of covering output shape or blocking duration at the max timeout x attempts bound.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-loaded with the core action and the most surprising behavior (time advancement). The bilingual duplication adds length but is a systemic convention rather than filler prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param tool with full schema coverage, no output schema, and complete annotations, the description supplies the one thing structured data cannot: that results are preserved per attempt and simulation clock advances. Nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so device/destination/timeout/attempts are already documented. The description adds only a light gloss on attempt semantics ('retain actual output for every attempt') without explaining address-learning retries or timeout interaction beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run PC ping') plus two distinctive traits: per-attempt output retention and simulator time advancement. An agent can tell this apart from pt_show/pt_pc_ipconfig, though the description never names a sibling or clarifies the source-device scope explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — the mention that it 'advances simulator time while waiting' hints it is a blocking/simulated operation versus pt_fast_forward, but the description never says when to prefer this over pt_show or pt_pc_ipconfig for connectivity checks, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_save_networkA
Destructive

Save the active network as .pkt; overwrite is explicit. / 保存当前网络,覆盖须明确指定。

NameRequiredDescriptionDefault
pathYesAbsolute .pkt output path; parent must exist. / pkt输出路径。
overwriteNoReplace an existing output. / 覆盖已有文件。

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so the mutation profile is known. The description adds genuine context beyond that: that overwriting must be explicitly requested rather than defaulting, which tells the agent how to avoid data loss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, zero waste, with the key safety fact (explicit overwrite) front-loaded alongside the core action. The bilingual duplication does not add length in substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter save operation with full schema coverage and annotations covering safety, the description supplies what is missing, notably the overwrite-explicitness rule and parent-directory constraint. Nothing critical is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both path and overwrite are fully documented in the schema, including the absolute-path and parent-exists constraint. The description adds only the explicit-overwrite framing, which is a marginal increment over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save) and resource (active network) plus the output format (.pkt). It is clearly distinct from pt_new_network and pt_open_network, though it does not name those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Overwrite is explicit" communicates that replacing an existing file requires deliberate action, which is a useful usage cue. However, there is no guidance on when to choose this versus pt_new_network/pt_open_network, so the when-to-use logic is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_set_pc_ipv4C
Destructive

Configure a PC's static IPv4 address, mask and gateway. / 配置PC静态地址、掩码、网关。

NameRequiredDescriptionDefault
portNoHost port; default FastEthernet0. / PC接口。
deviceYesPC name. / PC名称。
addressYesIPv4 address. / IPv4地址。
gatewayYesIPv4 gateway in the same subnet. / 同网段网关。
netmaskYesDotted subnet mask. / 子网掩码。

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so the agent knows this mutates state, but the description adds nothing beyond that: it never says existing addressing is overwritten, whether the interface is brought up, or what happens on failure. For a destructive mutation with no output schema, this leaves real gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action front-loaded and nothing extraneous. The bilingual duplication is a locale convention rather than padding, though it is still literal repetition of the same content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent five-parameter mutation with no output schema, the definition covers what gets set but not the effect on existing configuration, error behavior, or verification path. Adequate to invoke correctly, thin on outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are documented in the schema itself, including the default port FastEthernet0 and the same-subnet gateway constraint. The description only restates address/mask/gateway at a high level, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Configure') and resource ('PC's static IPv4 address, mask and gateway'), so an agent can tell at a glance that this sets L3 PC addressing. It does not differentiate from nearby siblings such as pt_configure_ios or pt_pc_ipconfig, which could look similar to a naive reader.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus pt_configure_ios (device CLI config) or pt_pc_ipconfig (read back config), and no prerequisites such as the PC existing or the gateway needing to be in-subnet. The only hint at usage is the parameter-level 'same subnet' note in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_showA
Read-onlyIdempotent

Run one IOS show command and return its real output. / 返回show命令实际输出。

NameRequiredDescriptionDefault
deviceYesRouter or switch name. / 设备名。
commandYesSingle show command, e.g. show vlan brief. / 单条show命令。

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds that the returned output is the device's 'real output,' which usefully signals it is live data rather than a canned response, but it says nothing about failure modes (unreachable device, unsupported command) or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence (plus a bilingual mirror) with zero waste, front-loaded on the action and the result. Nothing could be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries some burden of explaining returns, and it does so only as 'real output' without stating the format. For a two-parameter read-only tool with full annotation coverage, however, it is nearly complete; the small gap is return-format detail rather than anything blocking correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented with examples ('show vlan brief'). The description's 'single show command' merely restates the schema constraint and adds no format or syntax guidance beyond it; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: run one IOS show command and return its output. This is clearly a read-only inspection tool, distinct in spirit from pt_configure_ios, but the description never names a sibling or explicitly contrasts with the config-mutation tool, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrase 'one IOS show command' — the agent must infer that this is for read-only inspection and that only show commands are valid. No when-not conditions or alternatives (e.g., pt_configure_ios for changes) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_statusA
Read-onlyIdempotent

Read native IPC connection status and Packet Tracer version. / 查看连接状态与版本。

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds value by naming what is returned (connection status and version) and clarifying that the check is over a local native IPC channel rather than a network endpoint, which reinforces the openWorldHint=false claim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names both outputs; nothing wasted. The bilingual restatement adds length without new information, which is the only reason it isn't a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, non-destructive probe with no output schema, the description covers the essentials: what it checks and what it reports. A brief note on what the status values look like (e.g., connected/disconnected) would make it complete, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing the description could add about argument meaning. Schema coverage is 100% trivially.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and two concrete resources (IPC connection status, Packet Tracer version), which cleanly separates it from every sibling tool (network/device operations). It is not tautological and an agent can identify the operation immediately. It loses a point only because 'native IPC' is jargon that isn't expanded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — an agent would call this to verify connectivity or check the PT version — but the description never states when to call it, nor explicitly notes that it is the only status/version probe among the siblings. Since no real alternative exists in the tool set, the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pt_topology_pngA
Destructive

Return a native workspace PNG as MCP image content; optionally save it. / 返回原生拓扑PNG,可另存。

NameRequiredDescriptionDefault
pathNoOptional local .png output; parent must exist. / 可选png保存路径。
overwriteNoReplace an existing PNG. / 覆盖已有图片。

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false, and the 'optionally save it' phrase explains why a read-like tool can mutate disk (overwriting an existing PNG). Beyond that, the description omits prerequisites (e.g., whether an open workspace/network is required), what happens when path exists without overwrite, and characteristics of the returned image.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses with the primary behavior front-loaded and the optional save noted second; no filler. Minor deduction for the vague 'native workspace' phrasing, which spends words without adding precision in English.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter tool with full schema coverage, annotations, and no output schema, the description covers the essential contract: it returns image content and can write a file. Missing only prerequisites and overwrite-failure semantics, which for this simple an interface are small gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both path and overwrite are documented with constraints (parent must exist, replace existing PNG). The description adds only the high-level 'optionally save' framing, which maps to the same parameters but contributes no syntax or format detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action plus output format (return a PNG as MCP image content) and the optional save behavior, which is enough to tell it apart from siblings like pt_save_network or pt_show. The English text says 'native workspace PNG' rather than explicitly naming it as the topology diagram, leaving a small ambiguity that the tool name and the Chinese half resolve.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, prerequisite, or alternative guidance; the usage is only implied by the name and the 'optionally save it' clause. No sibling does the same job, so the risk of confusion is low, but the description does not tell the agent under what conditions to reach for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.1
    • First observedpt_configure_ios
    • First observedpt_connect_devices
    • First observedpt_create_device
    • First observedpt_fast_forward
    • First observedpt_list_devices
    • First observedpt_new_network
    • First observedpt_open_network
    • First observedpt_pc_ipconfig
    • First observedpt_ping
    • First observedpt_save_network
    • First observedpt_set_pc_ipv4
    • First observedpt_show
    • First observedpt_status
    • First observedpt_topology_png

TDQS

A3.6/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource or action: topology export, IPC status, device listing, network lifecycle, device creation/connection, PC IPv4, IOS configuration, show output, ipconfig, ping, and time advancement. The only near-overlap is pt_ping versus pt_fast_forward, but their purposes are clearly separated by the descriptions.

Naming Consistency4/5

All tools use a consistent pt_ prefix and snake_case, making the namespace predictable. There is minor variation between verb-led names (list_devices, create_device, configure_ios) and noun/state names (status, topology_png, pc_ipconfig), but the pattern remains readable.

Tool Count5/5

Fourteen tools is well-scoped for a Packet Tracer automation server, covering connection, topology, device, configuration, and simulation operations without excessive fragmentation. Each tool appears to earn its place.

Completeness3/5

The surface covers network creation/open/save, device creation, connecting devices, configuration, and verification. However, there is no tool to delete devices or disconnect links, and no tool to list available ports/interfaces, which is a notable gap because pt_connect_devices requires knowing free ports.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Drives a running Cisco Packet Tracer over its native IPC protocol (PTMP): build and cable topologies, configure IOS, test with ping and simulation mode, and reach the whole IPC API through 72 tools.
    72
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to design Cisco Packet Tracer labs from a device/link spec — cables, IPs, VLANs, routing and DHCP — and generate ready-configured .pkt files, .pka activities and SVG previews without opening Packet Tracer. It also exposes primitives to add, edit and inspect devices, services, ACLs and NAT in existing lab files.
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to drive Cisco Packet Tracer 8.x in the background, building topologies, auto-selecting cables so links come up green, running device CLI commands, reading back configuration, and exporting .pkt files without dialogs or stealing window focus.
    MIT