Mainframe Assessment Tool の MCP サーバーとエージェント スキルを構成する

このページでは、Mainframe Assessment Tool の MCP サーバーを設定して操作する方法と、mat-backend-query エージェント スキルをインストールする方法について説明します。MCP サーバーと mat-backend-query スキルを使用すると、自然言語プロンプトを使用して、ビジネス ドメインの探索、アセットの検索、メインフレーム評価からの複雑さと依存関係の指標の取得を行うことができます。MCP サーバーとやり取りするには、AI エージェントまたは Model Context Protocol(MCP)クライアント(Antigravity など)を介して接続します。

Mainframe Assessment Tool MCP サーバーを使用すると、次のことができます。

  • 既存の評価を一覧表示して確認する。
  • 評価で検出されたビジネス ドメインを確認します。
  • さまざまな条件に基づいてアセットを検索してフィルタします。
  • 依存関係や複雑さの指標など、アセットの仕様を取得します。
  • mat-backend-query スキルを使用して、PostgreSQL マテリアライズド ビューからクエリ呼び出しツリー、DB2 とデータベース テーブルの使用状況、データセットの I/O 指標を取得します。

MCP の詳細については、Model Context Protocol(MCP)の概要をご覧ください。

始める前に

MCP サーバーを有効にして接続する前に、次のタスクを完了します。

  • 評価を作成します。MCP サーバーを有効にして mat-backend-query スキルをインストールすることはいつでもできますが、評価データをクエリするには、Mainframe Assessment Tool で少なくとも 1 つの評価が完了している必要があります。詳細については、評価を作成するをご覧ください。
  • 必要な権限を付与します。必要な権限は、Mainframe Assessment Tool のデプロイ環境によって異なります。
    • Compute Engine VM インスタンスでは、インスタンスにカスタム メタデータを設定する権限が必要です。必要なロールの詳細については、カスタム メタデータの設定と削除をご覧ください。
    • GKE クラスタでは、クラスタ内のデプロイを更新する権限が必要です。また、クラスタに接続するように kubectl コマンドライン ツールを構成する必要があります。詳細については、kubectl 用のクラスタ アクセスを構成するをご覧ください。
  • Google Cloud CLI を設定する。Google Cloud CLI の最新バージョンをインストールして構成します。詳細については、Google Cloud CLI をインストールするをご覧ください。

MCP サーバーを有効にする

MCP サーバーはデフォルトで無効になっています。MCP サーバーを有効にするには、デプロイ環境の手順に沿って操作します。

Compute Engine インスタンス

Mainframe Assessment Tool の Compute Engine インスタンスで MCP サーバーを有効にするには、次の gcloud コマンドを実行して MAT_ENABLE_MCP メタデータキーを追加し、その値を true に設定します。

    gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata=MAT_ENABLE_MCP=true \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: VM インスタンスの名前。
  • ZONE: VM インスタンスが配置されているゾーン。

実行中の VM にメタデータキーを設定した場合は、変更を有効にするために VM を再起動する必要があります。

GKE クラスタ上

GKE デプロイで MCP サーバーを有効にするには、mcp-server コンテナの MAT_ENABLE_MCP 環境変数を true に設定します。

kubectl set env deployment/mat-apps --containers=mcp-server \
MAT_ENABLE_MCP=true --namespace=VERSION

VERSION は、クラスタにデプロイされた Mainframe Assessment Tool のバージョンに置き換えます。このバージョンは、デプロイの名前空間でもあります(例: mainframe-assessment-2-8-0)。

環境変数を更新すると、MCP サーバーが有効になった状態で Mainframe Assessment Tool Pod が再起動します。Mainframe Assessment Tool は単一の Pod として実行されるため、新しい Pod が起動するまでの間、一時的に使用できなくなります。MCP サーバーを無効にするには、MAT_ENABLE_MCP 環境変数を false に設定します。

MCP サーバーに接続する

ストリーミング可能な HTTP 経由の MCP 接続をサポートする標準の AI エージェントを使用して、MCP サーバーに接続できます。

