关于 mcp-tracer
mcp-tracer 是供 AI Agent 设计 Cisco Packet Tracer 网络拓扑的 MCP 服务。它会检查配置并生成 PTBuilder 脚本,供用户在 Packet Tracer 中手动运行。
主要功能
- 01创建和编辑网络拓扑
- 02检查设备、端口和配置
- 03生成 PTBuilder JavaScript 脚本
- 04保存和加载拓扑文件
- 05内置 VLAN、OSPF、DHCP 和 NAT 提示词
适用场景
- 01根据自然语言需求创建 Packet Tracer 实验
- 02运行脚本前发现拓扑和配置错误
- 03导出供 Packet Tracer 使用的网络构建脚本
MCP 相关
它通过本地 stdio 向 MCP 客户端提供拓扑构建、验证和脚本生成工具。它只生成脚本,不连接或控制 Packet Tracer。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-tracer
English | 西班牙语
一个 MCP 服务,可让任何 AI Agent 设计 Cisco Packet Tracer 拓扑。Agent 通过工具构建网络,mcp-tracer 会验证网络,并将其转换为 PTBuilder 扩展所需的脚本,然后你在 Packet Tracer 中运行该脚本。
网站: mcp-tracer-web.vercel.app,提供分步概览,以及各 AI 客户端的配置说明。
mcp-tracer 是一个独立项目,与 Cisco Systems, Inc.、PTBuilder 及其作者均无关联,也未获得其认可或赞助。请参阅免责声明。
目录
工作原理
- 用通俗语言向 AI Agent 描述网络。
- Agent 调用 mcp-tracer 工具(
build_topology,或add_device、add_link、configure_device、configure_pc……)。服务会将拓扑保存在内存中,并立即拒绝无效输入:未知型号、型号不具备的端口、重复使用的端口,以及在 PC 上执行的 IOS 命令。 validate_config会报告尚待处理的问题:错误(脚本会在 Packet Tracer 中运行失败或中止)和警告(脚本可能无法按预期工作)。generate_script会返回供 PTBuilder 使用的 JavaScript 脚本,或者export_script会将脚本写入.js文件。- 在新的空 Packet Tracer 工作区中,将脚本粘贴到 Extensions > Builder Code Editor,然后点击 Run。PTBuilder 会创建设备和网线、应用 IOS 配置,并设置主机 IP 地址。
flowchart LR
U([You]) -- "describe the network" --> A["AI agent (MCP client)"]
A -- "tool calls" --> S["mcp-tracer: in-memory topology"]
S -- "validate_config" --> V{"errors?"}
V -- "yes: fix and retry" --> A
V -- "no" --> G["PTBuilder script"]
G -- "you copy and paste it" --> P["Packet Tracer: Builder Code Editor, Run"]
**mcp-tracer 不会控制 Packet Tracer。**它不会连接 Packet Tracer:无法查看你的工作区、链路指示灯或 show 输出,也无法修改正在运行的网络。它只会生成脚本,由你自行运行。拓扑保存在服务内存中,MCP 客户端重启服务后就会丢失;请使用 save_topology 保留拓扑。
要求
- Node.js 20 或更高版本(自带
npx)。 - Cisco Packet Tracer 8.x 或 9.x,可从 Cisco Networking Academy 获取。
- PTBuilder 扩展,需在 Packet Tracer 中单独安装:
- 从 PTBuilder 仓库下载
Builder.pts。 - 在 Packet Tracer 中打开 Extensions > Scripting > Configure PT Script Modules。
- 点击 Add… 并选择
Builder.pts。(一位使用 PT 9.0.0 的用户还需要在该对话框中点击 Run。) - 现在打开 Extensions > Builder Code Editor 即可进入编辑器并粘贴脚本。
- 从 PTBuilder 仓库下载
- 可运行本地 stdio 服务的 MCP 客户端,例如 Claude Desktop、Claude Code 或 Cursor。
安装
无需全局安装。MCP 客户端会通过以下命令启动服务:
npx -y mcp-tracer
手动运行时,服务会向 stderr 打印一行内容([mcp-tracer] info: v0.1.1 running on stdio),然后等待通过 stdin/stdout 连接的 MCP 客户端。这是预期行为。
从源代码构建
git clone https://github.com/aldoogando03-bit/mcp-tracer.git
cd mcp-tracer
npm ci
npm run build
然后将客户端指向 node,并提供 build/index.js 的绝对路径(见下文)。
配置
下面的每种客户端都使用相同的服务入口。编辑配置后,重启客户端(或重新加载其 MCP 服务)。
Claude Desktop
打开 Settings > Developer > Edit Config,或直接编辑文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-tracer": {
"command": "npx",
"args": ["-y", "mcp-tracer"]
}
}
}
Claude Code
claude mcp add mcp-tracer -- npx -y mcp-tracer
添加 --scope project,即可通过项目根目录下的 .mcp.json 文件与团队共享;你也可以手动创建该文件:
{
"mcpServers": {
"mcp-tracer": {
"command": "npx",
"args": ["-y", "mcp-tracer"]
}
}
}
在原生 Windows(非 WSL)上,请用 cmd /c 包装 npx:claude mcp add mcp-tracer -- cmd /c npx -y mcp-tracer。
Cursor
在项目的 .cursor/mcp.json 中,或在适用于所有项目的 ~/.cursor/mcp.json 中,使用相同的 mcpServers JSON。
其他 MCP 客户端
MCP 是开放标准,因此 mcp-tracer 可与任何能够启动本地 stdio 服务的 MCP 客户端配合使用;不同之处仅在于注册位置。之后,你只需用自然语言询问网络,AI 就会自行调用工具。无需输入任何特殊命令。
以下客户端读取与 Claude Desktop 所示相同的 mcpServers JSON:
- VS Code(GitHub Copilot Agent 模式):Copilot 的可移植配置文件
~/.copilot/mcp-config.json可使用此 JSON。工作区的.vscode/mcp.json和用户mcp.json(MCP: Open User Configuration)则使用 VS Code 自己的格式,如下所示。 - Windsurf / Devin Desktop:在 Cascade 面板中,打开 ... 菜单,然后在 MCPs 部分点击 Open MCP config file。
- Cline:点击 MCP Servers 图标,打开 Configure 选项卡,然后点击 Configure MCP Servers。
- LM Studio 0.3.17 或更高版本:在右侧边栏的 Program 选项卡中,点击 Install > Edit mcp.json。
- Gemini CLI:所有项目共用
~/.gemini/settings.json,或使用项目中的.gemini/settings.json。也可以运行gemini mcp add -s user mcp-tracer npx -- -y mcp-tracer(如果不加-s user,则会写入项目文件)。
VS Code 自己的格式使用 servers 键和 type:
{
"servers": {
"mcp-tracer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-tracer"]
}
}
}
Zed 在其 settings.json 中使用 context_servers 键(zed: open settings file):
{
"context_servers": {
"mcp-tracer": {
"command": "npx",
"args": ["-y", "mcp-tracer"]
}
}
}
OpenAI Codex(CLI 和 IDE 扩展)读取 ~/.codex/config.toml,或受信任项目中的 .codex/config.toml:
[mcp_servers.mcp-tracer]
command = "npx"
args = ["-y", "mcp-tracer"]
也可以运行 codex mcp add mcp-tracer -- npx -y mcp-tracer。
要设置 MCP_TRACER_DIR,请在 args 旁添加 env 对象(在 Codex 中,则添加 [mcp_servers.mcp-tracer.env] 表)。在 Windows 上,如果客户端无法启动服务,请按照 Windows 说明中的方法,通过 cmd /c 运行 npx。
模型说明。 客户端使用的模型必须能够良好地处理工具调用。较小的本地模型可能难以应对大型拓扑。内置提示词(vlan_lab、ospf_lab、dhcp_lab、nat_lab)会有所帮助,因为其中已包含计算得出的拓扑。
目前尚不支持网页版和移动版 ChatGPT:它们只能通过 HTTPS 连接远程 MCP 服务,而 mcp-tracer 在本地通过 stdio 运行。ChatGPT 桌面应用与 Codex 共用 MCP 配置,因此可使用上述 Codex 设置;或者,也可以在 Settings > MCP servers 下将 mcp-tracer 添加为 STDIO 服务。
从源代码检出目录运行
{
"mcpServers": {
"mcp-tracer": {
"command": "node",
"args": ["/absolute/path/to/mcp-tracer/build/index.js"]
}
}
}
MCP_TRACER_DIR
如果设置了 MCP_TRACER_DIR,save_topology、load_topology 和 export_script 会以该目录为基准解析相对路径;否则会以服务的工作目录为基准,而 MCP 客户端常常会将工作目录设为任意位置。路径开头的 ~ 表示你的主目录。绝对路径始终有效。
文件工具只接受各自对应的扩展名,且不区分大小写:save_topology 和 load_topology 接受 .json,export_script 接受 .js 或 .txt。其他扩展名(如 .cmd 或 .bat)都会被拒绝,因此工具调用绝不会写入可执行文件。指向目录的路径(~、.、..、单独的驱动器名,如 C:,或现有文件夹)以及文件名中包含 : 的路径也会被拒绝。路径不受限于 MCP_TRACER_DIR;未来可以考虑将路径限制在该目录下。
{
"mcpServers": {
"mcp-tracer": {
"command": "npx",
"args": ["-y", "mcp-tracer"],
"env": { "MCP_TRACER_DIR": "C:\\Users\\you\\Documents\\pt-labs" }
}
}
}
使用 Claude Code:claude mcp add --env MCP_TRACER_DIR=/home/you/pt-labs mcp-tracer -- npx -y mcp-tracer。
Windows 说明
如果客户端无法启动服务(例如出现 spawn npx ENOENT),请通过 cmd 运行 npx:
{
"mcpServers": {
"mcp-tracer": {
"command": "cmd",
"args": ["/c", "npx", "-y", "mcp-tracer"]
}
}
}
Agent 技能(可选)
此仓库还附带一项技能 skills/mcp-tracer/SKILL.md,用于告知 Agent 何时以及如何使用这些工具:使用 build_topology 构建,始终运行 validate_config,然后移交脚本和运行步骤。它不能替代服务;请同时安装两者:
npx skills add aldoogando03-bit/mcp-tracer
工具、资源和提示词
工具
设备名称不区分大小写,且必须唯一。名称长度为 1 到 64 个字符:字母、数字、空格以及 . _ ( ) / -,并且必须以字母或数字开头(R1、Core SW (1));constructor 和 prototype 为保留名称。端口名称可以缩写(Gi0/0 会变为 GigabitEthernet0/0,Fa0/1 会变为 FastEthernet0/1)。坐标(x、y)范围为 -100000 到 100000。标记为 ? 的参数为可选参数。
输入有大小限制:每个拓扑最多包含 500 台设备和 2000 条链路;型号和端口名称最多 64 个字符,地址和掩码最多 32 个字符;每次调用和每台设备最多包含 2000 条 IOS 命令,每条命令最多 512 个字符。
| 工具 | 功能 | 参数 |
|---|---|---|
add_device | 添加设备。别名会解析为 PTBuilder 键(4331 → ISR4331,WRT300N → Linksys-WRT300N,PC → PC-PT)。如果未提供 x/y 坐标,设备将自动放置。结果会列出其端口。 | name、model、x?、y? |
add_link | 用线缆连接两个端口。一个端口只能连接一条链路。如果未提供 cable,服务会自动推断。 | dev1、port1、dev2、port2、cable? |
remove_device | 移除设备及其链路、IOS 命令和 IP 配置。 | name |
remove_link | 移除使用指定端口的链路。 | device、port |
rename_device | 重命名设备。其链路和配置会随之更新;IOS hostname 行不会更改。 | name、new_name |
configure_device | 向路由器、交换机或多层交换机追加 IOS 命令。命令会在全局配置模式下运行;enable、configure terminal、end 和 write memory 行会被丢弃并报告。 | name、ios_commands(数组)、replace?(默认值为 false:追加) |
configure_pc | 在 FastEthernet0 上设置主机的 IPv4 配置,支持静态配置或 DHCP。支持 PC-PT 和 Server-PT;接受 Laptop-PT 和 Printer-PT,但未经验证。ip 可接受 192.168.1.10/24,mask 可接受 255.255.255.0 或 /24。 | name、dhcp?(默认值为 false)、ip?、mask?、gateway?、dns? |
build_topology | 在一次原子调用中替换整个拓扑,规则与上述四个工具相同。如果任何项目无效,则不会进行任何更改,错误信息会指出相应项目。 | devices、links?、ios?([{name, commands}])、pcs?(格式同 configure_pc) |
get_topology | 以 JSON 格式返回拓扑,其中包含将要输出的位置和线缆信息。 | 无 |
validate_config | 报告错误和警告,每项都附有稳定代码和修复方法。 | 无 |
generate_script | 返回 PTBuilder 脚本,并在第二个文本块中列出所有警告。存在验证错误时会阻止生成。 | force?(默认值为 false) |
reset_topology | 删除所有设备、链路和配置。 | 无 |
save_topology | 将拓扑保存到 .json 文件,以供 load_topology 读取。如果名称没有扩展名,则添加 .json,并创建缺失的文件夹。 | path、overwrite?(默认值为 false) |
load_topology | 使用由 save_topology 写入的 .json 文件替换拓扑(仅包含 get_topology 对象的文件也可用)。在进行任何更改前会完成完整验证。最大为 5 MB。 | path |
export_script | 将 PTBuilder 脚本写入 .js 或 .txt 文件(如果名称没有扩展名,则添加 .js)。验证规则与 generate_script 相同。 | path、overwrite?(默认值为 false)、force?(默认值为 false) |
线缆(cable):straight、cross、roll、fiber、serial、console、phone、coaxial、auto、octal、usb、custom_io。如果不填写,服务会自动选择:不同类型的设备之间(路由器或主机连接交换机或集线器)使用 straight,同类型设备之间(交换机连接交换机、路由器连接路由器、路由器连接 PC、PC 连接 PC)使用 cross,接入点连接交换机或集线器时使用 straight,连接路由器或主机时使用 cross,Serial 端口使用 serial,Console/RS232 端口使用 console。auto、roll、octal、usb 和 custom_io 会按原样传递给 PTBuilder,其行为未经验证。
**型号。**目录涵盖以下 PTBuilder 键:
- 路由器:
1841、1941、2811、2901、2911、ISR4321、ISR4331 - 交换机:
2950-24、2950T-24、2960-24TT - 多层交换机:
3560-24PS(首选)、3650-24PS(参见限制) - 主机:
PC-PT、Server-PT、Laptop-PT、Printer-PT - 其他:
Hub-PT、Cloud-PT、AccessPoint-PT、Linksys-WRT300N、5505、5506-X、7960PTBuilder 设备表中的其他任何键(例如Router-PT或Switch-PT)都可以接受,但不会检查其端口和线缆。目前最安全的一组是2911、2960-24TT、PC-PT和Server-PT,这些设备最常用的端口名称都已根据一手来源验证。内置提示词只使用这些设备,外加3560-24PS。
资源
| URI | 内容 |
|---|---|
pt://catalog | 所有已编入目录的型号:类别、是否接受 IOS(configure_device)或主机 IP(configure_pc)配置、板载端口及每个端口的 verified 标记、其他有效但没有目录数据的 PTBuilder 键,以及线缆类型。 |
pt://catalog/{model} | 按键或别名查询单个型号的条目:pt://catalog/2911、pt://catalog/4331。型号名称支持自动补全。 |
提示词
每个提示词都会为 Agent 返回分步说明:包含已计算好地址的准确 build_topology 参数、后续工具调用,以及在 Packet Tracer 中要运行的检查。所有参数都是可选的;无效值会回退到默认值,并附带说明。
| 提示词 | 构建内容 | 参数 |
|---|---|---|
vlan_lab | 一台 2960 交换机,以及每个 VLAN 对应的 PC,可选 VLAN 间路由 | vlans(以逗号分隔的 ID,范围为 2-1001,最多 6 个;默认值:10,20,30)、hosts_per_vlan(1-4;默认值:2)、inter_vlan(默认为 router-on-a-stick,也可为 l3-switch 或 none) |
ospf_lab | 2911 路由器之间的单区域 OSPF,每台路由器连接一个 PC LAN | routers(2-6;默认值:3)、area(默认值:0)、topology(默认为 chain;有 3 台或更多路由器时也可为 ring) |
dhcp_lab | 一台 2911 网关、一台 2960 交换机和使用 DHCP 客户端的 PC | network(CIDR,/8-/30;默认值:192.168.10.0/24)、dhcp_server(默认为 router:IOS 地址池;server:需要手动配置 DHCP 服务的 Server-PT)、hosts(1-20;默认值:3) |
nat_lab | 一台 2911 边缘路由器后方的内网 PC、一台 ISP 路由器和一台 Web 服务器 | nat_type(默认为 pat,也可为 static 或 dynamic)、inside_network(默认值:192.168.1.0/24)、outside_network(默认值:203.0.113.0/24) |
在 Claude Code 中,这些提示词会显示为斜杠命令,例如 /mcp__mcp-tracer__vlan_lab。
完整示例
这是 small-office-dhcp 示例。以下输出来自服务本身。
你:
在 Packet Tracer 中搭建一个小型办公室:一台路由器、一台交换机和三台 PC,使用 192.168.1.0/24 网段。路由器应通过 DHCP 分配地址。
Agent 调用 build_topology:
{
"devices": [
{ "name": "R1", "model": "2911" },
{ "name": "S1", "model": "2960-24TT" },
{ "name": "PC1", "model": "PC-PT" },
{ "name": "PC2", "model": "PC-PT" },
{ "name": "PC3", "model": "PC-PT" }
],
"links": [
{ "dev1": "R1", "port1": "GigabitEthernet0/0", "dev2": "S1", "port2": "GigabitEthernet0/1" },
{ "dev1": "PC1", "port1": "FastEthernet0", "dev2": "S1", "port2": "FastEthernet0/1" },
{ "dev1": "PC2", "port1": "FastEthernet0", "dev2": "S1", "port2": "FastEthernet0/2" },
{ "dev1": "PC3", "port1": "FastEthernet0", "dev2": "S1", "port2": "FastEthernet0/3" }
],
"ios": [
{
"name": "R1",
"commands": [
"hostname R1",
"ip dhcp excluded-address 192.168.1.1 192.168.1.10",
"ip dhcp pool OFFICE",
"network 192.168.1.0 255.255.255.0",
"default-router 192.168.1.1",
"exit",
"interface GigabitEthernet0/0",
"ip address 192.168.1.1 255.255.255.0",
"no shutdown",
"exit"
]
},
{ "name": "S1", "commands": ["hostname S1"] }
],
"pcs": [
{ "name": "PC1", "dhcp": true },
{ "name": "PC2", "dhcp": true },
{ "name": "PC3", "dhcp": true }
]
}
Topology built: 5 devices, 4 links, 2 IOS configs, 3 host IP configs.
由于没有提供线缆和坐标,服务会推断线缆并按行排列设备。接下来调用 validate_config:
Warnings (1):
- [UNVERIFIED_PORT] S1 (2960-24TT): port names FastEthernet0/2 and FastEthernet0/3 are unverified in Packet Tracer; if PT names a port differently, its addLink fails silently.
No errors: generate_script will run. Warnings point at things that may not work in Packet Tracer.
此警告是预期的:2960-24TT 的 FastEthernet0/2-24 符合 Cisco 的命名方式,但目前仅确认了 FastEthernet0/1。最后,generate_script 返回脚本:
/* Generated by mcp-tracer v0.1.1 - paste into Extensions > Builder Code Editor and click Run */
addDevice("R1", "2911", 250, 100);
addDevice("S1", "2960-24TT", 250, 250);
addDevice("PC1", "PC-PT", 100, 400);
addDevice("PC2", "PC-PT", 250, 400);
addDevice("PC3", "PC-PT", 400, 400);
addLink("R1", "GigabitEthernet0/0", "S1", "GigabitEthernet0/1", "straight");
addLink("PC1", "FastEthernet0", "S1", "FastEthernet0/1", "straight");
addLink("PC2", "FastEthernet0", "S1", "FastEthernet0/2", "straight");
addLink("PC3", "FastEthernet0", "S1", "FastEthernet0/3", "straight");
configureIosDevice("R1", "hostname R1\nip dhcp excluded-address 192.168.1.1 192.168.1.10\nip dhcp pool OFFICE\nnetwork 192.168.1.0 255.255.255.0\ndefault-router 192.168.1.1\nexit\ninterface GigabitEthernet0/0\nip address 192.168.1.1 255.255.255.0\nno shutdown\nexit");
configureIosDevice("S1", "hostname S1");
configurePcIp("PC1", true);
configurePcIp("PC2", true);
configurePcIp("PC3", true);
它还会在第二个文本块中返回相同的警告。
在 Packet Tracer 中运行
- 选择 File > New,确保工作区为空。在已包含这些设备的工作区中运行脚本会导致设备重复。
- 选择 Extensions > Builder Code Editor。
- 粘贴完整脚本,替换编辑器中已有的任何内容,然后点击 Run。
- 等待所有链路指示灯变绿。交换机端口大约需要 30 秒。
检查是否正常运行
- PC1 > Desktop > IP Configuration 应显示 DHCP,并显示从 192.168.1.11 起分配的地址以及网关 192.168.1.1。如果显示 169.254.x.x,请等链路变绿后再次点击 DHCP。
- PC1 > Desktop > Command Prompt:运行
ipconfig,然后执行ping 192.168.1.1,再 ping PC2 的地址。 - R1 > CLI:运行
show ip interface brief(GigabitEthernet0/0 为 up/up)以及show ip dhcp binding(每台 PC 对应一个租约)。
验证和限制
错误和警告
大多数错误会在调用工具时被拒绝。validate_config 是生成脚本前的最终检查,也会捕获通过 load_topology 打开的文件中的问题。错误代码保持稳定,因此 Agent 和脚本可以依赖这些代码。
错误表示脚本会在 Packet Tracer 中运行失败或中止。除非传入 force: true,否则这些错误会阻止 generate_script 和 export_script。
| Code | 含义 |
|---|---|
UNKNOWN_MODEL | 该型号不是 PTBuilder 设备表中的键。 |
UNKNOWN_DEVICE | 链路、IOS 配置块或 IP 配置中指定的设备不存在。 |
SELF_LINK | 链路从某个设备连接回该设备本身(仅可能出现在编辑过的文件中:add_link 会拒绝此类链路)。 |
PORT_NOT_FOUND | 该型号没有此端口(仅对端口数量已确认的型号进行检查)。 |
PORT_KIND_MISMATCH | 这两种端口无法通过任何线缆连接,例如 Serial 和 GigabitEthernet。 |
CABLE_INCOMPATIBLE | 指定的线缆与端口不兼容。 |
DUPLICATE_PORT | 一个端口被多条链路使用。 |
IOS_ON_NON_IOS | 在非路由器、交换机或多层交换机设备上使用 IOS 命令。 |
PCIP_ON_NON_HOST | 在非主机设备上配置主机 IP。 |
INVALID_IP | 地址或掩码格式错误。 |
PCIP_STATIC_INCOMPLETE | 静态主机配置缺少 ip 或 mask。 |
警告表示脚本可以运行,但部分功能可能无法按预期工作:EMPTY_TOPOLOGY、UNCATALOGUED_MODEL、POWER_3650、SERIAL_NEEDS_MODULE、CABLE_UNVERIFIED、CABLE_SUSPICIOUS、UNVERIFIED_PORT、ISOLATED_DEVICE、PCIP_UNVERIFIED_PORT、HOST_STATIC_NO_GATEWAY、GATEWAY_NOT_IN_SUBNET、DUPLICATE_IP。每条消息都会说明问题及其修复方法。
限制
- 尚未在真实的 Packet Tracer 中验证任何内容。 PTBuilder API 是根据其源代码和 Cisco 文档 (docs/PTBUILDER_API.md) 研究得出的。许多端口名称,例如大多数 2960 端口、ISR4321/4331 端口、3560/3650 端口和控制台端口,虽然遵循 Cisco 的命名方式,但尚未确认。它们会标记为
UNVERIFIED_PORT,并在pt://catalog中标记为verified: false。非常欢迎提交已验证名称的报告。 - 不支持模块。 目前尚不支持 PTBuilder 的
addModule,因此路由器没有串行端口(路由器之间请使用以太网连接),也无法添加 SFP 上行链路和 IP 电话电源适配器。 - 3650-24PS 电源。 在 Packet Tracer 中,3650-24PS 出厂时没有电源,而 PTBuilder 无法添加电源,因此它可能会一直处于关闭状态。请使用
3560-24PS。 - PT 中的静默失败。 脚本不会检查
addDevice和addLink的返回值,因此 PT 拒绝的设备或链路会直接缺失。无效的 IOS 命令也会静默失败。若对不存在的设备调用configureIosDevice或configurePcIp,会抛出异常并停止执行脚本的其余部分。 - 每个脚本只运行一次,并在空工作区中运行。 再次运行脚本,或在已有设备的工作区中运行脚本,都会重复创建设备。
- PTBuilder 需要单独安装,且它只能执行其 API 提供的功能。服务器服务(例如
dhcp_lab中的 Server-PT DHCP 服务)必须手动设置,主机寻址也仅支持 IPv4。 - 无法实时控制。 mcp-tracer 不会读取 Packet Tracer 的状态(参见工作原理)。
开发
npm ci
npm run build
| 脚本 | 功能 |
|---|---|
npm run build | 将 src/ 编译到 build/(会先清理)。 |
npm run dev | 使用 tsx 直接从源代码运行服务,无需构建。 |
npm start | 运行 build/index.js(一个等待客户端连接的 stdio 服务)。 |
npm run typecheck | 执行类型检查,不生成输出文件。 |
npm test | 使用 Vitest 运行测试套件(监视模式请用 npm run test:watch)。 |
npm run examples | 先构建,然后重新生成 examples/*/script.js。如果示例存在验证错误,则会失败。node scripts/build-examples.mjs --check 只检查脚本是否为最新版本。 |
要手动试用该服务,请使用 MCP Inspector:npx @modelcontextprotocol/inspector node build/index.js。
CLAUDE.md 介绍了架构、约定和脚本生成器的规则。CONTRIBUTING.md 说明了如何参与贡献;另请参阅变更日志。
免责声明
mcp-tracer 是一个独立的社区项目,与 Cisco Systems, Inc. 无关联,也未获其认可或赞助。Cisco 和 Cisco Packet Tracer 是 Cisco Systems, Inc. 和/或其关联公司的商标或注册商标。此处仅使用这些名称来说明本软件所适用的对象。
mcp-tracer 也与 PTBuilder 及其作者无关联。PTBuilder 是一个独立项目,拥有自己的条款;其代码库未声明任何许可证。mcp-tracer 不包含或重新分发任何 PTBuilder 代码。它生成调用 PTBuilder 函数的脚本,而 PTBuilder 由你自行从其代码库安装。其文档(docs/PTBUILDER_API.md)以 PTBuilder 自己的措辞介绍其行为,并链接到 PTBuilder 的源代码,而不是复制相关内容。mcp-tracer 使用 PTBuilder API 所接受的模型键名称(例如 ISR4331 或 PC-PT),仅用于互操作。
你需要自行获取合法来源的 Cisco Packet Tracer 副本。
许可证
MIT © 2026 Aldo Ariel Ogando Peña (A-TECH)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。