mcpField
M
mcp-tracer

mcp-tracer

ローカル
github.com/aldoogando03-bitその他11 日前に更新

mcp-tracer について

mcp-tracerは、AIエージェントでCisco Packet Tracerのネットワークトポロジーを設計するMCPサーバーです。設定を検証し、Packet Tracerで手動実行するPTBuilder用スクリプトを生成します。

主な機能

  1. 01ネットワークトポロジーの作成と編集
  2. 02デバイス、ポート、設定の検証
  3. 03PTBuilder用JavaScriptスクリプトの生成
  4. 04トポロジーファイルの保存と読み込み
  5. 05VLAN、OSPF、DHCP、NATの組み込みプロンプト

活用シーン

  1. 01自然言語の依頼からPacket Tracerの演習を作成
  2. 02スクリプト実行前にトポロジーと設定の誤りを検出
  3. 03Packet Tracer用のネットワーク構築スクリプトを出力

MCP 対応

ローカルstdio経由で、トポロジー構築、検証、スクリプト生成のツールをMCPクライアントに提供します。スクリプトを生成しますが、Packet Tracerへの接続や操作は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aldoogando03-bit-mcp-tracer": {
"command": "npx",
"args": [
"-y",
"mcp-tracer"
]
}
}
}
起動コマンドnpx -y mcp-tracer

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-tracer0.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-tracer

英語 | スペイン語

あらゆる AI エージェントが Cisco Packet Tracer のトポロジーを設計できる MCP サーバーです。エージェントはツールを使ってネットワークを構築し、mcp-tracer がその内容を検証して、PTBuilder 拡張機能用のスクリプトに変換します。その後、Packet Tracer でスクリプトを実行します。

npm バージョン CI ライセンス:MIT

ウェブサイト: mcp-tracer-web.vercel.app。各 AI クライアントのセットアップを含む、手順ごとの概要を確認できます。

mcp-tracer は独立したプロジェクトです。Cisco Systems, Inc.、PTBuilder、またはその作者とは提携関係になく、承認や後援も受けていません。免責事項をご覧ください。

目次

仕組み

  1. AI エージェントに、平易な言葉でネットワークを説明します。
  2. エージェントが mcp-tracer のツール(build_topology、または add_device、add_link、configure_device、configure_pc…)を呼び出します。サーバーはトポロジーをメモリ上に保持し、無効な入力をその場で拒否します。たとえば、未知のモデル、そのモデルに存在しないポート、二重に使用されたポート、PC に対する IOS コマンドなどです。
  3. validate_config は未解決の内容を報告します。エラー(Packet Tracer でスクリプトが失敗または中断するもの)と、警告(意図したとおりに動作しない可能性があるもの)が表示されます。
  4. generate_script は PTBuilder 用の JavaScript スクリプトを返します。または、export_script で .js ファイルに書き出します。
  5. スクリプトを、新規の空の 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 に別途インストールします)。
    1. PTBuilder リポジトリから Builder.pts をダウンロードします。
    2. Packet Tracer で Extensions > Scripting > Configure PT Script Modules を開きます。
    3. Add… をクリックして Builder.pts を選択します。(PT 9.0.0 のユーザーの中には、このダイアログで Run もクリックする必要があった人もいます。)
    4. これで Extensions > Builder Code Editor を開くと、スクリプトを貼り付けるエディターが表示されます。
  • Claude Desktop、Claude Code、Cursor など、ローカルの stdio サーバーを実行できる MCP クライアント。

インストール

グローバルインストールは不要です。MCP クライアントは次のコマンドでサーバーを起動します。

npx -y mcp-tracer

手動で実行すると、サーバーは stderr に 1 行([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 ではない環境)では、npx を cmd /c でラップします: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 のエージェントモード):Copilot のポータブルな ~/.copilot/mcp-config.json では、この JSON を使用します。ワークスペースの .vscode/mcp.json とユーザーの mcp.json(MCP: Open User Configuration)では、以下に示す VS Code 独自の形式を使用します。
  • Windsurf / Devin Desktop:Cascade パネルで ... メニューを開き、MCP セクションの 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(zed: open settings file)内で context_servers キーを使用します。

