mcpField
M
mulewatch

mulewatch

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

mulewatch について

mulewatch は、ローカルの Mule プロジェクトを必要とせず、MuleSoft Anypoint 環境を確認する読み取り専用 MCP サーバーです。運用担当者向けに、最新・過去のログ、デプロイ状況、API Manager、Exchange の情報をまとめて提供します。

主な機能

  1. 01ビジネスグループと環境の一覧表示
  2. 02各ターゲットのデプロイ済みアプリ確認
  3. 03アプリログの取得と分析
  4. 04過去のモニタリングアーカイブ検索
  5. 05API Manager インスタンスの一覧表示
  6. 06Exchange アセットの検索

活用シーン

  1. 01最新ログからアプリのエラーを調査
  2. 02過去のインシデントに関するログを検索
  3. 03環境横断でデプロイと API アセットを確認

MCP 対応

stdio MCP サーバーが、担当者の認証情報を使って MCP クライアントを MuleSoft Anypoint に接続します。ログ、デプロイ、環境、API Manager、Exchange の読み取り専用ツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"brbousnguar-mulewatch": {
"command": "npx",
"args": [
"-y",
"mulewatch"
],
"env": {
"ANYPOINT_CLIENT_ID": "<ANYPOINT_CLIENT_ID>",
"ANYPOINT_CLIENT_SECRET": "<ANYPOINT_CLIENT_SECRET>",
"ANYPOINT_ORG_ID": "<ANYPOINT_ORG_ID>",
"ANYPOINT_ALLOWED_ENVIRONMENTS": "<ANYPOINT_ALLOWED_ENVIRONMENTS>",
"ANYPOINT_BASE_URL": "<ANYPOINT_BASE_URL>",
"ANYPOINT_MONITORING_BASE_URL": "<ANYPOINT_MONITORING_BASE_URL>"
}
}
}
}
起動コマンドnpx -y mulewatch
設定が必要な環境変数
ANYPOINT_CLIENT_IDAnypoint connected app client id (app acts on its own behalf).
ANYPOINT_CLIENT_SECRETシークレットAnypoint connected app client secret.
ANYPOINT_ORG_IDBusiness group id to operate on. Defaults to the organization the credentials belong to.
ANYPOINT_ALLOWED_ENVIRONMENTSComma-separated environment names or ids the server is allowed to read. Unset means all visible environments.
ANYPOINT_BASE_URLAnypoint control plane host. Defaults to https://anypoint.mulesoft.com.
ANYPOINT_MONITORING_BASE_URLAnypoint Monitoring host. Defaults to https://monitoring.anypoint.mulesoft.com.

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

パッケージ
npmmulewatch0.1.2

ツール

9

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

mulewatch

mulewatch

MCP 経由で MuleSoft Anypoint Platform を読み取り専用で可観測化します。
Anypoint のすべての顧客が自身の認証情報を使って、アプリケーションログ、履歴アーカイブ検索、Runtime Manager、API Manager、Exchange を利用できます。

npm の mulewatch MCP レジストリに掲載 Apache-2.0 ライセンス
プラットフォーム MCP SDK Node.js MuleSoft Anypoint

仕組み · プロジェクトページ · npm · MCP レジストリ


機能

mulewatch は、MCP クライアント(Claude Desktop、Claude Code、Cursor、OpenClaw)を MuleSoft Anypoint Platform に接続します。これにより、Mule 環境について自然な言葉で質問し、プラットフォーム API から実際の回答を得られます。フローを書く人ではなく、ページャーを受け取る人を対象としており、ローカルの Mule プロジェクトは不要で、すべてのツールは読み取り専用です。

  • Runtime Manager のアプリケーションログ。CloudHub 2.0、Runtime Fabric、従来の CloudHub にわたって正規化されます。
  • Anypoint Monitoring Archive API を通じた履歴ログ検索。ライブテールのローリングバッファーに残っていない過去のインシデントも検索できます。
  • 分析に適したログペイロード。正規化された行に加え、優先度、ロガー、レプリカ別の件数が含まれます。
  • Application Manager、CloudHub、ハイブリッドなオンプレミスのターゲットにわたる Runtime Manager のインベントリ。
  • API Manager のインスタンスと Exchange のアセットを網羅し、1 つのサーバーで「何がデプロイされ、何に接続され、何が問題を起こしたか」に回答できます。