これらの構成手順を Mainframe Assessment Tool から直接開くには、次の操作を行います。

  1. Mainframe Assessment Tool で、[評価] ページに移動します。
  2. ツールバーで [Use with Antigravity] をクリックし、[Configure MCP] を選択します。

MCP サーバーは、Mainframe Assessment Tool UI へのアクセスに使用されるポートと同じポートの /mcp/ ルートにあります。詳細については、パソコンから Mainframe Assessment Tool VM にアクセスするまたはパソコンから GKE にデプロイされた Mainframe Assessment Tool にアクセスするをご覧ください。

設定例

以降のセクションでは、MCP サーバーに接続するようにさまざまな AI エージェントを構成する方法の例を示します。

LOCAL_PORT は、Mainframe Assessment Tool UI へのアクセスに使用するローカルポートに置き換えます。

Antigravity

Antigravity を使用するには、mcp_config.json ファイルで MCP サーバーを次のように構成します。

{
  "mcpServers": {
    "mainframe-assessment-tool": {
      "serverUrl": "http://localhost:LOCAL_PORT/mcp/"
    }
  }
}

詳細については、Model Context Protocol(MCP)をご覧ください。

Mainframe Assessment Tool エージェント スキルをインストールして使用する

Mainframe Assessment Tool には、Antigravity 用の mat-backend-query エージェント スキルが用意されています。これにより、SQL クエリを記述する代わりに自然言語プロンプトを使用して、評価でプログラム呼び出しツリー、モジュール間の依存関係、データベース テーブルのアクセス パターン、データセットの I/O 使用量を分析できます。このスキルでデータをクエリするには、まず Mainframe Assessment Tool で評価を作成する必要があります。

スキルをダウンロードして解凍する

mat-backend-query エージェント スキルをダウンロードして抽出する手順は次のとおりです。

  1. Mainframe Assessment Tool で、[評価] ページに移動します。
  2. ツールバーで [Use with Antigravity] をクリックし、[Download Skill] を選択します。ブラウザに skill.zip という名前の ZIP ファイルがダウンロードされます。
  3. パソコンでターミナルを開き、ローカルの Antigravity プロジェクト ディレクトリに移動します。.agents/skills ディレクトリが存在しない場合は、作成してから skill.zip を抽出します。

    cd PROJECT_ROOT
    mkdir -p .agents/skills
    unzip PATH_TO_ZIP/skill.zip -d .agents/
    

    次のように置き換えます。

    • PROJECT_ROOT: Antigravity を実行するパソコン上のローカル プロジェクト ディレクトリのパス。
    • PATH_TO_ZIP: skill.zip ファイルをダウンロードしたディレクトリのパス。
  4. PROJECT_ROOT に抽出されたファイルが次のディレクトリ構造と一致していることを確認します。

    PROJECT_ROOT/
    └── .agents/
        └── skills/
            ├── README.md
            └── mat-backend-query/
                ├── SKILL.md
                └── references/
                    └── schemas.md
    

Antigravity でスキルを確認する

Antigravity が MCP サーバーと mat-backend-query スキルを検出したことを確認する手順は次のとおりです。

  1. .agents/skills/ ディレクトリを検出できるように、PROJECT_ROOT ディレクトリから Antigravity を起動します。
  2. Antigravity チャットで /mcp コマンドを実行して、mainframe-assessment-tool MCP サーバーが接続され、db_query_tool ツールが公開されていることを確認します。
  3. /skills コマンドを実行して、mat-backend-query スキルが読み込まれていることを確認します。
  4. Mainframe Assessment Tool で評価をすでに完了している場合は、次のプロンプトを入力してスキルをテストします。

    Using the mat-backend-query skill, query 5 rows from mat_views.called_dependency for assessment 'ASSESSMENT_ID'.
    

    ASSESSMENT_ID は、評価の ID に置き換えます。

MCP サーバーツール

Mainframe Assessment Tool の MCP サーバーは、AI エージェントが評価からデータを取得できるようにするツールを提供します。

ListAssessments

Mainframe Assessment Tool インスタンスのすべての評価を一覧表示します。各評価には、名前、ID、説明、タイムスタンプが含まれます。

ListDomains

指定された Mainframe Assessment Tool 評価 ID のドメインを一覧表示します。各ドメインには、名前、説明、ID が含まれます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。

