mcpField
D
Datto RMM

Datto RMM

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

Datto RMM について

Datto RMM MCP Serverは、運用担当者やアシスタントがDatto RMMのアカウント情報を参照し、デバイス操作を行うためのサーバーです。デバイス、アラート、サイト、クイックジョブ、監査情報を扱い、対応するMCP Appsホストではインタラクティブなアラートカードを表示します。

主な機能

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

活用シーン

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

MCP 対応

stdioまたはHTTPでDatto RMMの操作をMCPツールとして公開します。HTTPリクエストではゲートウェイ認証を利用でき、読み取り専用ツールにはMCPアノテーションが付与されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-technology-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-technology/datto-rmm-mcp:v1.7.6"
],
"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-technology/datto-rmm-mcp:v1.7.6
設定が必要な環境変数
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-technology/datto-rmm-mcp:v1.7.6

ツール

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

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

詳細

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 つのサーバーを複数のクライアントで再利用できます。