mcpField
U
update-mule-run-config

update-mule-run-config

github.com/mulesoft開発14248 回インストール今日更新
リポジトリ

update-mule-run-config について

update-mule-run-config は、開発ワークスペースにある既存の Mule 実行設定を編集するスキルです。対象の特定、名前・プロジェクト・実行モードの変更内容の整理、更新を支援します。

主な機能

  1. 01ワークスペースの各スコープから設定を検索
  2. 02名前を照合し類似候補を提示
  3. 03名前、プロジェクト、実行モードの変更
  4. 04重複候補がある場合の確認

活用シーン

  1. 01Mule実行設定の名前変更
  2. 02設定に含めるプロジェクトの変更
  3. 03実行モードとデバッグモードの切り替え

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mulesoft/mulesoft-dx --skill update-mule-run-config

インストール後、Claude Code で/update-mule-run-configを入力して読み込まれたか確認します。

詳細

Mule の実行構成エディターアシスタントです。名前、プロジェクト、デバッグ/実行モードを変更して、既存の実行構成を更新できるようユーザーを支援します。

タスク

次の手順で、既存の実行構成を編集できるようユーザーを支援します。

  1. 編集する構成を特定する
  2. 変更内容を決定する
  3. 変更を適用するためにツールを呼び出す

リクエストの具体性を判断する

最初に:ユーザーが必要な情報をすべてすでに提供しているかを分析します。

具体的なリクエスト(質問を最小限にして進められます):

  • ユーザーが構成名と変更内容を指定している場合:「『Both Services』を project1 のみを含むように更新して」「『Run my-app』の名前を『Development』に変更して」「『My Config』をデバッグモードに変更して」
  • 抽出する情報:構成名、変更内容、新しい値

曖昧なリクエスト(質問が必要です):

  • 構成名のみ:「『Both Services』を更新して」「自分の構成を編集して」
  • 構成名がない:「構成を更新して」「実行構成を変更して」

リクエストが具体的な場合:

  • ワークスペース情報を取得する
  • すべてのスコープ(ワークスペースとすべてのプロジェクト)を一覧表示して、構成を検索する
  • インテリジェントマッチング(以下のステップ 2 を参照)を使用して構成を見つける
  • 見つかった場所が 1 か所のみの場合:変更を直接適用する
  • 複数の場所で見つかった場合(重複):どの構成を更新するかユーザーに確認する
  • 見つからない場合、または類似する候補がある場合:状況を踏まえて候補を提案する

リクエストが曖昧な場合:

  • 以下の完全な手順に従う

手順

ステップ 1:最初にワークスペース情報を取得する

⚠️ 必須の最初のステップ:

最初に必ず get_workspace_info を呼び出し、ワークスペース構造を把握してください。

{
  // No parameters needed
}

これにより、次の情報が返されます。

{
  "workspaceType": "multi-root" | "single-folder",
  "projects": [
    { "name": "project-name", "path": "/absolute/path" }
  ]
}

ステップ 2:スマートな設定の照合(ユーザーが名前またはプロジェクトを指定した場合)

ユーザーがリクエストで設定名またはプロジェクト名にすでに言及している場合(例:「Both Services を更新」や「test-project1 の設定を更新」):

  1. リクエストから設定名またはプロジェクト名を抽出します

  2. ワークスペース情報を取得します

  3. すべてのスコープ(ワークスペース+すべてのプロジェクト)から設定をすべて収集します

  4. 検索タイプを判定します:

    • ユーザーが設定名に言及した場合 → 設定名で検索します
    • ユーザーが「for 」に言及した場合 → 設定の mule.projects からプロジェクト名で検索します
  5. インテリジェントな類似度判定を使って最適な候補を見つけます:

    ケース 1:完全一致が 1 件

    • 設定名検索の場合:名前が完全一致します
    • プロジェクト検索の場合:設定のプロジェクト一覧にプロジェクト名が含まれます
    • すぐにその設定を使用し、ステップ 5 に進みます

    ケース 2:完全一致が複数件(重複)

    • 設定名検索の場合:同じ名前の設定が複数あります
    • プロジェクト検索の場合:そのプロジェクトを含む設定が複数あります
    • コンテキストとともに一致した項目をすべて表示します:
      "test-project1" の設定が 3 件見つかりました:
      1. Run my-app - 単一プロジェクト(test-project1)- 実行モード
      2. Debug my-app - 単一プロジェクト(test-project1)- デバッグモード
      3. Both Services - 複数プロジェクト(test-project1, test-project2)- 実行モード
      
      どの設定を更新しますか?
      
    • ユーザーが選択するまで待ち、その後ステップ 5 に進みます

    ケース 3:類似度の高い一致(タイプミス、余分なスペース、類似した単語)

    • レーベンシュタイン距離などのアルゴリズムを使います
    • 設定名検索の場合:類似した設定名を探します
    • プロジェクト検索の場合:ワークスペース内の類似したプロジェクト名を探します
    • 一致させる例:
      • "my custom config" ↔ "myy custom config"(タイプミス)
      • "My custom configuration" ↔ "my custom config"(類似した単語)
      • "Both Services" ↔ "both services"(大文字と小文字の違い)
      • "test-project-1" ↔ "test-project1"(類似したプロジェクト名)
    • 最適な候補の信頼度が高い場合(類似度が 80% 超):コンテキストとともに候補を提案します
      設定 "My custoom config" が見つかりません。こちらをお探しですか:
      "My custom config" - 複数プロジェクト(api-gateway, backend)- 実行モード
      
    • ユーザーが確認するまで待ち、その後ステップ 5 に進みます

    ケース 4:類似した候補が複数件

    • 類似度スコアとコンテキストを添えて、上位 3 件を表示します
    • ユーザーに選んでもらい、その後ステップ 5 に進みます

    ケース 5:適切な候補なし

    • すべての設定を一覧表示し、ユーザーに選んでもらいます
  6. 設定が特定できたら、ステップ 5(変更を適用)に直接進みます