ListAssets

特定の Mainframe Assessment Tool 評価 ID のアセットを一覧表示します。各アセットには、ID、名前、パス、タイプ、割り当てられたドメイン ID が含まれます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool の評価の ID。

FetchDomain

指定されたドメイン ID と Mainframe Assessment Tool の評価 ID のドメインの詳細を取得します。ドメインの詳細には、ID、名前、説明、概要が含まれます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
DomainId 文字列 ○ Mainframe Assessment Tool ドメインの ID。

FetchAsset

指定された Mainframe Assessment Tool 評価 ID のアセットの仕様の概要を取得します。アセットの仕様には、ID、名前、使用状況、説明、ETL グラフ、BMS マップが含まれます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
AssetId 文字列 ○ Mainframe Assessment Tool アセットの ID。
DetailedSpec ブール値 いいえ(デフォルト: false) true に設定すると、レスポンスにはテストケースを含むメソッド仕様も含まれます。

FetchAssetsCyclomaticComplexity

特定の Mainframe Assessment Tool 評価 ID のアセットのリストのサイクロマティック複雑度スコアを取得します。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
AssetIds string[] ○ Mainframe Assessment Tool のアセット ID のリスト。

SearchContent

特定のメインフレーム評価内のソースコード、AI 生成の仕様、ビジネスルールを検索します。キーワード ベース(bm25)、セマンティック(embedding)、ハイブリッド(hybrid)の検索モードをサポートしており、ユーザーは関連するアセットとドキュメントを見つけることができます。

このツールは、ドキュメント タイプ(source、spec、bre)で結果をフィルタリングし、返される一致数を制限できます。また、一致するドキュメントのコンテンツ全体を取得することもできます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
Query 文字列 ○ 検索クエリ。
DocTypes string[] いいえ ドキュメントの種類で結果をフィルタします。サポートされている値は source、spec または bre です。
Limit integer いいえ 返される一致の数を制限します。
IncludeContent ブール値 いいえ true に設定すると、レスポンスには一致するドキュメントの完全なコンテンツも含まれます。デフォルト値は false です。
SearchMode 文字列 いいえ 使用する検索モード。サポートされている値は、bm25(キーワードベース)、embedding(セマンティック)、hybrid です。デフォルト値は hybrid です。

ExploreData

評価のデータ アナリストとして機能するインタラクティブな AI エージェント(Data Explorer)を実行します。エージェントは、特定の評価の基盤となる構造化データベースにクエリを実行して、複雑な質問に回答できます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
Query 文字列 ○ データ探索のための質問またはクエリ。

ListBusinessRulesExtractionJobs

指定された Mainframe Assessment Tool 評価 ID のビジネスルール ジョブを一覧表示します。返されるリストには、各ジョブの ID、名前、ステータス、フォーカス プロンプトなどが含まれます。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。

ListBusinessRules

特定のビジネスルール抽出ジョブ ID と Mainframe Assessment Tool 評価 ID によって抽出されたビジネスルールを一覧表示します。多数のルールを処理するため、このアクションはページネーションをサポートしています。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
JobId 文字列 ○ ビジネスルール抽出ジョブの ID。
PageSize 文字列 いいえ 取得するページのサイズ。サポートされている最大値は 25 です。
PageToken 文字列 いいえ 取得するページのトークン。この値は、このアクションの以前の呼び出しで返されました。
OrderList オブジェクト いいえ 結果を返す順序。フィールドごとの説明をご覧ください。
OrderList.OrderBy 文字列 いいえ 結果の並べ替えに使用するフィールドの名前。例: business_rule_id、business_rule_name、status。
OrderList.Order 文字列 いいえ 注文の方向。サポートされている値は、ASCENDING、DESCENDING です。
Filter オブジェクト いいえ 返された結果をフィルタします。フィールドごとの説明をご覧ください。
Filter.Status 文字列 いいえ フィルタするビジネスルールのステータス。サポートされている値は、PENDING、VALIDATED、OBSOLETE です。
Filter.Tags string[] いいえ ビジネスルールに関連付けられているタグのリスト。
Filter.AssetIDs string[] いいえ ビジネスルールに関連付けられている Mainframe Assessment Tool のアセット ID のリスト。

