![]() |
2025年6月、Cato クラウドを AI を通じて操作するための MCP サーバの提供が開始されました!

本ブログ記事では、Cato の MCP サーバが一体どういうものなのか、現時点で何ができるのかについて、詳しく見て行こうと思います。
そもそも MCP とは
生成 AI や LLM (大規模言語モデル) の技術開発の進展が非常に早い昨今、AI エージェントという文脈の中で MCP (Model Context Protocol) というものが賑わっています。
MCP は、2024年11月に Anthropic 社 (Claude という LLM の開発・提供を行っている会社) が発表したアプリケーションプロトコルです。
様々なシステムや機能を AI に組み込むための標準的な仕組み、といった感じでイメージすると良いと思います。MCP について解説した記事は既に世の中で多く書かれていますので、本ブログ記事ではこの程度の説明に留めることとします。
以降では、本ブログ記事のテーマである Cato の MCP について解説していきます。
Cato MCP の利用イメージ
まず、Cato の MCP のイメージを掴むために次の画像をご覧ください。
Cato の MCP サーバ実装を LibreChat という AI チャットソフトウェアに組み込んで実際に利用してみた例です。
ご覧のように、AI との会話を通じて Cato のサイトの情報を確認したり、ネットワーク品質の状況を確認したりできます。他にも最後の画像で AI が言っている通り、リモート接続ユーザの情報を確認することもできます。
Cato に関する管理・運用は通常は CMA (Cato Management Application) の Web 画面を通じて行いますが、任意の AI と組み合わせて会話ベースで行えるようになったというのが Cato の MCP の登場による変化です。
Cato MCP の機能
Cato の MCP サーバは、ソースコードとして次の GitHub リポジトリで公開されています。
本ブログ記事執筆時点の最新版である v0.9.0 では、以下の14個の機能 (Tool) が提供されています。(ソースコードも確認しました。)
機能 (Tool) | 概要 |
entity_lookup | サイト、VPN ユーザ、管理者ユーザなどの一覧を取得する。 取得できる対象は EntityType に記載されているもの。 |
sites_by_location | サイトの地理情報や PoP 接続情報を取得する。 |
site_details | サイトの詳細情報や各種ステータスを取得する。 |
site_types | サイトの接続タイプ (Socket, IPsec, vSocket など) を取得する。 |
socket_versions | 各サイトの Socket のバージョンを取得する。 |
wan_connectivity | サイトの WAN 側のステータスや PoP との間のトンネルのステータスを取得する。 |
user_details | リモート接続中のユーザの接続状態、デバイス名、OS名などを取得する。 |
user_connection_details | リモート接続中のユーザの PoP との接続に関する詳細情報を取得する。 |
user_software_versions | リモート接続中のユーザの Cato Client のバージョン情報を取得する。 |
site_network_health | ネットワーク品質の悪いサイトを抽出し、その RTT、ジッタ、パケットロス率を取得する。 |
top_bandwidth_consumers | トラフィックの多いサイトやリモート接続ユーザを抽出し、その通信量を取得する。 |
metrics_timeseries_query | サイトやリモート接続ユーザのネットワークに関する時系列データを取得する。 取得できるメトリクスは TimeseriesMetricType に記載されているもの。 |
metrics_site_summary | サイトのネットワークに関する全てのメトリクスの集計データを取得する。 |
annotation_event_counter | サイトのネットワークインターフェースで発生した変更イベントの回数を取得する。 取得できるイベントは AnnotationType に記載されているもの |
これら機能を、AI との会話の中で利用できます。
先ほどの画面スナップショットの場合、私が AI に依頼したチャットの内容をもとに site_details や site_network_health の機能 (Tool) が実行され、その実行結果に応じて AI がわかりやすく回答してくれていました。
少しだけ内部の仕組みの話をすると、次のような流れで AI は動作しています。
- AI チャットソフトは、ユーザが入力した内容と Cato の MCP で提供されている機能 (Tool) の情報を LLM に渡す
- LLM は、渡された情報を解釈し、どの機能 (Tool) をどのようなパラメータで実行するか決定し、AI チャットソフトに実行を指示する
- AI チャットソフトは、LLM の指示に従い Cato の MCP の機能 (Tool) を実行する
- Cato の MCP は、渡されたパラメータをもとに何らかの処理 (Cato の API の実行) を行い、結果を AI チャットソフトに返す
- AI チャットソフトは、MCP の実行結果を LLM に渡す
- LLM は、MCP の実行結果や初めに渡された情報をもとに文章を生成し、AI チャットソフトに返す
AI チャットソフト (MCP クライアントとして振る舞う) や Cato の MCP サーバを介して、Cato と LLM を連携できたということですね。
Cato MCP で何ができるか
残念ながら現時点ではサイトやユーザに関する限られた情報の取得しか行えませんが、次のようなことであれば AI との会話を通じて行えるのではないでしょうか。
- 日常的な健全性チェックに関する運用
- 例)毎朝9時に、全サイトのステータス、接続先 PoP 変更イベントの発生有無、品質の悪いサイトの有無などを確認する。
- 障害・異常発生時のトラブルシューティング
- 例)特定のサイトで通信が遅いという報告があったとき、そのサイトの直近のステータス、トラフィック、RTTやパケットロスなどの指標を取得し、どのような状況がいつから発生しているか確認する。
- リモート接続ユーザのサポート
- 例)リモート接続中のユーザからネットワークの不調に関する問い合わせがあったとき、ユーザのOS、クライアントバージョン、トラフィックの各種指標を取得して状況を把握する。
- ソフトウェアバージョンアップに関する運用
- 例)新しいバージョンの Cato クライアントが提供されたとき、古いバージョンを利用しているユーザを抽出する。
さらに、インシデント管理システムや各種コミュニケーションツールなどが提供する MCP サーバも AI に統合すれば、AI との会話ベースで Cato の管理情報と様々なシステムを連携させることも可能になるはずです。
従来こういったことを行おうとすると、各システムの API を活用して連携させる仕組みを頑張って開発する必要がありましたが、MCP という標準化されたインターフェースが登場したことで AI を通じて容易にファジーに連携できるようになってきました。Cato の MCP により連携できるようになったのは、非常に喜ばしいことです。
今はまだサイトやユーザの設定変更を行えず、セキュリティ設定や各種イベント情報の取得もできませんが、将来的に MCP サーバの機能が追加されて様々な操作が行えるようになっていくことを期待しています。
特に、各種イベント情報の取得ができるようになれば、AI を SOC (Security Operation Center) チームの専門家と見立てて、会話ベースでのセキュリティ運用といったことも実現できるようになるのではと妄想しています。
参考:LibreChat を用いた Cato MCP 利用環境の構築
Cato の MCP サーバは任意の MCP クライアント環境で利用でき、公式のドキュメントには Claude Desktop を利用する方法が記載されています。ただ、今回は MCP クライアントとして LibreChat という AI チャットソフトウェアを利用しましたので、参考としてその環境構築方法について記載します。
今回の環境は、Amazon EC2 で起動した Amazon Linux 2023 のインスタンス上に構築し、LLM として Amazon Bedrock で提供される Claude を利用しました。
自マシンからのみアクセスすることを想定した最小限の構成であり、この環境を他の人に公開する際は他にも考慮すべきことが多々あるという点はご了承ください。
Bedrock の基盤モデルの有効化
Amazon Bedrock にて LLM の基盤モデルを利用できるようにする必要があり、その手順は こちらのページ に記載されています。
今回は Anthropic 社の Claude 3.7 Sonnet を利用しました。
EC2 インスタンスの作成
Amazon EC2 で Amazon Linux 2023 のインスタンスを作成しました。
メモリは最低でも4GB以上のものにする必要がありました。(メモリが2GBだと、後述の LibreChat のセットアップの中でメモリ不足が発生しました…。)
この EC2 インスタンスの中から Bedrock のモデルを実行することになるので、インスタンスのロールにて “AmazonBedrockLimitedAccess” ポリシーをアタッチする必要もあります。
以降、EC2 インスタンスに SSH 接続して作業していきます。
MongoDB のセットアップ
LibreChat で必要となる MongoDB をセットアップします。
MongoDB のセットアップ手順は こちらのページ に記載されており、概ねその手順に従いました。
sudo vim /etc/yum.repos.d/mongodb-org-8.0.repo (※以下の内容でファイルを作成する) --- [mongodb-org-8.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/8.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-8.0.asc --- sudo dnf install -y mongodb-org sudo systemctl start mongod
LibreChat のセットアップ
LibreChat のセットアップまで行います。
セットアップ手順は こちらのページ に記載されており、概ねその手順に従ってセットアップしました。
sudo dnf install git git clone https://github.com/danny-avila/LibreChat.git -b v0.7.8 cd LibreChat cp .env.example .env sudo dnf install nodejs npm npm ci npm run frontend
上記により、LibreChat のビルドまで完了します。
手順のページでは npm run backend
というコマンドの実行が書かれていますが、これを実行すると LibreChat のサーバアプリケーションが起動します。ただ、Cato の MCP を利用するための設定がまだなので、起動はその設定後に行います。
Cato MCP サーバのセットアップ
Cato MCP サーバの実装はローカルで実行する形式で用意されていますので、これをセットアップします。
sudo dnf install git git clone https://github.com/catonetworks/cato-mcp-server.git -b v0.9.0 cd cato-mcp-server npm install npm run build
この MCP サーバは何かが常時起動しているわけではありませんので、ビルドまで完了すればOKです。
LibreChat の設定と起動
LibreChat のディレクトリにて、設定ファイルの変更・作成を行います。
vim .env (※以下の設定を追加・変更する) --- HOST=0.0.0.0 ENDPOINTS=bedrock,agents BEDROCK_AWS_DEFAULT_REGION=ap-northeast-1 BEDROCK_AWS_MODELS=apac.anthropic.claude-3-7-sonnet-20250219-v1:0 SEARCH=false --- vim librechat.yaml (※以下の内容でファイルを作成する) --- version: 1.2.1 mcpServers: cato: type: stdio command: node args: ["/home/ec2-user/cato-mcp-server/build/index.js"] env: CATO_API_HOST: api.catonetworks.com CATO_ACCOUNT_ID: "アカウントID(4桁または5桁の数字)" CATO_API_KEY: "APIキー" ---
設定したら、次のコマンドを実行して LibreChat の Web アプリケーションを起動します。
npm run backend
3080 番ポートで Web アプリケーションが起動しますので、あとはブラウザからアクセスしてユーザを作成すれば、AI チャットで Cato MCP を利用できるようになります。