{
  "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 に関する注意事項と同様に、npx を cmd /c 経由で実行します。

モデルに関する注意事項。 クライアントのモデルは、ツール呼び出しに適切に対応できる必要があります。小型のローカルモデルでは、大規模なトポロジーの処理が難しい場合があります。組み込みプロンプト(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

save_topology、load_topology、export_script は、MCP_TRACER_DIR が設定されていれば相対パスをそのディレクトリを基準に解決し、設定されていなければサーバーの作業ディレクトリを基準に解決します。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"]
    }
  }
}
エージェントスキル(任意)

このリポジトリには、エージェントがこれらのツールをいつ、どのように使うかを説明するスキル skills/mcp-tracer/SKILL.md も含まれています。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文字です。また、呼び出しごと、およびデバイスごとに、512文字以内の IOS コマンドを最大2000個指定できます。

ツール機能引数
add_deviceデバイスを追加します。エイリアスは PTBuilder のキーに解決されます(4331 → ISR4331、WRT300N → Linksys-WRT300N、PC → PC-PT)。x/y を指定しない場合、デバイスは自動的に配置されます。結果にはポートの一覧が含まれます。name、model、x?、y?
add_link2 つのポートをケーブルで接続します。各ポートに接続できるリンクは 1 つです。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上記 4 つのツールと同じルールで、トポロジー全体を 1 回のアトミックな呼び出しで置き換えます。項目が無効な場合は何も変更されず、エラーには該当する項目が示されます。devices、links?、ios?([{name, commands}])、pcs?(configure_pc と同じ形式)
get_topology出力される位置とケーブルを含むトポロジーを JSON で返します。なし
validate_configエラーと警告を、それぞれ安定したコードと修正方法とともに報告します。なし
generate_scriptPTBuilder スクリプトと、警告がある場合はそれを含む 2 つ目のテキストブロックを返します。検証エラーがある場合は生成されません。force?(デフォルトは false)
reset_topologyすべてのデバイス、リンク、設定を削除します。なし
save_topologyload_topology で読み込める .json ファイルにトポロジーを保存します。名前に拡張子がない場合は .json を追加し、存在しないフォルダーを作成します。path、overwrite?(デフォルトは false)
load_topologysave_topology で書き込まれた .json ファイルの内容でトポロジーを置き換えます(get_topology のオブジェクトをそのまま指定することもできます)。変更を加える前にすべて検証します。最大サイズは 5 MB です。path
export_scriptPTBuilder スクリプトを .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 同士)は cross、アクセスポイントとスイッチまたはハブの間は straight、アクセスポイントとルーターまたはホストの間は cross、Serial ポートには serial、Console/RS232 ポートには console が選択されます。auto、roll、octal、usb、custom_io は指定されたまま PTBuilder に渡されますが、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、7960 PTBuilder のデバイステーブルにあるその他のキー(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}キーまたはエイリアスで指定した1モデルのエントリー。例:pt://catalog/2911、pt://catalog/4331。モデル名は自動補完されます。
プロンプト

各プロンプトは、エージェント向けの手順をステップごとに返します。アドレス設定を含む正確な build_topology の引数、後続のツール呼び出し、Packet Tracer で実行する確認項目が示されます。すべての引数は省略可能です。無効な値を指定すると、注記とともにデフォルト値が使われます。

プロンプト構築するもの引数
vlan_labVLAN ごとの PC と、任意の VLAN 間ルーティングを備えた 2960 スイッチvlans(カンマ区切りの ID、2~1001、最大6個、デフォルトは 10,20,30)、hosts_per_vlan(1~4、デフォルトは 2)、inter_vlan(デフォルトは router-on-a-stick、または l3-switch、none)
ospf_lab2911 ルーター間のシングルエリア OSPF と、ルーターごとに1つの PC LANrouters(2~6、デフォルトは 3)、area(デフォルトは 0)、topology(デフォルトは chain、またはルーターが3台以上の場合は ring)
dhcp_lab2911 ゲートウェイ、2960 スイッチ、DHCP クライアント PCnetwork(CIDR、/8~/30、デフォルトは 192.168.10.0/24)、dhcp_server(デフォルトの router:IOS プール、または server:DHCP サービスを手動で設定する Server-PT)、hosts(1~20、デフォルトは 3)
nat_lab2911 エッジルーターの背後にある内部 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 で小規模オフィスを構築してください。ルーター1台、スイッチ1台、PC3台を 192.168.1.0/24 に配置します。ルーターから DHCP でアドレスを配布してください。