特定の顧客向けにハードコードされているものはありません。ビジネスグループ、環境、認証情報はすべて、接続済みアプリから取得されます。

MuleSoft 公式 MCP サーバーとの違い

MuleSoft は独自の MCP サーバー(mulesoft-mcp-server、ドキュメント)を公開しています。これは開発ツールです。Mule プロジェクトのひな形を作成し、フローや API 仕様を生成して、主に IDE 内のローカルプロジェクトからアプリケーションをデプロイします。

mulewatch は運用ツールです。環境に書き込みを行わず、ローカルプロジェクトも必要とせず、公式サーバーがまったく扱わない領域、つまり Monitoring Archive の履歴ログを含むアプリケーションログの取得と検索に対応します。2 つのサーバーは問題なく併用できます。デプロイやひな形作成のツールが必要な場合は、公式のものをお使いください。

要件

  • Node.js 20 以降
  • 読み取りたいビジネスグループにアクセスできる Anypoint Platform アカウント
  • 「自身に代わって動作する」 が有効な接続済みアプリ(推奨)、またはプラットフォームの認証情報
  • 履歴ログ検索のみ:組織で Anypoint Monitoring が有効であること
接続アプリのスコープ

使用する対象に応じて、必要なビジネスグループと環境のスコープを付与してください。スコープが不足している場合、Anypoint は詳細を示さずに 403 Forbidden を返します。mulewatch はこれを捕捉し、必要と思われるスコープ名を表示します。

対象スコープ
環境、ビジネスグループView Environments、View Organization
Runtime Manager のアプリとログRead Applications
履歴アーカイブの検索Anypoint Monitoring の Viewer
API Manager のインスタンスView APIs Configuration
Exchange アセットExchange の閲覧アクセス

セットアップ

Anypoint Platform → Access Management → Connected Apps で接続アプリを作成し、「App acts on its own behalf (client credentials)」 を選択して、上記のスコープを付与し、クライアント ID とシークレットをコピーしてください。

設定は環境変数のみです。設定ファイルはなく、既定の組織もありません。

ANYPOINT_CLIENT_ID=your_connected_app_client_id
ANYPOINT_CLIENT_SECRET=your_connected_app_client_secret
変数必須用途
ANYPOINT_CLIENT_ID / ANYPOINT_CLIENT_SECRETいずれかの認証方式接続アプリのクライアント認証情報。自動化に推奨
ANYPOINT_USERNAME / ANYPOINT_PASSWORDいずれかの認証方式プラットフォームへのログイン
ANYPOINT_ACCESS_TOKENいずれかの認証方式事前生成されたベアラートークン。他の 2 つより優先されます
ANYPOINT_ORG_IDいいえビジネスグループ ID。未設定の場合は「認証情報に紐付けられた組織」になります
ANYPOINT_ALLOWED_ENVIRONMENTSいいえカンマ区切りの環境名または ID。設定すると、すべてのツールがリスト外の環境を拒否します
ANYPOINT_BASE_URLいいえコントロールプレーンのホスト。既定値は https://anypoint.mulesoft.com です
ANYPOINT_MONITORING_BASE_URLいいえMonitoring のホスト。既定値は https://monitoring.anypoint.mulesoft.com です
ビジネスグループ

環境はルート組織ではなく、ビジネスグループに属します。anypoint_list_environments が空で返された場合、認証情報はルート組織に解決されています。anypoint_list_business_groups を呼び出して ID を一覧表示し、1 つを orgId として渡すか、ANYPOINT_ORG_ID に固定してください。

本番環境にアクセスできないようにする

ANYPOINT_ALLOWED_ENVIRONMENTS は個々のツールではなく、サーバー全体に適用されます。次の設定では、

ANYPOINT_ALLOWED_ENVIRONMENTS=Dev,Sandbox

