mcpField
R
Rootly

Rootly

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

Rootly について

Rootlyは、インシデント対応チーム向けのRootlyインシデント管理プラットフォーム用MCPサーバーです。ドメイン別の決定木でツールを整理し、MCP Apps対応ホストでは詳細を読み取り専用のインタラクティブカードで表示できます。

主な機能

  1. 014領域を分ける決定木ナビゲーション
  2. 02インシデントの作成、更新、解決
  3. 03アラートの確認と管理
  4. 04オンコールスケジュールと組織の照会
  5. 05読み取り専用のインタラクティブカード

活用シーン

  1. 01インシデントの確認や更新
  2. 02アラートの確認と解決
  3. 03オンコール予定とチームの確認

MCP 対応

Rootlyのインシデント、アラート、スケジュール、組織の操作をMCPツールとして公開します。`rootly_incidents_get`はMCP Apps対応ホストで読み取り専用カードを表示できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-rootly": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROOTLY_API_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/rootly-mcp:v1.2.9"
],
"env": {
"ROOTLY_API_TOKEN": "<ROOTLY_API_TOKEN>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e ROOTLY_API_TOKEN -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/rootly-mcp:v1.2.9
設定が必要な環境変数
ROOTLY_API_TOKENシークレットRootly API token (Bearer credential)
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/rootly-mcp:v1.2.9

ツール

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

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

詳細

rootly-mcp

Rootly インシデント管理プラットフォーム用のMCP サーバーです。

WYRE Technology が開発しました。wyre-projects MCP サーバーコレクションの一部です。

決定木ナビゲーションを使用します。まず rootly_navigate でドメインを選択し、そのドメインのツールを使用します。戻るには rootly_back を呼び出します。

ドメインとツール

ナビゲーション(常に利用可能)
ツール説明
rootly_navigateドメインに移動します:incidents、alerts、schedules、org
rootly_status接続状況と利用可能なドメインを確認します
rootly_backナビゲーションメニューに戻ります
ドメイン:incidents
ツール説明
rootly_incidents_listステータスや重大度のフィルターを指定してインシデントを一覧表示します
rootly_incidents_getIDで単一のインシデントを取得します
rootly_incidents_create新しいインシデントを作成します
rootly_incidents_updateタイトル、概要、ステータス、重大度を更新します
rootly_incidents_resolveインシデントを解決します
ドメイン:alerts
ツール説明
rootly_alerts_listステータスフィルターを指定してアラートを一覧表示します
rootly_alerts_acknowledgeアラートを確認します
rootly_alerts_resolveアラートを解決します
rootly_alerts_create新しいアラートを作成します
rootly_alerts_updateアラートのステータスまたは概要を更新します
ドメイン:schedules
ツール説明
rootly_schedules_listオンコールスケジュールを一覧表示します
rootly_schedules_get単一のオンコールスケジュールを取得します
ドメイン:org
ツール説明
rootly_org_list_teamsチームを一覧表示します
rootly_org_list_severities重大度レベルを一覧表示します
rootly_org_current_user現在認証されているユーザーを取得します

インタラクティブなインシデントカード(MCP Apps)

rootly_incidents_get は、MCP Apps ホスト(Claude Desktop/web)ではステータス、重大度、サービス、環境、チーム、ライフサイクルのタイムラインを表示する読み取り専用のインタラクティブカードとしてレンダリングされます。他のホストでは、プレーンなJSONの動作は変わりません。カードはデフォルトでニュートラルなデザインで、window.__BRAND__ の注入または MCP_BRAND_* 環境変数(MCP_BRAND_NAME、MCP_BRAND_LOGO_URL、MCP_BRAND_PRIMARY_COLOR、MCP_BRAND_ACCENT_COLOR、MCP_BRAND_BG、MCP_BRAND_TEXT)でブランド設定できます。再ビルドは不要です。カードバンドル自体を再ビルドするには npm run build:ui を実行してください(ui/ に変更があった場合のみ必要です。埋め込み済みの出力はコミットされています)。

セットアップ

1. インストールとビルド
cd rootly-mcp
npm install
npm run build
2. API トークンを設定
export ROOTLY_API_TOKEN=rootly_xxxxxxxxxxxxxxxx

トークンは Rootly → Profile → API Tokens から取得してください。

3. 実行(stdio — mcporter/Claude Desktop 用)
ROOTLY_API_TOKEN=your_token node dist/index.js
4. 実行(HTTP ストリーミングトランスポート)

CONDUIT_S2S_SECRET は必須です。空の場合、または既知のプレースホルダー(changeme、change-me、secret、example、placeholder、replace-me、your-secret、your-s2s-secret、s2s-secret、replace-with-a-real-secret)の場合、HTTP サーバーはエラーをログに出力して、ゼロ以外の終了コードで終了します。シークレットが出力されることはありません。

# Refuses to start until CONDUIT_S2S_SECRET is set. With a secret and no
# MCP_HTTP_HOST, the process binds 0.0.0.0 (same as container deploys).
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  ROOTLY_API_TOKEN=your_token \
  MCP_HTTP_HOST=127.0.0.1 \
  npm run start:http

# Local HTTP only, without a service-to-service secret. Always binds 127.0.0.1.
# A non-loopback MCP_HTTP_HOST is overridden and that override is logged.
MCP_ALLOW_INSECURE_DEV=1 npm run start:http

/health は認証なしで利用でき、X-Gateway-S2S を必要とせず、API トークンも返しません。stdio トランスポートでは CONDUIT_S2S_SECRET を使用しません。

5. Docker で実行

イメージはコンテナ内の 0.0.0.0(MCP_HTTP_HOST)で待ち受け、デフォルトで AUTH_MODE=gateway に設定されます。ポートをループバックに公開し、S2S シークレットを渡してください。ゲートウェイモードでは、Rootly トークンは各リクエストの X-Rootly-Api-Token として渡され、環境変数から読み込まれることはありません。

docker build -t rootly-mcp .
docker run \
  -e CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" \
  -p 127.0.0.1:8080:8080 \
  rootly-mcp

your-s2s-secret や changeme などの既知のプレースホルダーは渡さないでください。起動時に未設定として扱われ、終了します。Compose は CONDUIT_S2S_SECRET が未設定の場合に起動を拒否し、AUTH_MODE=gateway を設定します。また、ROOTLY_API_TOKEN を渡さず、127.0.0.1:8080:8080 を公開します。プロジェクトの .env は補間にのみ使用されます。ゲートウェイサービスに env_file を追加しないでください。

CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" docker compose up

シングルテナント HTTP(AUTH_MODE=env)でもS2S シークレットが必要です。そのうえで ROOTLY_API_TOKEN を使用します。

docker run \
  -e CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" \
  -e AUTH_MODE=env \
  -e ROOTLY_API_TOKEN=your_token \
  -e MCP_HTTP_HOST=0.0.0.0 \
  -p 127.0.0.1:8080:8080 \
  rootly-mcp

設定

.env.example をコピーし、以下の変数を設定してください。

VariableRequiredDescription
ROOTLY_API_TOKENstdio および AUTH_MODE=env の場合は必須Rootly API トークン(Bearer)。ゲートウェイモードでは読み込まれません。
MCP_TRANSPORTいいえstdio(デフォルト)または http
AUTH_MODEいいえgateway(Docker イメージおよび Compose のデフォルト)または env。ゲートウェイモードでは、各 /mcp リクエストに X-Rootly-Api-Token が必要で、ROOTLY_API_TOKEN へのフォールバックは行いません。env は S2S 認証の成功後にこの変数を使用します。
CONDUIT_S2S_SECRETHTTP では必須サービス間シークレット。この値が空、または既知のプレースホルダーの場合、HTTP サーバーはエラーをログに記録し、ゼロ以外の終了コードで終了します。Compose はこの値がないと起動しません。実際の値は絶対にコミットしないでください。
MCP_ALLOW_INSECURE_DEVいいえCONDUIT_S2S_SECRET なしで HTTP を起動する場合は、ローカル開発時に限り 1 を設定してください。このプロセスは警告をログに記録し、X-Gateway-S2S を強制せず、127.0.0.1 のみでバインドします。MCP_HTTP_HOST にループバック以外のアドレスを指定した場合は上書きされ、その旨がログに記録されます。プレースホルダーのシークレットを指定した場合は、引き続き起動を拒否します。
MCP_HTTP_HOSTいいえシークレットが設定されている場合のバインドアドレス。未設定の場合は 0.0.0.0 です。コンテナイメージでは 0.0.0.0 が設定されます。安全でない開発用バイパスが有効な場合は無視され、127.0.0.1 が使用されます。
MCP_HTTP_PORTいいえHTTP ポート。デフォルトは 8080 です。
LOG_LEVELいいえdebug、info、warn、または error。デフォルトは info です。
HTTP 認証

MCP_TRANSPORT=http かつ CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。値は t=<unix seconds>,v1=<hex hmac-sha256> です。16 進ダイジェストは、ヘッダーに含まれるものと同じプレフィックスである正確な ASCII 文字列 t=<unix seconds> に対し、CONDUIT_S2S_SECRET をキーとして HMAC-SHA256 を計算し、小文字の 16 進文字 64 桁でエンコードしたものです。タイムスタンプはサーバーの時刻との差が 300 秒以内でなければなりません。ヘッダーがない場合、または無効な場合は、401 が返されます。シークレットがログやレスポンスに書き込まれることはありません。

X-Gateway-S2S: t=1710000000,v1=<64 lowercase hex chars>

AUTH_MODE=gateway の場合、/mcp には X-Rootly-Api-Token も必要です。このヘッダーが、そのリクエストで使用する唯一の Rootly 認証情報です。このヘッダーがないリクエストには 401 が返され、ROOTLY_API_TOKEN へのフォールバックは行われません。

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: $X_GATEWAY_S2S" \
  -H "x-rootly-api-token: $ROOTLY_API_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"rootly_status","arguments":{}}}'

