mcpField
C
ConnectWise Automate

ConnectWise Automate

ローカル
github.comクラウド・インフラ1今日更新

ConnectWise Automate について

ConnectWise Automateは、ConnectWise Automate RMMを管理する運用担当者やサービスプロバイダー向けのMCPサーバーです。決定木形式のナビゲーションからコンピューター、クライアント、アラート、スクリプトのツールに進め、ハンドラーは必要時に読み込みます。

主な機能

  1. 01領域別の決定木ナビゲーション
  2. 02クライアントとハンドラーの遅延読み込み
  3. 03コンピューターの検索・詳細・再起動・スクリプト実行
  4. 04クライアントの一覧と管理
  5. 05アラートとスクリプトへのアクセス

活用シーン

  1. 01管理対象コンピューターの検索と確認
  2. 02コンピューターのリモート再起動やスクリプト実行
  3. 03アラートの確認とクライアント記録の管理

MCP 対応

このMCPサーバーはClaudeなどのMCP対応クライアントをConnectWise Automateに接続します。領域を選択して、コンピューター、クライアント、アラート、スクリプトの各ツールを利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-technology-connectwise-automate": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CW_AUTOMATE_SERVER_URL",
"-e",
"CW_AUTOMATE_CLIENT_ID",
"-e",
"CW_AUTOMATE_USERNAME",
"-e",
"CW_AUTOMATE_PASSWORD",
"-e",
"CW_AUTOMATE_2FA_CODE",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/connectwise-automate-mcp:v1.8.2"
],
"env": {
"CW_AUTOMATE_SERVER_URL": "<CW_AUTOMATE_SERVER_URL>",
"CW_AUTOMATE_CLIENT_ID": "<CW_AUTOMATE_CLIENT_ID>",
"CW_AUTOMATE_USERNAME": "<CW_AUTOMATE_USERNAME>",
"CW_AUTOMATE_PASSWORD": "<CW_AUTOMATE_PASSWORD>",
"CW_AUTOMATE_2FA_CODE": "<CW_AUTOMATE_2FA_CODE>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e CW_AUTOMATE_SERVER_URL -e CW_AUTOMATE_CLIENT_ID -e CW_AUTOMATE_USERNAME -e CW_AUTOMATE_PASSWORD -e CW_AUTOMATE_2FA_CODE -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/connectwise-automate-mcp:v1.8.2
設定が必要な環境変数
CW_AUTOMATE_SERVER_URLConnectWise Automate server URL (e.g. https://your-server.hostedrmm.com)
CW_AUTOMATE_CLIENT_IDシークレットConnectWise Automate integrator client ID
CW_AUTOMATE_USERNAMEIntegrator username or user credential
CW_AUTOMATE_PASSWORDシークレットIntegrator password or user password
CW_AUTOMATE_2FA_CODEシークレットTwo-factor authentication code, if required by the account
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/connectwise-automate-mcp:v1.8.2

ツール

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

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

詳細

ConnectWise Automate MCP Server

Claude 向けのデシジョンツリーアーキテクチャを採用した、ConnectWise Automate 用の Model Context Protocol(MCP)サーバーです。

ワンクリックデプロイ

重要

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

  1. read:packages スコープを持つ GitHub Personal Access Token を作成します (classic token)。 どの GitHub アカウントでも使用できます。公開パッケージの読み取りに WYRE-AI 組織のメンバーである必要はありません。
  2. デプロイフローで求められたら、ビルド変数として追加します。
    • Cloudflare Workers → NODE_AUTH_TOKEN という名前のビルド変数に PAT を設定します (Workers → Settings → Build → Variables and Secrets)。
    • DigitalOcean App Platform → Build Time スコープの暗号化された環境変数 GITHUB_TOKEN に PAT を設定します (.do/deploy.template.yaml ではすでに宣言されています)。

DO にデプロイ

Cloudflare Workers にデプロイ

メモ

DigitalOcean のターゲットは Docker イメージ全体をビルドし、完全な MCP サーバーを HTTP 経由で実行します。運用者にはこの方法を推奨します。初回起動前に CONDUIT_S2S_SECRET(および CW_AUTOMATE_* シークレット)を設定してください。 S2S シークレットがない場合、HTTP モードは終了します。このテンプレートは、 シングルテナントのデプロイ用に AUTH_MODE=env を設定します。このリポジトリには、 現時点でサポート対象の Cloudflare Workers ターゲットはありません。 DigitalOcean またはビルド済みコンテナイメージ (ghcr.io/wyre-ai/connectwise-automate-mcp)を使用してください。

機能

  • デシジョンツリーアーキテクチャ:コンピューター、クライアント、アラート、スクリプトなどのドメイン間を移動して、関連するツールにアクセスできます
  • 遅延読み込み:クライアントの初期化とドメインハンドラーを必要に応じて読み込みます
  • 包括的な API 対応範囲:コンピューター、クライアント、アラート、スクリプトを管理できます
  • インタラクティブデバイスカード(MCP Apps):MCP Apps ホスト(Claude Desktop/Web)では、cwautomate_computers_get が読み取り専用のインタラクティブカードとして表示されます。デフォルトはニュートラルなデザインで、window.__BRAND__ の挿入または MCP_BRAND_* 環境変数によってブランド設定できます。他のホストでのプレーンな JSON の動作に変更はありません

インストール

このパッケージは 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 @wyre-ai/connectwise-automate-mcp

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

設定

.env.example をコピーし、以下の変数を設定します。stdio トランスポートは CW_AUTOMATE_* を読み取り、CONDUIT_S2S_SECRET は使用しません。

変数必須説明
CW_AUTOMATE_SERVER_URLstdio および AUTH_MODE=env の場合ConnectWise Automate サーバーの URL(例:https://your-server.hostedrmm.com)
CW_AUTOMATE_CLIENT_IDstdio および AUTH_MODE=env の場合ConnectWise Automate のクライアント ID
CW_AUTOMATE_USERNAMEstdio および AUTH_MODE=env の場合インテグレーターのユーザー名またはユーザーログイン
CW_AUTOMATE_PASSWORDstdio および AUTH_MODE=env の場合インテグレーターのパスワードまたはユーザーパスワード
CW_AUTOMATE_2FA_CODEいいえ2 要素認証コード(user 認証を強制します)
CW_AUTOMATE_AUTH_METHODいいえintegrator(デフォルト)または user
MCP_TRANSPORTいいえstdio(デフォルト)または http
AUTH_MODEいいえgateway(Docker イメージおよび Compose のデフォルト)または env。ゲートウェイモードでは、各 /mcp リクエストに X-CWA-Server、X-CWA-Client-ID、X-CWA-Username、X-CWA-Password が必要で、CW_AUTOMATE_* へのフォールバックは行いません。env では、S2S 認証に成功した場合にのみこれらの変数を使用します。
CONDUIT_S2S_SECRETHTTP の場合は必須サービス間シークレット。openssl rand -hex 32 で生成します。これが空、または既知のプレースホルダー(replace-with-a-real-secret、changeme、その他のサンプル値)の場合、HTTP サーバーはエラーをログに記録し、ゼロ以外の終了コードで終了します。この値がログに記録されることはありません。Compose はこの値がないと起動しません。実際の値をコミットしないでください。
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 が設定されている場合のバインドアドレス。デフォルトは 127.0.0.1 です。コンテナイメージでは 0.0.0.0 が設定されます。
MCP_HTTP_PORTいいえHTTP ポート。デフォルトは 8080 です。

/health は認証不要で、認証情報を読み取りません。

HTTP 認証

MCP_TRANSPORT=http かつ実際の CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。ヘッダー値は t=<unix seconds>,v1=<hex> です。ここで hex は、CONDUIT_S2S_SECRET をキーとして、リテラル文字列 t=<unix seconds> に対して生成した HMAC-SHA256(小文字の 16 進数 64 文字)です。タイムスタンプはサーバー時刻との差が 300 秒以内でなければなりません。ヘッダーがない場合、または無効な場合は、ベンダーの認証情報を読み取る前に HTTP 401 が返されます。

TS=$(date +%s)
SIG=$(printf 't=%s' "$TS" | openssl dgst -sha256 -hmac "$CONDUIT_S2S_SECRET" -hex | awk '{print $NF}')
curl -sS http://127.0.0.1:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-Gateway-S2S: t=${TS},v1=${SIG}" \
  -H "X-CWA-Server: https://your-server.hostedrmm.com" \
  -H "X-CWA-Client-ID: your-client-id" \
  -H "X-CWA-Username: your-username" \
  -H "X-CWA-Password: your-password" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

AUTH_MODE=gateway では、これらの X-CWA-* ヘッダーのみが認証情報の取得元です(X-CWA-2FA と X-CWA-Auth-Method は任意です)。必須ヘッダーが不足しているリクエストには HTTP 401 が返され、環境変数の CW_AUTOMATE_* は使用されません。AUTH_MODE=env では、署名済みリクエストで代わりに CW_AUTOMATE_* 変数が使用されます。

Docker

イメージはコンテナ内で 0.0.0.0(MCP_HTTP_HOST)をリッスンし、デフォルトで AUTH_MODE=gateway を使用します。ポートをループバックに公開し、S2S シークレットを渡してください。ゲートウェイモードでは、Automate の認証情報は各リクエストのヘッダーとして渡され、環境変数からは読み取られません。

docker build -t connectwise-automate-mcp .
docker run \
  -e CONDUIT_S2S_SECRET=your-s2s-secret \
  -p 127.0.0.1:8080:8080 \
  connectwise-automate-mcp

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

CONDUIT_S2S_SECRET=your-s2s-secret docker compose up

単一テナントの HTTP(AUTH_MODE=env)でも S2S シークレットが必要です。その後、CW_AUTOMATE_* が使用されます。

docker run \
  -e CONDUIT_S2S_SECRET=your-s2s-secret \
  -e AUTH_MODE=env \
  -e CW_AUTOMATE_SERVER_URL=https://your-server.hostedrmm.com \
  -e CW_AUTOMATE_CLIENT_ID=your-client-id \
  -e CW_AUTOMATE_USERNAME=your-username \
  -e CW_AUTOMATE_PASSWORD=your-password \
  -p 127.0.0.1:8080:8080 \
  connectwise-automate-mcp

シークレットを使わないローカル HTTP は開発専用です。127.0.0.1 のみにバインドされ、警告がログに記録されます。ループバック以外の MCP_HTTP_HOST は 127.0.0.1 に上書きされます。

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 node dist/index.js

DigitalOcean App Platform テンプレートは単一テナント向けです。AUTH_MODE=env を設定して CW_AUTOMATE_* シークレットを認証情報の取得元として使用し、CONDUIT_S2S_SECRET も宣言します。App Platform の UI でこのシークレットを設定してください。設定しない場合、コンテナは起動時に終了します。

認証方法

このサーバーは、ConnectWise Automate の両方の認証方法をサポートしています。

  • integrator(デフォルト)– マシン間連携用のインテグレーターアカウントです。自動化に推奨されます。2FA は使用しません。
  • user – 2 要素認証コードを入力できる、対話型のユーザーログインです。

通常、CW_AUTOMATE_AUTH_METHOD を設定する必要はありません。デフォルトではインテグレーター認証が使用され、CW_AUTOMATE_2FA_CODE が指定されている場合は user 認証が自動的に選択されます。

使用方法

MCP サーバーとして

Claude の設定に追加します。

{
  "mcpServers": {
    "connectwise-automate": {
      "command": "npx",
      "args": ["@wyre-ai/connectwise-automate-mcp"],
      "env": {
        "CW_AUTOMATE_SERVER_URL": "https://your-server.hostedrmm.com",
        "CW_AUTOMATE_CLIENT_ID": "your-client-id",
        "CW_AUTOMATE_USERNAME": "your-username",
        "CW_AUTOMATE_PASSWORD": "your-password"
      }
    }
  }
}
ナビゲーション

このサーバーは決定木パターンを使用します。まず、ドメインに移動します。

  1. cwautomate_navigate を使用してドメイン(コンピューター、クライアント、アラート、スクリプト)を選択します
  2. ドメイン固有のツールが使用可能になります
  3. cwautomate_back を使用してメインメニューに戻ります
使用可能なドメイン
コンピューター
  • フィルタリングオプションを指定してコンピューターを一覧表示します
  • コンピューターの詳細を取得します
  • 名前でコンピューターを検索します
  • コンピューターをリモートで再起動します
  • コンピューターでスクリプトを実行します
クライアント
  • すべてのクライアントを一覧表示します
  • クライアントの詳細を取得します
  • 新しいクライアントを作成します
  • 既存のクライアントを更新します
アラート
  • フィルタリングを指定してアラートを一覧表示します(Automate API では読み取り専用です)
  • アラートの詳細を取得します
スクリプト
  • 使用可能なスクリプトを一覧表示します
  • スクリプトの詳細を取得します
  • コンピューターでスクリプトを実行します

開発

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Type check
npm run typecheck

# Lint
npm run lint

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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