このページでは、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 から直接開くには、次の操作を行います。
- Mainframe Assessment Tool で、[評価] ページに移動します。
- ツールバーで [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 エージェント スキルをダウンロードして抽出する手順は次のとおりです。
- Mainframe Assessment Tool で、[評価] ページに移動します。
- ツールバーで [Use with Antigravity] をクリックし、[Download Skill] を選択します。ブラウザに
skill.zipという名前の ZIP ファイルがダウンロードされます。 パソコンでターミナルを開き、ローカルの 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ファイルをダウンロードしたディレクトリのパス。
PROJECT_ROOTに抽出されたファイルが次のディレクトリ構造と一致していることを確認します。PROJECT_ROOT/ └── .agents/ └── skills/ ├── README.md └── mat-backend-query/ ├── SKILL.md └── references/ └── schemas.md
Antigravity でスキルを確認する
Antigravity が MCP サーバーと mat-backend-query スキルを検出したことを確認する手順は次のとおりです。
.agents/skills/ディレクトリを検出できるように、PROJECT_ROOTディレクトリから Antigravity を起動します。- Antigravity チャットで
/mcpコマンドを実行して、mainframe-assessment-toolMCP サーバーが接続され、db_query_toolツールが公開されていることを確認します。 /skillsコマンドを実行して、mat-backend-queryスキルが読み込まれていることを確認します。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 テーブルを一覧表示します。」