対象のビジネスグループにかかわらず、すべてのツールがリスト外の環境を拒否し、その理由を示します。多層防御のため、アクセス可能な環境を限定した接続アプリと併用してください。

実行

インストールは不要です。MCP クライアントで npx を指定してください。

{
  "mcpServers": {
    "mulewatch": {
      "command": "npx",
      "args": ["-y", "mulewatch"],
      "env": {
        "ANYPOINT_CLIENT_ID": "your_connected_app_client_id",
        "ANYPOINT_CLIENT_SECRET": "your_connected_app_client_secret"
      }
    }
  }
}

この設定ブロックは Claude Desktop(claude_desktop_config.json)、Cursor(.cursor/mcp.json)、OpenClaw でそのまま動作します。Claude Code の場合:

claude mcp add mulewatch --env ANYPOINT_CLIENT_ID=... --env ANYPOINT_CLIENT_SECRET=... -- npx -y mulewatch

クローンから実行する場合:

npm install
npm run build
npm start

サーバーは stdio で通信します。これは MCP クライアントが想定する方式です。まず anypoint_whoami を実行して、他の操作を行う前に認証情報、ビジネスグループ、スコープを確認してください。


ツール

すべてのツールは読み取り専用です。いずれも orgId を指定して、設定済みのビジネスグループを上書きできます。

anypoint_whoami

サーバーが使用している認証情報、ビジネスグループ、ホスト、環境許可リストを確認します。引数はありません。問題が起きた場合は、まずこのツールを呼び出してください。

anypoint_list_business_groups

認証情報に紐付けられた組織配下のビジネスグループを、ID と階層の深さとともに一覧表示します。

{ "rootOrgId": "optional-root-organization-id" }
anypoint_list_environments

ビジネスグループの環境を一覧表示します。ANYPOINT_ALLOWED_ENVIRONMENTS が設定されている場合は、その値で絞り込みます。

{ "orgId": "your-business-group-id" }
anypoint_list_deployed_apps

environmentId または environmentName を指定して、環境にデプロイされた Mule アプリケーションを一覧表示します。

{ "environmentName": "Dev", "target": "all" }
オプション用途
targetapplication_manager(デフォルト)、cloudhub、hybrid、または all
limit返すレコードの最大数。デフォルトは 100 です
includeRawレスポンスに未加工の API オブジェクトを含めます
includeErrorsターゲットのエンドポイントが利用できない場合、またはアクセスが許可されていない場合に、ターゲットごとのエラーを含めます

application_manager は CloudHub 2.0 と Runtime Fabric のデプロイを対象とし、cloudhub はレガシー CloudHub、hybrid はオンプレミスの Runtime Manager を対象とします。all はすべてのターゲットに問い合わせ、処理を中断する代わりにターゲットごとの失敗を報告します。

anypoint_list_app_logs

アプリケーションの Runtime Manager の最新ログを一覧表示します。

{ "environmentName": "Dev", "appName": "my-mule-app" }
オプション用途
environmentIdenvironmentName の代わりに使用します
deploymentIdアプリ名が曖昧な場合、またはすでに判明している場合に使用します
specId特定の Application Manager デプロイメント仕様/設定 ID
targetauto(デフォルト)、application_manager、または cloudhub
limitログエントリの最大数。デフォルトは 100、最大は 500 です
offsetApplication Manager のログオフセット。デフォルトは 0 です
descending最新のログを先に表示します。デフォルトは true です
startTime / endTimeApplication Manager の時刻フィルター。ISO 8601 形式
includeRaw未加工の API レスポンスを含めます
includeErrorstarget が auto の場合、失敗したターゲットのエラーを含めます

CloudHub 2.0 と Runtime Fabric では、このツールは appName からデプロイメントを特定し、現在の仕様を解決してから、その仕様のログを読み取ります。レガシー CloudHub では、CloudHub のログエンドポイントを直接呼び出します。

anypoint_get_app_logs_for_analysis

上記と同じソースを対象としますが、生のリストではなく、分析に適したペイロードを返します。問題を診断する場合はこちらを優先してください。