mcporter の設定

{
  "rootly": {
    "command": "node",
    "args": ["/path/to/rootly-mcp/dist/index.js"],
    "env": {
      "ROOTLY_API_TOKEN": "rootly_xxxxxxxxxxxxxxxx"
    }
  }
}

次に、mcporter call rootly.rootly_navigate --domain alerts を実行します。

Claude Desktop(MCPB)

Releases から .mcpb バンドルをダウンロードし、Claude Desktop にインストールしてください。

または、claude_desktop_config.json に手動で追加してください。

{
  "mcpServers": {
    "rootly": {
      "command": "node",
      "args": ["/path/to/rootly-mcp/dist/index.js"],
      "env": { "ROOTLY_API_TOKEN": "your_token" }
    }
  }
}

レート制限

Rootly では、60 秒あたり 3 回の書き込み操作が制限されています。サーバーはこれをプロセス内で追跡し、上限を超えると、再試行までの時間を含む説明的なエラーを返します。

API リファレンス

  • Rootly API ドキュメント:https://docs.rootly.com/api-reference
  • API ベース URL:https://api.rootly.com/v1
  • 認証:Authorization: Bearer <token>
  • 書き込み時のコンテンツタイプ:application/vnd.api+json

開発

npm run dev        # watch mode
npm run lint       # TypeScript type-check
npm run test       # run tests

ライセンス

Apache-2.0 © WYRE Technology

コメント

MCP は初めてですか?

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

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