ClaudeからMuleSoft Platform MCPサーバーを使う — Connected Appと権限の設定
MuleSoft Platform MCP Serverは、APIやエージェント、MCPサーバー、LLMをまとめて検索・統制・監視できるリモートMCPサーバーです。Claudeへの接続手順と、権限スコープごとに見える範囲をまとめます。
MuleSoft Platform MCP Serverは、Anypoint Platform上のAPI・エージェント・MCPサーバー・LLMを、MCP対応クライアントから検索・統制・監視するためのリモートMCPサーバーです。Claude Desktopでは「Connectors」から、Claude Codeではclaude mcp addで接続できます。
つまずきやすい点は1つに絞れます。このサーバーは動的クライアント登録(DCR)に対応しておらず、Anypoint Platformで作るConnected Appのクライアント情報を手動で渡す必要があります。以下では、その作成から接続、権限、エージェント統制の見え方までを順に追います。
MuleSoft Platform MCP Serverは何をするサーバーか
MuleSoft Platform MCP Serverは、組織内のサービスを「発見・統制・監視」するための入口です。ドキュメントは、サービスのスキャン、4種類の資産の一元的な発見、PII検出・セマンティックルーティング・トークン制御といったポリシーの適用、トラフィックとコストの監視を主な用途に挙げています。
4種類の資産とは、API、エージェント、MCPサーバー、LLMです。Claudeに「組織のエージェント台帳を読ませる」用途に向きます。
名前の似た製品に、MuleSoft DX MCP Serverがあります。こちらはIDEから、API仕様の作成、アプリの作成と設定、Exchangeへの公開、CloudHub 2.0やRuntime Fabricへのデプロイといった開発ライフサイクルを扱うサーバーです。2026年5月28日にPlatform版が登場した際、従来の「MuleSoft MCP Server」がDX版に改称されました。ツール名は変わっていません。本記事が扱うのは、組織の資産を横断して見るPlatform版です。
接続の前提 — 手動クライアント登録のみ
MuleSoftのリモートMCPサーバーは、アプリ作成による手動クライアント登録だけに対応しています。DCRなどほかの登録方式は使えません。
クライアント側の条件は2つです。
- Streamable HTTPトランスポートに対応していること
- OAuthの認可フローを扱えること
エンドポイントは、所属するコントロールプレーンごとに異なります。接続パスは/mcp(Streamable HTTP)で、繋がらない古いクライアントのために/mcp/sse(Server-Sent Events)も用意されています。
| コントロールプレーン | ベースURL |
|---|---|
| US Cloud | ベースURLhttps://us1.omni.mulesoft.com(https://omni.mulesoft.comは別名) |
| EU Cloud | ベースURLhttps://eu1.omni.mulesoft.com |
| Canada Cloud | ベースURLhttps://ca1.omni.mulesoft.com |
| Japan Cloud | ベースURLhttps://jp1.omni.mulesoft.com |
| India Cloud | ベースURLhttps://in1.omni.mulesoft.com |
| Australia Cloud | ベースURLhttps://au1.omni.mulesoft.com |
日本のリージョンの組織は、https://jp1.omni.mulesoft.com/mcpが接続先です。以降のコマンド例は、ドキュメントの記載に合わせてomni.mulesoft.comとしています。自分の組織が別リージョンなら、この部分を置き換えてください。
Connected Appを作る
最初にAnypoint Platformで、ユーザーの代理として動くConnected Appを作ります。作成後にクライアントIDとクライアントシークレットを控えます。この2つを後でClaude側に渡すためです。
Connected Appの作成
- 1
ユーザー代理のアプリを作る
Anypoint Platformで、ユーザーに代わって動作するConnected Appを作成します。
- 2
グラントタイプを選ぶ
「Authorization Code」と「Refresh Token」の両方を選びます。
- 3
スコープを足す
「Add Scopes」で
full(Full Access)とoffline_access(Background Access)を追加します。MCPサーバーの利用に必要なスコープです。 - 4
リダイレクトURIを入れる
使うクライアントのリダイレクトURLを入れます。値はクライアントごとに違うので、次節の表を参照します。
- 5
IDとシークレットを控える
クライアントIDとクライアントシークレットをコピーします。
スコープfullとoffline_accessは、どのクライアントでも必須です。一方、リダイレクトURLだけはクライアントごとに値が変わります。
ClaudeとClaude Codeに接続する
Claude Desktopの場合
Claude Desktopでは、画面操作だけで追加できます。「Customize」から「Connectors」を開き、追加(+)アイコンの「Browse Connectors」で「MuleSoft」を検索して追加します。続けて、Connected Appで控えたクライアントIDとクライアントシークレットを入力します。
Connected App側の「Redirect URLs」には、https://claude.ai/api/mcp/auth_callbackを入れて「Continue」で反映します。
Claude Codeの場合
Claude Codeでは、固定のコールバックポートを指定してサーバーを追加します。
MCP_CLIENT_SECRET=<クライアントシークレット> claude mcp add \
--transport http \
--callback-port 32493 \
--client-id <クライアントID> \
--client-secret \
mulesoft-platform https://omni.mulesoft.com/mcp32493は例で、空いている任意のポートに替えられます。Connected Appの「Redirect URLs」には、同じポート番号でhttp://localhost:32493/callbackを登録します。
ポートを固定する理由は、Claude Codeの既定の挙動にあります。何も指定しないと認証のたびにランダムなポートが選ばれ、Connected Appが要求するURLの完全一致に失敗します。
Claude Code側の仕様も合わせて確認しておきます。--client-secretだけを渡すとシークレットはマスク入力で聞かれ、環境変数MCP_CLIENT_SECRETを前置すると入力を省けます。シークレットを設定できるのは、サーバーを追加する時点だけです。後から変える場合は、claude mcp remove <名前>で消してから--client-secret付きで追加し直します。
登録できたかは、セッション内で/mcpを実行して確かめます。サーバーが一覧に出て、認証が済んでいれば接続できています。
クライアントごとのリダイレクトURL
Connected Appに登録するURLは、クライアントで次のように異なります。
| クライアント | 登録するリダイレクトURL |
|---|---|
| Claude Desktop | 登録するリダイレクトURLhttps://claude.ai/api/mcp/auth_callback |
| Claude Code | 登録するリダイレクトURLhttp://localhost:<ポート>/callback |
| Cursor・Windsurf・VS Code | 登録するリダイレクトURLhttp://localhost:<ポート>/oauth/callback |
| ChatGPT | 登録するリダイレクトURL設定画面でコピーしたCallback URL |
Cursor・Windsurf・VS Codeは、mcp-remote経由の設定です。Claude Codeだけ末尾が/callbackになる点に注意してください。複数のクライアントを同じConnected Appで使うなら、それぞれのURLを並べて登録します。
権限スコープ — Claudeに見せる範囲を決める
MuleSoftのドキュメントでは、ツールごとに必要な権限が一覧になっています。Connected Appに必須のfullとoffline_accessとは別に、ツールによって追加の権限が要ります。領域ごとの区分は次のとおりです。
| 領域 | 閲覧の権限 | 変更の権限 | 変更系ツールの例 |
|---|---|---|---|
| Exchange | 閲覧の権限Exchange Viewer(read:exchange) | 変更の権限Exchange Contributor(edit:exchange) | 変更系ツールの例provision_mcp_server、update_mcp_server |
| API Manager | 閲覧の権限Environment Viewer(read:api_configuration、read:api_policies) | 変更の権限Environment Admin(manage:apis) | 変更系ツールの例apply_policy_to_instance、create_automated_policy_strategy |
| Governance | 閲覧の権限Governance Viewer(view:ang_governance_profiles) | 変更の権限Governance Administrator(admin:ang_governance_profiles) | 変更系ツールの例create_guardrail、delete_governance_strategy |
| Anypoint Monitoring | 閲覧の権限Monitoring Viewer(view:monitoring) | 変更の権限変更系なし | 変更系ツールの例— |
| Runtime Manager | 閲覧の権限— | 変更の権限Manage Application Data(manage:application_data) | 変更系ツールの例create_omni_gateway、create_scanner |
Monitoringは閲覧専用です。Runtime Managerの表には、ゲートウェイやスキャナーを作るツールが並びます。
Claudeに任せる範囲は、権限の側だけでなく、Claude Code側の許可設定でも絞れます。変更を伴うツールを毎回の確認対象にする例を挙げます。
{
"permissions": {
"ask": [
"mcp__mulesoft-platform__apply_policy_to_instance",
"mcp__mulesoft-platform__create_guardrail",
"mcp__mulesoft-platform__provision_mcp_server",
"mcp__mulesoft-platform__update_mcp_server"
],
"deny": [
"mcp__mulesoft-platform__delete_governance_strategy",
"mcp__mulesoft-platform__delete_automated_policy_strategy"
]
}
}ルール名はmcp__<サーバー名>__<ツール名>の形で、サーバー名はclaude mcp addで付けたmulesoft-platformです。閲覧系のツールだけを許可し、変更系は都度確認に回す運用になります。
エージェント群のガバナンスで何が見えるか
Platform MCP Serverのうち、エージェントの統制に効くのは次のツール群です。
| 知りたいこと | ツール | 必要な権限 |
|---|---|---|
| 登録されたエージェントの一覧 | ツールlist_agents、view_agent_details | 必要な権限Exchange Viewer |
| 組織が使うLLMとMCPサーバー | ツールlist_llms、list_mcp_servers | 必要な権限Exchange Viewer |
| 資産の依存関係(Beta) | ツールget_asset_lineage | 必要な権限Exchange Viewer |
| ガバナンスレポート | ツールview_governance_report、fetch_governance_services | 必要な権限Governance Viewer |
| 利用状況の監視 | ツールfetch_monitoring_overview、show_observability_performance | 必要な権限Monitoring Viewer |
| コストとモデルごとの予算 | ツールfetch_cost_overview、fetch_model_wallets | 必要な権限Cost Managementの各権限 |
list_agentsは、名前やプロバイダーで絞り込める一覧です。リファレンスの応答例では、各エージェントがアセットID・名前・バージョン・プロバイダー・説明を持ち、全体の件数も返ります。これは例示された応答で、手元の組織で返る内容とは異なります。
get_asset_lineageは2026年8月31日に加わったBetaのツールです。エージェント、MCPサーバー、APIについて、設計時と実行時の関係をContext Catalogから引けます。同じ日に、LLMごとの予算枠を扱うモデルウォレット(create_model_walletなど)と、シークレット管理のツール群も追加されました。
ドキュメントの例示プロンプトは、そのままClaudeに投げられる形です。
Show me all payment-related APIs across my organization.Create a governance strategy that applies a PII detection policy to all customer-facing agents.Which LLMs consumed the most requests last week?
1つ目は検索、2つ目は統制、3つ目は監視の例です。2つ目だけは組織に変更を加えるため、先ほどのask設定と組み合わせると、実行前に内容を確認できます。
ポリシー適用の流れ
ポリシーの適用は、ドキュメントでは「Stripe APIにレート制限を付ける」例で説明されています。Claudeは次の順にツールを呼びます。
ポリシー適用でClaudeが呼ぶツール
- 1
候補を取る
prepare_policy_creationが、対象のAPIインスタンスに適用できるポリシーを返します。 - 2
設定項目を出す
ユーザーがポリシーを選ぶと、
get_policy_template_formが設定項目を提示します。 - 3
適用する
設定を指定すると、
apply_policy_to_instanceが即座にポリシーを適用します。
最後の適用に確認の段が組み込まれているわけではありません。適用前の確認が欲しいなら、Claude Codeのaskルールが実質的な関門になります。
つまずいたときの切り分け
認証の失敗は、原因が3つに絞れます。
接続できないときの確認順
- QリダイレクトURLは、Connected Appの登録値と完全一致していますか?答えがいいえ答えがはい
クライアントごとの表に沿って登録し直します。Claude Codeは固定ポートを指定していないと、毎回別のポートになります。
- Qスコープに`full`と`offline_access`が入っていますか?答えがいいえ答えがはい
2つとも追加します。権限まわりのエラーは、この2つの不足で出ます。
- QクライアントはStreamable HTTPとOAuthに対応していますか?答えがいいえ答えがはい
接続先を
/mcp/sseに替えるか、対応しているクライアントを使います。
それでも認可エラーが続くとき
Anypoint Platformからログアウトして入り直します。
Claude Codeのバージョンにも注意が要ります。Claude Codeの公式ドキュメントによると、v2.1.229はコールバックにhttp://127.0.0.1:PORT/callbackを使ったため、登録済みURLと完全一致を求めるサーバーで、リダイレクトURIの不一致で失敗しました。v2.1.231でlocalhostの形に戻っています。MuleSoftのConnected Appはlocalhostで登録する手順なので、v2.1.229を使っているなら、Claude Codeを更新するか、127.0.0.1の形も一時的に登録します。
ツール名から機能を決めつけない
ツール名と説明が食い違って見える例が、リファレンスにあります。check_policy_conformanceの説明は「選択したポリシー適用ペイロードをJSON-LDに変換し、バックエンドのログに出力する」で、名前から想像する適合性の検査とは読み取れません。同じページの応答例にはconformantやviolationsの項目が並んでいますが、説明文と応答例の関係はリファレンスに書かれていません。
統制の自動化にこのツールを使うなら、組織の環境で実際の応答を確かめてからにするのが安全です。名前だけで「違反を検出してくれる」と決めると、期待した結果が返らない可能性があります。
MCPサーバーの追加と許可設定の基本は、Claude CodeのMCPサーバー設定にまとまっています。ホスト型の別サービスとの違いを見るなら、認証不要で読み取り専用のTwilio MCPサーバーや、Redis Cloud MCPサーバーと並べると、接続の重さが比べられます。
まとめ
接続の手間は、Connected Appの作成とクライアントごとのリダイレクトURLの登録に集中します。Claudeに渡す前に、fullとoffline_accessのスコープ、固定ポート、地域のエンドポイントの3点を揃えておけば、認証で止まる原因はかなり絞れます。
そのうえで、運用の重心は権限の切り分けです。閲覧中心なら、Viewer系の権限とask・denyルールを組み合わせます。ポリシー適用やMCPサーバーのプロビジョニングまで任せる場合は、Claude側の許可設定を関門として残すのが現実的です。エージェント台帳の確認から始め、問題がなければ統制へ範囲を広げる順序が扱いやすいでしょう。