ユーザーが設定名に言及していない場合:

  • ステップ 3 に進み、スコープについて尋ねます

ステップ 3:スコープについて尋ねる(必要な場合のみ)

workspaceType が "multi-root" で、まだ設定が見つかっていない場合:

ユーザーに尋ねます:

Is this configuration for:
1. Multiple projects
2. A single specific project

停止して、ユーザーの回答を待ちます。

重要:「workspace-level」や「project-level」という語をユーザーに使わないでください。これらは内部的な技術用語です。

workspaceType が "single-folder" の場合:

スコープを "project" にして一覧表示する手順に進み、その単一プロジェクトのパスを使用します。

ステップ 4:構成を一覧表示する

ユーザーが「複数のプロジェクト」を選んだ場合(マルチルートワークスペースのみ):

{
  "operation": "list",
  "scope": "workspace",
  "excludeDefaults": true
}

ユーザーが「単一のプロジェクト」を選んだ場合(マルチルートのみ):

  • どのプロジェクトかを尋ねます(ステップ 1 のプロジェクト一覧を表示します)
  • そのプロジェクトのパスを指定して、一覧表示ツールを呼び出します:
{
  "operation": "list",
  "scope": "project",
  "projectPath": "<selected-project-path>",
  "excludeDefaults": true
}

単一フォルダーのワークスペースの場合:

  • ステップ 1 のプロジェクトパスを使用します:
{
  "operation": "list",
  "scope": "project",
  "projectPath": "<path-from-step-1>",
  "excludeDefaults": true
}

返された一覧をユーザーに表示し、編集する構成を尋ねます。

重要:ワークスペースレベルの構成の場合、一覧にはプロジェクトが次の形式で表示されます:ConfigName (mode) - projects: [project1, project2]

  • 各構成のプロジェクトと、現在のワークスペースのプロジェクト(ステップ 1 のもの)を比較します
  • 存在しなくなったプロジェクトを参照する構成がある場合は、その旨をユーザーに伝えます
  • 例:「注:『Run Multiple Projects』には 5 個のプロジェクトがありますが、現在のワークスペースには 3 個しかありません」

構成が見つからない場合(一覧が空、または「No run configurations found」が返された場合):

  • 編集できるカスタム実行構成がないことをユーザーに伝えます
  • 代わりに新しい構成を作成することを提案します
  • excludeDefaults: false を指定して一覧表示操作を再試行しないでください
  • デフォルト構成(「Run Mule Application」、「Debug Mule Application」)は編集できないため、表示するとユーザーが混乱するだけです

ステップ 5:変更内容を決める

何を更新したいか、ユーザーに尋ねます。選択肢:

  • 名前:構成の名前を変更します
  • プロジェクト:含めるプロジェクトを変更します
  • モード:実行モードとデバッグモードを切り替えます
  • 複数の変更:上記の任意の組み合わせを変更できます

重要:ユーザーが変更したい内容だけを尋ねてください。すべてを指定するよう求めないでください。

ステップ 6:新しい値を収集する

ユーザーが変更したいプロパティごとに、次のようにします。

名前を変更する場合:

  • 新しい名前をユーザーから取得します

プロジェクトを変更する場合:

  • 利用可能なワークスペースプロジェクトを表示します
  • 含めるプロジェクトをユーザーに指定してもらいます(追加ではなく、すべて置き換えます)
  • workspaceFolder.uri.fsPath の絶対パスを使用します

モードを変更する場合:

  • 実行モード(noDebug: true)とデバッグモード(noDebug: false)のどちらにするか尋ねます

ステップ 7:言語モデルツールを呼び出す

「update」操作で manage_run_configuration ツールを実行します。

ワークスペースレベルの構成の場合:

{
  "operation": "update",
  "configName": string,     // Required: current name of the configuration
  "scope": "workspace",     // Required: indicates workspace-level config
  "newName": string,        // Optional: new name if renaming
  "projects": string[],     // Optional: new projects list (absolute paths)
  "noDebug": boolean        // Optional: new mode (true = run, false = debug)
}

プロジェクトレベルの構成の場合:

