PDF

NetCrunch MCP サーバー

NetCrunch は REST API を MCP (Model Context Protocol) サーバーとして公開し、AI アシスタントや LLM ベースのツールから NetCrunch 管理 API をプログラムで検出・呼び出しできるようにします。

MCP サーバーは REST API と同じ API キー、レート制限、バックエンドハンドラーを共有します — 各ツールは REST エンドポイントに 1 対 1 で対応します。

エンドポイント

MCP サーバーは 2 つのトランスポートをサポートします。どちらも /api/mcp パスで利用できます。

トランスポート メソッド URL 説明
Streamable HTTP POST /api/mcp 最新の単一エンドポイントトランスポート(推奨)
SSE GET /api/mcp/sse Server-Sent Events ストリームを開く
SSE messages POST /api/mcp/messages?sessionId=… SSE セッションに JSON-RPC メッセージを送信する

Streamable HTTP はステートレスです — 各リクエストで新しい MCP セッションが作成されます。これは最も簡単な統合方法で、すべての MCP クライアントで利用できます。

SSE は、永続的な接続を必要とするクライアント向けのステートフルなフォールバックです。クライアントは最初に /api/mcp/sse を開いてセッション ID を取得し、その後 /api/mcp/messages?sessionId=<id> にリクエストを送信します。

認証

すべてのリクエストには、有効な NetCrunch API キーを含める必要があります。MCP サーバーは、次のいずれかの場所でキーを受け付けます(上から順に確認されます)。

方法 例
Authorization ヘッダー Authorization: Bearer YOUR_API_KEY
x-api-key ヘッダー x-api-key: YOUR_API_KEY
クエリパラメーター ?api_key=YOUR_API_KEY

API キーは、NetCrunch Administration Console の User Profiles → API Keys で作成します。キーによって、呼び出し元がアクセスできるノードと操作が決まります — 同じセキュリティコンテキストが MCP と REST の両方に適用されます。

有効な API キーを含まないリクエストには、次のエラーレスポンスが返されます。

{ "error": "No API Key" }

レート制限

MCP リクエストは、REST API と同じ API キー単位のトークンバケットを共有します。デフォルトの制限(server.cfg.yml で設定可能)は次のとおりです。

設定 デフォルト
ウィンドウあたりの最大リクエスト数 100
ウィンドウの長さ 60 秒

制限を超えると、ツール呼び出しはエラー結果を返します。未使用のトークンは継続的に補充されます。

クライアント設定

Claude Desktop

claude_desktop_config.json に追加します。