エージェントが 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);

同じ警告も、2つ目のテキストブロックとして返されます。

Packet Tracer で実行する
  1. File > New を選択して、ワークスペースを空にします。すでにこれらのデバイスがあるワークスペースでスクリプトを実行すると、デバイスが重複します。
  2. Extensions > Builder Code Editor を選択します。
  3. スクリプト全体を貼り付け、エディター内の既存の内容を置き換えてから、Run をクリックします。
  4. すべてのリンクランプが緑色になるまで待ちます。スイッチポートには約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 と PC2 のアドレスへの ping を実行します。
  • R1 > CLI で show ip interface brief(GigabitEthernet0/0 が up/up)と show ip dhcp binding(PC ごとに1つのリース)を実行します。

検証と制限

エラーと警告

ほとんどの誤りは、ツールの呼び出し時に検出されます。validate_config はスクリプト生成前の最終チェックであり、load_topology で開いたファイルの問題も検出します。コードは安定しているため、エージェントやスクリプトから参照できます。

エラーは、Packet Tracer でスクリプトが失敗または中断することを意味します。force: true を渡さない限り、generate_script と export_script はブロックされます。

コード意味
UNKNOWN_MODELモデルが PTBuilder のデバイステーブルのキーにありません。
UNKNOWN_DEVICEリンク、IOS ブロック、または IP 設定で、存在しないデバイスが指定されています。
SELF_LINKデバイスから同じデバイスへリンクしています(編集済みファイルでのみ発生します。add_link はこれを拒否します)。
PORT_NOT_FOUNDモデルに該当するポートがありません(ポート数が確認済みのモデルでチェックされます)。
PORT_KIND_MISMATCHSerial と GigabitEthernet のように、この2種類のポートを接続できるケーブルがありません。
CABLE_INCOMPATIBLE指定されたケーブルがポートに適合しません。
DUPLICATE_PORT1つのポートが複数のリンクで使用されています。
IOS_ON_NON_IOSルーター、スイッチ、またはマルチレイヤースイッチではないデバイスに IOS コマンドが指定されています。
PCIP_ON_NON_HOSTホストではないデバイスにホスト IP 設定が指定されています。
INVALID_IPアドレスまたはマスクの形式が正しくありません。
PCIP_STATIC_INCOMPLETEip と 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 の呼び出しは例外をスローし、スクリプトの残りの処理を停止します。
  • 各スクリプトは、空のワークスペースで1回だけ実行してください。 再度実行するか、すでにデバイスが存在するワークスペースで実行すると、デバイスが重複します。
  • PTBuilder は別途インストールする必要があり、その API が提供する機能のみを利用できます。dhcp_lab の Server-PT DHCP サービスなどのサーバーサービスは手動で設定する必要があり、ホストのアドレス設定は IPv4 のみです。
  • ライブ制御には対応していません。 mcp-tracer は Packet Tracer の状態を読み戻しません(仕組みを参照)。

開発

npm ci
npm run build
スクリプト説明
npm run buildsrc/ を build/ にコンパイルします(最初にクリーンアップします)。
npm run devビルド手順を実行せず、tsx を使ってソースからサーバーを実行します。
npm startbuild/index.js を実行します(クライアントからの接続を待機する stdio サーバーです)。
npm run typecheck出力を生成せずに型チェックを実行します。
npm testVitest でテストスイートを実行します(ウォッチモードの場合は 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 自身の言葉で説明し、内容を転載する代わりに PTBuilder のソースへのリンクを掲載しています。mcp-tracer は相互運用性のために、PTBuilder の API が受け付けるモデルキー名(ISR4331 や PC-PT など)のみを使用します。

Cisco Packet Tracer は、適切に入手したご自身のコピーをご用意ください。

ライセンス

MIT © 2026 Aldo Ariel Ogando Peña (A-TECH)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。