mikrotik について
mikrotikは、MikroTikルーターを読み取り専用で扱うMCPサーバーです。機器の状態やネットワーク情報を確認する用途に向け、MCPリソース、システムレポート、セキュリティ監査を提供し、RouterOSの新旧ログイン方式に対応します。
主な機能
- 01MikroTikルーターへの接続と認証
- 02インターフェース、ブリッジ、ルートの参照
- 03システム状態とトラフィックのレポート生成
- 04性能・セキュリティ監査レポートの生成
- 05TCPとSSL/TLS接続に対応
- 06RouterOSの新旧ログイン方式に対応
活用シーン
- 01インターフェースとルーティングテーブルの確認
- 02ルーターの健全性と通信量の集計
- 03ファイアウォール設定と潜在リスクの確認
MCP 対応
MCPサーバーはインターフェース、ブリッジ、ブリッジポート、IPルートをリソースとして公開し、接続、API結果の取得、レポート生成のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| host | string | はい | ルーターの IP アドレス |
| user | string | はい | ユーザー名 |
| secure | boolean | いいえ | セキュア接続(TLS/SSL)を使用します |
| password | string | はい | パスワード |
詳細
MikroTik RouterOS API MCP サーバー
RouterOS API を使用して MikroTik ルーターとやり取りする、読み取り専用の MCP サーバー実装です。
特長
- 接続管理:MikroTik ルーターに接続し、認証します。
- リソース監視:MCP リソースを介して、インターフェース、ブリッジ、ルーティングテーブルに動的にアクセスできます。
- プロトコルのサポート:通常の TCP(8728)とセキュアな SSL/TLS(8729)の両方に対応しています。
- モダンおよびレガシーなログイン:RouterOS バージョン v6.43 より前と以降の両方に対応しています。
リソース
このサーバーは、MikroTik のエンティティを MCP リソースとして公開し、直接確認できるようにします。
- インターフェース:
mikrotik://interface/{name}- 例:
mikrotik://interface/ether1
- 例:
- ブリッジ:
mikrotik://bridge/{name}- 例:
mikrotik://bridge/bridge1
- 例:
- ブリッジポート:
mikrotik://bridge/{bridge_name}/{interface_name}- 例:
mikrotik://bridge/bridge1/ether2
- 例:
- IP ルート:
mikrotik://route/{id}- 例:
mikrotik://route/400AF317(注:ルーティングエントリーには内部 ID が使用されます)
- 例:
ツール
mk-connect:ルーターに接続します。host:ルーターの IP アドレス。user:ユーザー名。password:パスワード。secure:(任意)SSL/TLS を使用します。デフォルトはfalseです。
例: mk-connect 192.168.88.1 admin mypassword
-
mk-report:包括的なシステムレポートを生成します。- システムリソース、ヘルス、routerboard 情報、インターフェースのトラフィック統計(
monitor-trafficを 1 回使用)を集約します。
- システムリソース、ヘルス、routerboard 情報、インターフェースのトラフィック統計(
-
mk-get:MikroTik API の/printコマンドの結果を JSON 配列で返します。sentence:API パス(例:/ip/route、/interface、/log)。- サーバーは、パスが
/で始まり、/printで終わるように自動的に調整します。
-
mk-awr:MikroTik 向けの Automatic Workload Repository(AWR)形式のレポートを生成します。- パフォーマンス指標、セキュリティ監査、推奨事項が含まれます。
- 入力は不要です。
プロンプト
このサーバーは、一般的なタスク向けに事前定義されたプロンプトをいくつか提供します。
- mk-connect: MikroTik に接続:ルーターへの接続を確立するのに役立ちます。
- mk-report: システムレポート:システムの完全な状態とトラフィックレポートを要求します。
- mk-get-route: ルーティングテーブル:現在の IP ルーティングテーブルを指定して要求します。
- mk-get-interface: インターフェース一覧:設定済みのすべてのインターフェースを指定して要求します。
- mk-get-log: ログを表示:最新のシステムログエントリーを要求します。
- mk-awr: セキュリティ監査:ルーターの包括的なパフォーマンスおよびセキュリティ監査を開始します。
設定
MikroTik サーバーでは、環境変数または mk-connect ツールを使用して、認証情報を安全に管理できます。
MK_USER:MikroTik のユーザー名(起動時にホストを指定する場合は必須)MK_PASSWORD:MikroTik のパスワード(起動時にホストを指定する場合は必須)
起動引数
コマンドライン引数として、ホストとセキュリティ設定を任意で指定できます。
host:(任意)ルーターの IP アドレス。secure:(任意)SSL/TLS を使用します。デフォルトはfalseです。
これらを指定した場合、サーバーは起動時に MK_USER と MK_PASSWORD を使用して自動接続を試みます。
ローカルビルド
cd src/mikrotik
npm install
npm run build
Claude Desktop での使用方法
これを claude_desktop_config.json に追加します。
{
"mcpServers": {
"mikrotik": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mikrotik",
"192.168.88.1"
],
"env": {
"MK_USER": "ai_agent",
"MK_PASSWORD": "ai_password"
}
}
}
}
Docker を使用した例:
{
"mcpServers": {
"mikrotik": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MK_USER=admin",
"-e",
"MK_PASSWORD=password",
"mochoa/mcp-mikrotik",
"192.168.88.1",
"false"
]
}
}
注:引数と環境変数は任意です。後から mk-connect を使用して接続できます。
デモ
mk-get の情報を使用して:
- interface
- ip/address
- ip/route
- ip/route/rules
- ip/firewall[address-list,filter,nat,mangle] 潜在的なセキュリティリスクと未使用のエンティティを見つけます
Claude Desktop、Gemini CLI、Antigravity Code Editor での使用例については、デモを参照してください。
MikroTik AWR の使用例
MikroTik ルーター向けに mk-awr ツールで生成された、パフォーマンス指標とセキュリティリスクを示す Automatic Workload Repository(AWR)形式のレポート例については、MikroTik AWR の使用例をご覧ください。
Docker
コンテナのビルド:
docker build -t mochoa/mcp-mikrotik -f src/mikrotik/Dockerfile .
コンテナの実行:
docker run -i --rm -e MK_USER=admin -e MK_PASSWORD=mypassword mochoa/mcp-mikrotik 192.168.88.1
変更履歴
変更履歴については、変更履歴をご覧ください。
ソース
いつものように、この拡張機能のコードはGitHubにあります。変更の提案や貢献を歓迎します。
📜 ライセンス
このプロジェクトは、新たな貢献部分には Apache License, Version 2.0 を、既存のコードには MIT ライセンスを適用しています。詳細については、LICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。