{ "environmentName": "Dev", "appName": "my-mule-app", "limit": 200, "errorOnly": true }

anypoint_list_app_logs のすべてのオプションに加えて、次のオプションを使用できます。

オプション用途
searchTermsタイムスタンプ、優先度、メッセージ、ロガー、スレッド、またはインスタンスに対して照合する、大文字と小文字を区別しないフィルター
errorOnlyERROR と FATAL の行のみを返します

レスポンスには analysis.totalFetched、analysis.totalMatched、analysis.priorityCounts、analysis.loggerCounts、analysis.instanceCounts、analysis.logs が含まれます。カウントは取得したすべてのログを表し、logs には一致したログが格納されます。

anypoint_search_archived_logs

ライブテールで確認できる期間を超えた日付について、Anypoint Monitoring Archive API を通じて過去のログを検索します。

これは、ほかのツールでは代替できないツールです。anypoint_list_app_logs と anypoint_get_app_logs_for_analysis は Runtime Manager のライブテールを読み取ります。ライブテールは小さなローリングバッファーのため、アプリケーションが頻繁に稼働している場合は数分以内に古い内容が流れてしまい、startTime/endTime をどのように指定しても確認できません。アーカイブには各 10 分間のウィンドウが終了してからおよそ 10 分後にファイルが格納され、はるかに長期間保存されます。

組織で Anypoint Monitoring が有効になっている必要があります。 有効でない場合、すべての呼び出しが 403 または 404 を返します。その場合は、Runtime Manager の UI から手動で ログをダウンロード してエクスポートしてください。

{
  "environmentName": "Prod",
  "appName": "my-mule-app",
  "date": "2026-08-09",
  "searchTerms": ["Started product import", "Import finished"]
}
オプション用途
date必須。YYYY-MM-DD(UTC)
endDate任意の範囲終了日(両端を含む)。YYYY-MM-DD(UTC)。合計で最大 7 日
searchTerms大文字と小文字を区別しないテキストフィルター
errorOnlyERROR と FATAL の行のみを返します
maxEntities全件スキャンへのフォールバック時に調査するレプリカエンティティ数の上限。デフォルトは 150、最大は 300
maxFilesダウンロードして解析するアーカイブファイル数の上限。デフォルトは 100、最大は 500
limit返す一致行数の上限。デフォルトは 500、最大は 2000
includeRaw正規化されたフィールドとともに、解析済みの生エントリを含めます

ログの検索方法。 Archive API はアプリケーション単位ではなく、レプリカ/ポッド単位({appName}_{replicaId})でインデックスを作成するため、読み取り前にレプリカを特定する必要があります。mulewatch はまず、Runtime Manager のライブテールで確認できるレプリカ ID(entityResolution: "live-replica")を試します。通常、ポッドは再デプロイの間も長期間稼働するため、直近の過去の日付のログも同じレプリカが生成していることが多く、一般的な検索ではアーカイブへの呼び出しは数回で済みます。指定された日付にそのレプリカのファイルがない場合(たとえば、その後にアプリケーションが再デプロイされた場合)、アプリケーションがこれまでに使用したすべてのレプリカを一覧表示して調査する方法(entityResolution: "full-scan")にフォールバックします。調査対象は maxEntities で制限されます。

Archive API のリクエスト上限は 1 分あたり 60 件です。クライアントはこの上限を下回るようにリクエストを調整し、429 へのバックオフも行います。多数のレプリカに対する全件スキャンへのフォールバックには時間がかかることがあるため、可能な範囲で日付の範囲を絞ってください。レスポンスには、実行された検索方法と、上限によって結果が切り詰められたかどうかが示されます。

anypoint_list_api_manager_instances

環境内で API Manager が管理する API インスタンスを一覧表示します。

{ "environmentName": "Dev", "assetId": "my-api" }
オプション用途
assetIdExchange アセット ID でフィルターします
technologyテクノロジーでフィルターします。例:mule4、flexGateway
limit / offsetページネーション。デフォルトは 100 / 0
includeRaw生の API オブジェクトを含めます
anypoint_search_exchange_assets

