3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cisco IOS XE用MCPサーバーをContainerlabで試してみた

3
Last updated at Posted at 2026-01-29

はじめに

Ciscoエンジニアが公開しているMCPサーバー network-mcp-docker-suite に含まれるIOS XE用のMCPサーバーを使って、自然言語でCisco機器を操作してみます。

環境

以下の記事で構築した環境を使用します。

AIエージェントはVS Code拡張機能 GitHub Copilot Chat のAgent modeを使用します。

image.png

IOS XE MCPサーバーのデプロイ

以下のGitHubから network-mcp-docker-suite リポジトリーをクローンします。

network-mcp-docker-suite ディレクトリーに移動して、.env.example.env としてコピーします。

cd network-mcp-docker-suite
cp .env.example .env

.env ファイルを編集し、IOS XE MCP SERVER セクションにあるIOS XEのSSHユーザー名とパスワードを設定します。

# ========================================
# IOS XE MCP SERVER (Port 8003)
# ========================================
# IOS XE Device SSH Configuration
# REQUIRED: Server fails without these credentials
IOS_XE_USERNAME=admin                             # SSH username for IOS XE devices
IOS_XE_PASSWORD=admin                             # SSH password for IOS XE devices

MCPサーバーの起動

起動方法がいくつかありますが、ここではDocker Composeを使用して IOS XE MCP Server のみを起動します。

docker-compose up -d ios-xe-mcp-server
% docker ps
CONTAINER ID   IMAGE                                                         COMMAND                   CREATED       STATUS          PORTS                                         NAMES
37512202a218   vrnetlab/cisco_iol:17.16.01a                                  "/entrypoint.sh"          7 hours ago   Up 7 hours      0.0.0.0:20001->22/tcp, [::]:20001->22/tcp     clab-iol-r1
9e667356ebec   vrnetlab/cisco_iol:L2-17.16.01a                               "/entrypoint.sh"          7 hours ago   Up 7 hours      0.0.0.0:20002->22/tcp, [::]:20002->22/tcp     clab-iol-s1
cbb0db6a57b4   network-mcp-docker-suite-ios-xe-mcp-server                    "uv run python ios_x…"   6 days ago    Up 18 minutes   0.0.0.0:8003->8003/tcp, [::]:8003->8003/tcp   ios-xe-mcp-server
f6ab45eedaff   ghcr.io/srl-labs/containerlab/devcontainer-dood-slim:0.72.0   "/bin/sh -c 'echo Co…"   7 days ago    Up 18 hours                                                   magical_napier

VS Codeの設定

MCPサーバーの追加

VS Codeの任意のワークスペース (もしくはグローバル) にMCPサーバーを追加します。

参考:https://code.visualstudio.com/docs/copilot/customization/mcp-servers

.vscode/mcp.json
{
	"servers": {
		"my-cisco-iosxe-mcp-server-vscode": {
			"url": "http://localhost:8003/mcp",
			"type": "http"
		}
	},
	"inputs": []
}

チャットを開き、Agent を選択してAgentモードに変更し、ツールの構成を開きます。
image.png

追加したMCPサーバーにチェックが入っていることを確認します。
image.png

チャットでCisco IOLを操作

VS Codeのチャットを開き、命令をしてみます。
GitHub CopilotのFreeプランのため、モデルは Claude Haiku 4.5 を選択しています。

  1. MCP経由で clab-iol-r1(172.10.10.11) のバージョン情報を取得

    image.png

    バージョン情報が取得できました。
    実行結果を展開すると詳細を確認できます。MCP経由で show version コマンドを実行し、アウトプットのテキストを解析して応答してくれていることがわかります。

    image.png
    image.png

  2. clab-iol-r1(172.10.10.11) の隣接機器情報を取得

    image.png

    機器から show lldp neighborsshow cdp neighbors の結果を取得して隣接情報を教えてくれました。

  3. clab-iol-r1(172.10.10.11)Ethernet0/1 にIPアドレス(192.168.0.1/24)を設定

    image.png

    clab-iol-r1Ethernet0/1 にIPアドレスが設定されました。
    実際の機器にSSH接続して確認してみます。

    % ssh -p 20001 admin@localhost
    (admin@localhost) Password:
    
    
    r1#sh ip int bri
    Interface              IP-Address      OK? Method Status                Protocol
    Ethernet0/0            172.10.10.11    YES NVRAM  up                    up
    Ethernet0/1            192.168.0.1     YES manual up                    up
    Ethernet0/2            unassigned      YES NVRAM  administratively down down
    Ethernet0/3            unassigned      YES NVRAM  administratively down down
    

    正しくIPアドレスが設定されています。

以上、Cisco IOS XE用MCPサーバーを使用して自然言語で Cisco IOL の操作ができることを確認できました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?