mcpField
D
Datto RMM

Datto RMM

ローカル
github.comクラウド・インフラ42 週間前に更新

Datto RMM について

Datto RMM MCP サーバーは、IT チームやエージェントがデバイス、アラート、サイト、ジョブ、監査データを確認・管理するためのものです。読み取りと操作のツールを備え、対応する MCP Apps ホストではインタラクティブなアラートカードを表示します。

主な機能

  1. 01デバイスの一覧・検索・詳細表示
  2. 02アラートの確認と解決
  3. 03サイトとコンポーネントの閲覧
  4. 04クイックジョブの実行と確認
  5. 05監査データとパッチ状態の取得
  6. 06MCP Apps のインタラクティブなアラートカード

活用シーン

  1. 01ホスト名からデバイスを検索
  2. 02未解決アラートの確認や解決
  3. 03デバイスでクイックジョブを実行
  4. 04ソフトウェア一覧やパッチ状態を確認

MCP 対応

Datto RMM の操作を MCP ツールとして公開し、データ取得ツールには読み取り専用の注釈を付けています。アラート詳細ツールは、対応する MCP Apps ホストでインタラクティブカードを表示できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-datto-rmm": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATTO_API_KEY",
"-e",
"DATTO_API_SECRET",
"-e",
"DATTO_PLATFORM",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/datto-rmm-mcp:v1.10.1"
],
"env": {
"DATTO_API_KEY": "<DATTO_API_KEY>",
"DATTO_API_SECRET": "<DATTO_API_SECRET>",
"DATTO_PLATFORM": "<DATTO_PLATFORM>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e DATTO_API_KEY -e DATTO_API_SECRET -e DATTO_PLATFORM -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/datto-rmm-mcp:v1.10.1
設定が必要な環境変数
DATTO_API_KEYシークレットDatto RMM API key
DATTO_API_SECRETシークレットDatto RMM API secret key
DATTO_PLATFORMDatto RMM API platform/zone: pinotage, merlot, concord, vidal, zinfandel, or syrah
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODEシークレットCredential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

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

パッケージ
ocighcr.io/wyre-ai/datto-rmm-mcp:v1.10.1

ツール

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

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

詳細

Datto RMM MCP サーバー

Datto RMM 向けの MCP サーバーです。Claude から Datto RMM アカウントを操作できます。

ワンクリックデプロイ

重要

クリックする前にご確認ください: このサーバーは @wyre-ai/node-datto-rmm に依存しています。このパッケージは GitHub Packages の npm レジストリでホストされています。GitHub Packages では匿名アクセスができないため、パッケージが公開されていても、npm install のたびにトークンが必要です。クラウドビルダーは代わりに npm install を実行するため、トークンを渡さないとビルドに失敗し、npm error 401 Unauthorized ... npm.pkg.github.com が発生します。

  1. read:packages スコープを付けた GitHub Personal Access Token を作成します(classic token)。 公開パッケージの読み取りに wyre-technology org のメンバーである必要はなく、どの GitHub アカウントでも使用できます。
  2. デプロイの手順で求められたら、ビルド変数としてトークンを追加します。
    • Cloudflare Workers → ビルド変数 NODE_AUTH_TOKEN に PAT を設定します (Workers → Settings → Build → Variables and Secrets)。
    • DigitalOcean App Platform → 暗号化された環境変数 GITHUB_TOKEN を作成し、スコープを Build Time に設定して PAT を指定します(.do/deploy.template.yaml で既に宣言されています)。 また、ランタイムシークレット CONDUIT_S2S_SECRET も設定します(openssl rand -hex 32)。 この値が設定されていないか、既知のプレースホルダーが指定されている場合、HTTP は終了します。

DO にデプロイ

Cloudflare Workers にデプロイ

メモ

DigitalOcean のターゲットでは、Docker イメージ全体をビルドし、完全な MCP サーバーを HTTP 経由で実行します。運用担当者にはこの方法を推奨します。このリポジトリには Cloudflare Workers のエントリーポイント(src/worker.ts)がないため、Workers ボタンはまだサポート対象ではありません。DigitalOcean またはビルド済みコンテナイメージ(ghcr.io/wyre-ai/datto-rmm-mcp)を使用してください。

機能

  • デバイス管理:デバイスの一覧表示、検索、詳細の取得
  • アラート管理:アラートの表示と解決
  • インタラクティブなアラートカード(MCP Apps):datto_get_alert は MCP Apps ホスト(Claude Desktop/web)でインタラクティブなカードとして表示され、カード内で「アラートを解決」する一連の処理を実行できます。デフォルトではニュートラルなデザインで、window.__BRAND__ の挿入または MCP_BRAND_* 環境変数によるブランド設定に対応しています。他のホストでは、従来どおりプレーンな JSON が返されます
  • サイト管理:サイトの一覧表示と詳細の確認
  • クイックジョブ:デバイスでクイックジョブを実行
  • 監査データ:デバイスの監査データ全体またはソフトウェアインベントリを取得

インストール

MCP Gateway 経由(推奨)

このサーバーは、認証と認証情報の管理を担う MCP Gateway と連携するように設計されています。

HTTP では、ゲートウェイは X-Gateway-S2S を使って呼び出し元であることを証明します。値の形式は t=<unix seconds>,v1=<hex hmac-sha256> です。MAC は、ヘッダーに含まれるものと同じ t=<unix seconds> という ASCII 文字列を対象に、CONDUIT_S2S_SECRET をキーとして HMAC-SHA256 で計算されます。タイムスタンプはサーバーの時刻から 300 秒以内でなければなりません。ヘッダーがないか無効な場合は 401 が返されます。シークレットがログに書き込まれることはありません。

エンドユーザーへのジョブの帰属

Datto RMM はジョブを作成した API アカウントを記録し、それを上書きする方法を提供していません。そのため、共有サービスアカウントでは、コンソール上のクイックジョブがすべて、依頼した人ではなく連携機能によるものとして表示されます。

ゲートウェイから X-Mcp-User-Upn ヘッダーが送信されると、その識別情報がジョブ名に追加されます。これは、コンソールのアクティビティリストに表示される唯一のフィールドです。

Restart Service [[email protected]]

AUTH_MODE=gateway の場合にのみ有効です。 ゲートウェイを介さない場合、ヘッダーの値は呼び出し元が自由に指定できるため、その値にジョブを帰属させると、自己申告の情報であるにもかかわらず、信頼できる情報のように見えてしまいます。どちらの場合も、これは補助的なラベル付けであり、認可には一切影響しません。値に含まれる角括弧と制御文字は削除され、長さにも上限が設定されているため、このサフィックスを偽造したり、ジョブ名を破損させたりすることはできません。

ローカル開発

このサーバーの @wyre-technology/* 依存関係は GitHub Packages npm レジストリにあります。公開パッケージでもトークンが必要です。一度認証してから、インストールしてください。

# Authenticate npm to GitHub Packages (token needs the read:packages scope)
export NODE_AUTH_TOKEN=$(gh auth token)   # or a PAT with read:packages

npm install
npm run build
npm start

リポジトリの .npmrc では、@wyre-technology スコープがすでに GitHub Packages を参照するよう設定されており、トークンは NODE_AUTH_TOKEN から読み込まれるため、追加の設定は不要です。

設定

.env.example をコピーしてください。stdio と AUTH_MODE=env は、環境変数からベンダーの認証情報を読み込みます。ゲートウェイモードでは読み込みません。

変数必須説明
DATTO_API_KEYstdio および AUTH_MODE=env の場合Datto RMM API キー
DATTO_API_SECRETstdio および AUTH_MODE=env の場合Datto RMM API シークレット
DATTO_PLATFORMいいえAPI プラットフォーム:pinotage、merlot、concord(デフォルト)、vidal、zinfandel、または syrah
MCP_TRANSPORTいいえstdio(デフォルト)または http
AUTH_MODEいいえenv(イメージのデフォルト)または gateway(Compose のデフォルト)。ゲートウェイモードでは、各 /mcp リクエストに X-Datto-API-Key と X-Datto-API-Secret が必要です。また、DATTO_* へのフォールバックは行いません。env では、S2S 認証に成功した後にのみ、これらの変数を使用します。
CONDUIT_S2S_SECRETHTTP では必須サービス間シークレット。この値が空、または既知のプレースホルダー(changeme、placeholder、your-s2s-secret、replace-with-a-real-secret、およびコード内のその他のサンプル値)の場合、HTTP サーバーはエラーをログに記録して、ゼロ以外の終了コードで終了します。Compose は、この値がないと起動しません。実際の値をコミットしないでください。openssl rand -hex 32 で生成してください。
MCP_ALLOW_INSECURE_DEVいいえCONDUIT_S2S_SECRET がない状態で HTTP を起動するには、ローカル開発時に限り、値を 1 に設定します。プロセスは警告をログに記録し、X-Gateway-S2S を検証しません。リスナーは 127.0.0.1 に固定されます。ループバック以外の MCP_HTTP_HOST(0.0.0.0 を含む)が指定されている場合、起動を拒否します。既知のプレースホルダーが設定されている場合も起動を拒否します。このバイパスを使うには、シークレットの設定を解除してください。
MCP_HTTP_HOSTいいえMCP_TRANSPORT=http の場合のバインドアドレス。有効な CONDUIT_S2S_SECRET が設定されている場合、この値が使用されます。未設定時のデフォルトは 0.0.0.0 で、コンテナのデプロイ設定は変更せずに利用できます。コンテナイメージでは 0.0.0.0 が設定されています。
MCP_HTTP_PORTいいえHTTP ポート。デフォルトは 8080 です。

/health は引き続き認証不要で、認証情報を読み込みません。stdio トランスポートでは CONDUIT_S2S_SECRET を使用しません。

MCP Gateway とともに、シングルテナントの AUTH_MODE=env で使用する場合、X_API_KEY および X_API_SECRET 環境変数を通じて認証情報を注入することもできます。この方法でも、HTTP では有効な X-Gateway-S2S ヘッダーが必要です。

HTTP 認証

MCP_TRANSPORT=http で CONDUIT_S2S_SECRET が設定されている場合、各 /mcp リクエストには X-Gateway-S2S: t=<unix seconds>,v1=<hex hmac-sha256 of the string t=...> を含める必要があります。ヘッダーがない、または無効な場合は、ベンダーの認証情報を読み込む前に 401 を返します。

AUTH_MODE=gateway では、/mcp に X-Datto-API-Key と X-Datto-API-Secret も必要です(X-Datto-Platform は任意です)。そのリクエストの認証情報は、これらのヘッダーからのみ取得します。ヘッダーがないリクエストには 401 を返し、DATTO_API_KEY/DATTO_API_SECRET にはフォールバックしません。

プラットフォームの選択

Datto RMM では、リージョンごとの API エンドポイントを使用します。アカウントに一致するプラットフォームを選択してください。

プラットフォームリージョン/説明
pinotage南アフリカ
merlotヨーロッパ
concord米国東部(デフォルト)
vidalカナダ
zinfandel米国西部
syrahオーストラリア

利用可能なツール

Datto RMM からデータを読み取るだけのツールは、tools/list の定義で annotations: { readOnlyHint: true } を持ちます。この MCP ヒントをサポートするクライアント(Microsoft 365 Copilot/Copilot Studio など)は、これらのツールに対する呼び出しごとの確認プロンプトを省略できます。作成、更新、解決、実行を行うツールには、読み取り専用の注釈が付くことはありません。

ツール説明読み取り専用
datto_list_devicesデバイスを一覧表示します。サイトで絞り込むこともできますはい
datto_find_deviceホスト名(完全一致または部分一致)でデバイスを検索し、UID を特定しますはい
datto_get_deviceUID でデバイスの詳細を取得しますはい
datto_list_alerts未解決のアラートを一覧表示します。サイトで絞り込むこともできますはい
datto_get_alertUID でアラートの詳細を取得します(MCP Apps ホストではインタラクティブカードとして表示されます)はい
datto_resolve_alertアラートを解決しますいいえ
datto_list_sitesすべてのサイトを一覧表示しますはい
datto_get_siteサイトの詳細を取得しますはい
datto_list_componentsコンポーネントを一覧表示します(datto_run_quickjob で使用する componentUid と、必要な variables を検索します)。名前の部分一致による絞り込みもできますはい
datto_run_quickjobデバイスでクイックジョブを実行します(以下のジョブツールで使用するジョブ UID を返します)いいえ
datto_get_jobUID でクイックジョブのステータス/詳細を取得しますはい
datto_get_job_componentsクイックジョブを構成するコンポーネントを取得しますはい
datto_get_job_results特定のデバイスに対するクイックジョブの結果を取得しますはい
datto_get_job_stdout特定のデバイスに対するクイックジョブのキャプチャ済み stdout を取得しますはい
datto_get_job_stderr特定のデバイスに対するクイックジョブのキャプチャ済み stderr を取得しますはい
datto_get_device_auditデバイスの監査データを取得します(全項目またはソフトウェアのみ)はい
datto_get_device_patchesデバイスの Windows パッチ適用状況を取得しますはい
datto_get_site_patchesサイト内のすべてのデバイスの Windows パッチ適用状況を取得しますはい

Docker

ビルド済みイメージを使用する(ビルド不要、トークン不要)

イメージはコンテナ内で 0.0.0.0(MCP_HTTP_HOST)をリッスンし、デフォルトで AUTH_MODE=env を使用します。ポートをループバックで公開し、S2S シークレットを渡してください。CONDUIT_S2S_SECRET が空、または既知のプレースホルダーの場合、HTTP は起動しません。

docker pull ghcr.io/wyre-ai/datto-rmm-mcp:latest

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e DATTO_API_KEY=xxx \
  -e DATTO_API_SECRET=xxx \
  -e DATTO_PLATFORM=concord \
  -p 127.0.0.1:8080:8080 \
  ghcr.io/wyre-ai/datto-rmm-mcp:latest

イメージは公開されており、匿名で取得できるため、この方法では GitHub トークンは一切必要ありません。

ゲートウェイモードでは、これらのベンダー変数は読み込まれません。認証情報はリクエストごとに渡され、リクエストには CONDUIT_S2S_SECRET で署名された X-Gateway-S2S も含める必要があります。

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=gateway \
  -p 127.0.0.1:8080:8080 \
  ghcr.io/wyre-ai/datto-rmm-mcp:latest

Compose は CONDUIT_S2S_SECRET が設定されていない場合は起動せず、AUTH_MODE=gateway を設定し、DATTO_API_KEY または DATTO_API_SECRET を注入せず、127.0.0.1:8080:8080 を公開します。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up
ソースからビルドする

ビルドでは GitHub Packages から @wyre-ai/node-datto-rmm をインストールします。このパッケージは公開されていますが、トークンが必要です(ワンクリックデプロイを参照)。Dockerfile は GITHUB_TOKEN ビルド引数としてトークンを受け取ります。省略すると、npm ci で npm error 401 Unauthorized ... npm.pkg.github.com が発生し、ビルドに失敗します。

docker build --build-arg GITHUB_TOKEN=$(gh auth token) -t datto-rmm-mcp .

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e DATTO_API_KEY=xxx \
  -e DATTO_API_SECRET=xxx \
  -e DATTO_PLATFORM=concord \
  -p 127.0.0.1:8080:8080 \
  datto-rmm-mcp

トークンは一時的な .npmrc に書き込まれ、同じレイヤー内で削除されるため、イメージに埋め込まれることはありません。

メモ

イメージはデフォルトでポート 8080 の MCP_TRANSPORT=http を使用します。プロキシが前段にない場合は、ループバックで公開してください(-p 127.0.0.1:8080:8080)。ヘルスチェック: curl http://127.0.0.1:8080/health(認証情報不要)。CONDUIT_S2S_SECRET が実際のシークレットになるまで、HTTP は起動しません。

シークレットを使わないローカル HTTP は、開発専用です。127.0.0.1 にバインドし、警告をログに記録します。ループバック以外の値を MCP_HTTP_HOST に設定すると、起動時に終了します。

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start

License

Apache-2.0

コメント

MCP は初めてですか?

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

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