組織内のアセットを Anypoint Exchange で検索します。

{ "search": "customer", "types": ["rest-api"], "limit": 20 }
オプション用途
searchアセット名と説明文を全文検索します
typesアセットタイプでフィルターします。例:rest-api、connector、template、example
limit / offsetページネーション。デフォルトは 50 / 0
includeRaw生の API オブジェクトを含めます

技術スタック

レイヤーテクノロジー
ランタイムNode.js 20 以降、ES モジュール
言語TypeScript 5.7、strict、dist/ にコンパイル
プロトコルModel Context Protocol SDK 1.30、stdio トランスポート
バリデーションzod 4
認証Anypoint の client_credentials トークンフロー、ユーザー名/パスワード、またはベアラートークン
テストnode:test、テストランナーへの依存なし

リポジトリ構成

.
├── src/
│   ├── index.ts          # bin entry: config check, stdio wiring
│   ├── tools.ts          # MCP tool registration and argument schemas
│   ├── client.ts         # AnypointClient: auth, org resolution, all API calls
│   ├── config.ts         # env-var config, environment allowlist
│   ├── normalize.ts      # envelope unwrapping, log normalization, analysis
│   ├── archive-parse.ts  # archive log line parsing, date range enumeration
│   └── errors.ts         # AnypointApiError and message formatting
├── test/                 # unit tests for the pure logic
├── docs/
│   ├── logo.png          # project mark, used in this README
│   └── og-image.png      # social preview card
├── server.json           # MCP registry manifest
├── PRICING.md            # positioning notes
└── .env.example

検証状況

開発中に、稼働中の Anypoint 組織に対して読み取りパスを実行しました。

ツール状況
anypoint_whoami実環境で検証済み
anypoint_list_business_groups実環境で検証済み
anypoint_list_environments実環境で検証済み
anypoint_list_deployed_apps実環境で検証済み(application_manager。cloudhub/hybrid のターゲットは未実行)
anypoint_list_app_logs実環境で検証済み(Application Manager のパス)
anypoint_get_app_logs_for_analysis実環境で検証済み(Application Manager のパス)
anypoint_search_exchange_assets実環境で検証済み
anypoint_search_archived_logs実環境で検証済み — live-replica の高速パスと full-scan のフォールバックの両方
anypoint_list_api_manager_instances未検証 — テストに使用した接続済みアプリに View APIs Configuration スコープがなく、呼び出しは 403 を返しました

この確認に使用したアプリケーションでは、アーカイブに669 個の履歴レプリカエンティティが含まれていました。当日の検索は live-replica の高速パスで処理され、そのうち1 個を調査して、127 個のアーカイブファイルを見つけ、2,859 行のログを解析しました。最後の再デプロイより前の日付を検索すると、正しく full-scan パスにフォールバックしました。この低速なケースを制限するために maxEntities 上限が設けられています。

補足

  • すべてのツールは読み取り専用です。設計上、デプロイ、停止、再起動、ポリシー変更のツールはありません。LLM が本番環境の Mule 環境を変更すべきではなく、デプロイについては MuleSoft 公式サーバーがすでに対応しているためです。
  • トークンは有効期限の1分前までメモリにキャッシュされ、ディスクには一切書き込まれません。
  • 認証情報は環境変数からのみ読み取られ、ログには記録されません。
  • Anypoint は、接続済みアプリのスコープが不足している場合に、詳細のない 403 を返します。これらは捕捉され、不足している可能性のあるスコープが注記されます。
  • EU などのコントロールプレーンは、ANYPOINT_BASE_URL と ANYPOINT_MONITORING_BASE_URL を上書きすることで利用できます。

ライセンス

Apache-2.0。MuleSoft、Anypoint Platform、CloudHub は Salesforce, Inc. の商標です。本プロジェクトは独立したプロジェクトであり、Salesforce と提携しておらず、Salesforce の推奨を受けていません。


MuleSoft インテグレーションエンジニアの Brahim Bousnguarが開発。プラットフォームおよびエージェント型 AI のコンサルティングを承ります。

コメント

MCP は初めてですか?

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

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