{
  "operation": "update",
  "configName": string,     // Required: current name of the configuration
  "scope": "project",       // Required: indicates project-level config
  "projectPath": string,    // Required: absolute path to the project
  "newName": string,        // Optional: new name if renaming
  "projects": string[],     // Optional: new projects list (absolute paths)
  "noDebug": boolean        // Optional: new mode (true = run, false = debug)
}

重要:

  • 構成の場所を指定するため、必ず scope を含めます
  • scope が「project」の場合は、projectPath を含めます
  • 変更するプロパティ(newName、projects、noDebug)のみを含めます。変更しないプロパティは省略します。

ステップ 8:ユーザーに伝え、実行するか尋ねる

ツールを呼び出すと、実際の構成名(名前を変更した場合は変更後の名前)を含む成功メッセージが返されます。

非常に重要:構成の名前を変更した場合、更新操作は新しい名前を返します。実行するときは、必ずその新しい名前を正確に使用してください。

結果をユーザーに伝え、実行するかどうかを尋ねます。

✓ Successfully updated run configuration '<name>'

Would you like to run this configuration now?

ユーザーが「はい」と答えた場合は、「execute」操作でツールを再度呼び出します。一覧表示時に使用したものと正確に同じ名前、scope、projectPath を使用してください。

ワークスペースレベルの構成の場合:

{
  "operation": "execute",
  "configName": "<the-config-name-just-updated>",
  "scope": "workspace"
}

プロジェクトレベルの構成の場合:

{
  "operation": "execute",
  "configName": "<the-config-name-just-updated>",
  "scope": "project",
  "projectPath": "<absolute-path-to-the-project>"
}

重要な注意事項

  • 更新後に返された名前を正確に使用してください - 更新操作で「Run my-app (2)」のように名前が変更された構成が返された場合、実行を提案するときは番号も含めて、その名前を正確に使用する必要があります。元の名前は使用しないでください。
  • 実行時は必ず scope を指定してください - execute 操作には scope パラメーターが必須です。「workspace」または「project」の scope を指定せずに execute を呼び出すことは絶対にしないでください。
  • 重要:複数のプロジェクトを個別に実行しないでください - 一度にアクティブにできる Mule ランタイムインスタンスは 1 つだけです。複数のプロジェクトをまとめて実行するには、ワークスペースレベルの単一の構成に含める必要があります。複数のプロジェクトに対して、プロジェクトレベルの構成を順次または並行して実行しようとしないでください。

会話の例

例 1:完全一致 - 直接更新
User: "Rename 'Run my-app' to 'Run Development'"

Assistant: [finds exact match in all scopes]

"Renaming configuration...

✓ Successfully updated run configuration 'Run Development'

Would you like to run this configuration now?"
例 2:複数の完全一致候補 — 識別
User: "Update 'Both Services' to include only project1"

Assistant: "Found 2 configurations named 'Both Services':
1. Multiple projects (api-gateway, backend) - run mode
2. Single project (test-app) - debug mode

Which one do you want to update?"

User: "1"

Assistant: "Updating configuration...

✓ Successfully updated run configuration 'Both Services'

Would you like to run this configuration now?"
例 3:具体的なリクエスト — モードの変更
User: "Change 'Run my-app' to debug mode"


Assistant: [gets workspace info, finds config]

"Switching to debug mode...

✓ Successfully updated run configuration 'Run my-app'

Would you like to run this configuration now?"
例 4:高い類似度の候補 — コンテキストを添えて提案
User: "Update 'my custom confg' to debug mode"
Assistant: [gets workspace info, searches all scopes]

"Configuration 'my custom confg' not found. Did you mean:
'My custom config' - Multiple projects (api-gateway, backend) - run mode

Would you like to update this configuration?"

User: "Yes"

Assistant: "Switching to debug mode...

✓ Successfully updated run configuration 'My custom config'

Would you like to run this configuration now?"
例 5:具体的なリクエスト — プロジェクト名で照合
User: "Update the config for test-project1 to debug mode"

Assistant: [gets workspace info, searches all scopes for configs containing test-project1]

"Found 2 configurations for test-project1:
1. Run my-app - Single project (test-project1) - run mode
2. Debug my-app - Single project (test-project1) - debug mode

Which one do you want to update?"

User: "1"

Assistant: "Switching to debug mode...

✓ Successfully updated run configuration 'Run my-app'

Would you like to run this configuration now?"
例 6:曖昧なリクエスト — 全体の流れ
User: "Update a config"

Assistant: "Is this configuration for:
1. Multiple projects
2. A single specific project"

User: "Single project"

Assistant: "Which project would you like to edit configurations for?
1. api-gateway (/path/to/api-gateway)
2. backend (/path/to/backend)"

User: "api-gateway"

Assistant: [lists configs] "Found 2 run configurations:
1. Run api-gateway (run mode)
2. Debug api-gateway (debug mode)

Which configuration would you like to edit?"

User: "1"

Assistant: "What would you like to update?
- Name
- Projects
- Mode (run/debug)"

User: "Rename it to 'Development Config'"

Assistant: "Renaming configuration...

✓ Successfully updated run configuration 'Development Config'

Would you like to run this configuration now?"

コメント