{ "mcpServers": { "netcrunch": { "url": "https://YOUR_SERVER/api/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }

Cursor / VS Code (Copilot)

MCP 設定(.cursor/mcp.json または VS Code MCP config)に追加します。

{ "servers": { "netcrunch": { "url": "https://YOUR_SERVER/api/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }

Python (mcp client library)

from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client( "https://YOUR_SERVER/api/mcp", headers={"Authorization": "Bearer YOUR_API_KEY"} ) as (read, write, _): async with ClientSession(read, write) as session: await session.initialize()

    # List available tools
    tools = await session.list_tools()

    # Call a tool
    result = await session.call_tool("nodes.getProperties", {
        "node": "10.0.0.1",
        "properties": "Name,Address,OverallState"
    })
    print(result)

利用可能なツール

MCP サーバーは、8 グループに整理された 50 個のツールを公開します。各ツールは REST API エンドポイントに対応し、同じパラメーターを受け付けます。必須パラメーターには * が付いています。

ノード(19 ツール)

監視対象ノードを管理します — ノードの追加、削除、プロパティの読み取り/書き込み、監視の制御、タグ、ネットワークサービス、センサー、カスタムフィールド、子ノードの管理を行います。

ツール 説明 パラメーター
nodes.add 新しい監視対象ノードを追加 networkAddress, name, type
nodes.delete 監視対象ノードを削除 node
nodes.getProperties ノードのプロパティを取得 node, properties
nodes.getProperty 単一のノードプロパティを取得 node, property*
nodes.setProperties 複数のノードプロパティを設定 node
nodes.setProperty 単一のノードプロパティを設定 node, property*
nodes.setMonitoring 監視を有効または無効にする node, value* (on/off), disabledFrom, disabledUntil, reset
nodes.addNetworkService ネットワークサービスモニターを追加 node, name*, protocolId, timeout, repeat, additionalRepeat, monitoringTime, overrideSuppressing, param
nodes.setNetworkServiceParams サービスモニターのパラメーターを更新 node, service*, protocolId, timeout, repeat, additionalRepeat, monitoringTime, overrideSuppressing
nodes.deleteNetworkService サービスモニターを削除 node, service*
nodes.setSensorParams センサー監視を設定 node, sensor*, enabled, monitoringTime, credentials
nodes.setMonitoringEngineParams 監視エンジンを設定 node, engine*, enabled, monitoringTime, credentials
nodes.setCustomFieldValue カスタムフィールドの値を設定 node, field*, value
nodes.deleteCustomField カスタムフィールドを削除 node, field*
nodes.addChild 子ノードを追加 node, child*
nodes.deleteChild 子ノードを削除 node, child*
nodes.addTag タグを追加 node, tag*
nodes.deleteTag タグを削除 node, tag*
nodes.removeTags すべてのタグを削除 node

node パラメーターには、ノード ID(数値)、名前、IP アドレス、または DNS 名を指定できます。

ビュー(9 ツール)

ネットワークビューとビューフォルダーを管理します。

ツール 説明 パラメーター
views.add 新しいビューを作成 name*, parent
views.addFolder 新しいフォルダーを作成 name*, parent
views.delete ビューを削除 map
views.getProperties ビューのプロパティを取得 map, properties
views.getProperty 単一のプロパティを取得 map, property*
views.setProperties 複数のプロパティを設定 map
views.setProperty 単一のプロパティを設定 map, property*
views.addNode ビューにノードを追加 map, node*
views.removeNode ビューからノードを削除 map, node*

map パラメーターには、ビュー ID、名前、またはパスを指定できます。

ポリシー(6 ツール)

監視ポリシーを管理します。

ツール 説明 パラメーター
policies.getProperties ポリシーのプロパティを取得 map, properties
policies.getProperty 単一のプロパティを取得 map, property*
policies.setProperties 複数のプロパティを設定 map
policies.setProperty 単一のプロパティを設定 map, property*
policies.addNode ポリシーにノードを追加 map, node*
policies.removeNode ポリシーからノードを削除 map, node*

ノート(5 ツール)

ノードに関連付けられたノートを管理します。

ツール 説明 パラメーター
notes.add ノードにノートを追加 node, subject, text, label (red/green/blue/yellow), due, refid, category, archived
notes.get 参照 ID でノートを取得 node, refid*
notes.getProperty 単一のノートプロパティを取得 node, refid*, property*
notes.update ノートを更新 node, refid*, subject, text, label, due, category, archived
notes.updateProperty 単一のノートプロパティを更新 node, refid*, property*

インターフェイス設定(5 ツール)

ネットワークインターフェイスの表示設定を管理します。

ツール 説明 パラメーター
interfaceSettings.set インターフェイス設定を設定 node, ifIndex*, name, speed, note
interfaceSettings.get インターフェイス設定を取得 node, ifIndex
interfaceSettings.getAll すべてのインターフェイスを取得 node
interfaceSettings.delete インターフェイス設定を削除 node, ifIndex
interfaceSettings.deleteAll すべてのインターフェイス設定を削除 node

認証情報(2 ツール)

認証情報の種類とプロファイルを一覧表示します(管理者のみ)。

ツール 説明 パラメーター
credentials.getTypes 認証情報の種類を一覧表示 —
credentials.get 種類で認証情報を取得 type*

IP SLA(2 ツール)

ツール 説明 パラメーター
ipsla.get すべての IP SLA 操作を一覧表示 —
ipsla.getNode ノードの IP SLA を取得 node

NQA(2 ツール)

ツール 説明 パラメーター
nqa.get すべての NQA 操作を一覧表示 —
nqa.getNode ノードの NQA を取得 node

会話の例

接続すると、AI アシスタントは NetCrunch ツールを自然に使用できます。

ユーザー: 10.0.0.1 にあるノードのプロパティを表示してください

アシスタントは { "node": "10.0.0.1" } を指定して nodes.getProperties を呼び出し、結果を返します。

ユーザー: Web サーバーの監視を次の 2 時間無効にしてください

アシスタントは { "node": "web-server", "value": "off", "disabledUntil": "2026-04-26T20:00:00Z" } を指定して nodes.setMonitoring を呼び出します。

ユーザー: ファームウェアが更新されたことを示すノートをノード 42 に追加してください

アシスタントは { "node": "42", "subject": "Firmware updated", "text": "Firmware was updated to latest version.", "label": "green" } を指定して notes.add を呼び出します。

エラー処理

ツール呼び出しのエラーは、isError: true と JSON テキストコンテンツブロックを含む MCP エラー結果として返されます。

{ "content": [{ "type": "text", "text": "{\"error\":\"Authentication Failed\"}" }], "isError": true }

一般的なエラー条件:

エラー 原因
No API Key リクエストに認証情報がない
Authentication Failed API キーが無効または期限切れ
Node not Found 指定されたノードが存在しない
Access Denied API キーにこの操作の権限がない
Too Many Requests レート制限を超過 — 待機して再試行してください

agentaiapiautomationintegrationsmcprest