FetchJobSpec

Mainframe Assessment Tool の評価 ID のビジネスルール抽出(BRE)ジョブ仕様を取得します。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
AssessmentId 文字列 ○ Mainframe Assessment Tool 評価の ID。
JobId 文字列 ○ ビジネスルール抽出(BRE)ジョブの ID。

db_query_tool

Mainframe Assessment Tool の mat_views スキーマに対して直接、読み取り専用の PostgreSQL SELECT クエリを実行し、最大 10,000 行を JSON 配列として返します。

このツールで mat-backend-query スキルを使用して、エージェントが必要なルールに従うようにします。

  • すべてのクエリは、特定の評価 ID(WHERE assessment_id = 'ASSESSMENT_ID')でフィルタする必要があります。
  • mat_views スキーマのビューに対する SELECT ステートメントのみが許可されます。
  • クエリには明示的な LIMIT 句を含める必要があります。

引数

次の表に、このツールの引数を示します。

名前 型 必須 説明
query 文字列 ○ mat_views スキーマに対して実行する読み取り専用の PostgreSQL SELECT クエリ(最大 10,000 行が返されます)。

使用可能なマテリアライズド ビュー

次の表に、db_query_tool でクエリできる mat_views スキーマの PostgreSQL マテリアライズド ビューを示します。

表示 説明 キー列
mat_views.called_dependency メインフレーム アプリケーション、システム ユーティリティ、未解決の外部プログラムにわたるプログラム呼び出しツリーとモジュール間の依存関係。 assessment_id、calling_module、calling_module_type、called_module、called_module_type、call_count
mat_views.databases DB2 テーブルや解析されていないテーブルなど、メインフレーム プログラムによって実行されたデータベース使用状況の指標とテーブル アクセス オペレーション。 assessment_id、database_name、table_name、program_name、access_type、sql_statements_count、is_db2
mat_views.datasets メインフレーム データセット名(DSN)ファイルの I/O 使用量と JCL ジョブからステップへのマッピング(複数のジョブをブリッジする共有データセットを含む)。 assessment_id、dataset_name、job_name、step_name、dd_name、program_name、io_operation、is_shared_bridge

使用例

次に、MCP サーバーツールと mat-backend-query スキルを使用して評価データを取得して処理することで、AI エージェントが回答できる自然言語プロンプトの例を示します。

  • シナリオ: 評価で複雑なプログラムを見つけます。
    • ユーザー プロンプト: 「AssessmentName という評価で、最も複雑な 10 個の COBOL プログラムをリストしてください。」
  • シナリオ: ビジネス ドメインに属するアセットを検索してフィルタします。
    • ユーザー プロンプト: 「AssessmentName という評価の DomainName ドメインに関連するすべての JCL ジョブを一覧表示して。」
  • シナリオ: 評価からアセットの依存関係を取得します。
    • ユーザー プロンプト: 「AssessmentName という評価の JCL ジョブ JCLJobName の依存関係は何ですか?」
  • シナリオ: 特定のジョブから抽出されたビジネスルールを見つけます。
    • ユーザー プロンプト: 「AssessmentName という評価で BusinessRuleJobName によって抽出されたすべてのビジネスルールを一覧表示してください。」
  • シナリオ: 自然言語を使用して評価データを探索します。
    • ユーザー プロンプト: 「AssessmentName という評価の課金システムのデータ処理フローの仕組みを説明して。」
  • シナリオ: mat-backend-query スキルを使用してプログラムのコールツリーをクエリします。
    • ユーザー プロンプト: 「mat-backend-query スキルを使用して、評価「ASSESSMENT_ID」で最も頻繁に呼び出された上位 10 個のモジュールとその呼び出し元タイプを検索します。」
  • シナリオ: mat-backend-query スキルを使用して、データベース テーブルへのアクセスとデータセットの使用状況を分析します。
    • ユーザー プロンプト: 「mat-backend-query スキルを使用して、評価「ASSESSMENT_ID」で書き込みまたは更新オペレーションでアクセスされたすべての DB2 テーブルを一覧表示します。」