配置 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 中至少完成一项评估。如需了解详情,请参阅创建评估。
  • 授予必要的权限。您需要的权限取决于 Mainframe Assessment Tool 部署环境:
    • 在 Compute Engine 虚拟机实例上,您需要拥有在实例上设置自定义元数据的权限。如需详细了解所需角色,请参阅设置和移除自定义元数据。
    • 在 GKE 集群上,您需要有权更新集群中的部署,并且必须配置 kubectl 命令行工具以连接到集群。如需了解详情,请参阅为 kubectl 配置集群访问权限。
  • 设置 Google Cloud CLI。安装和配置最新版本的 Google Cloud CLI。如需了解详情,请参阅安装 Google Cloud CLI。

启用 MCP 服务器

MCP 服务器默认处于停用状态。如需启用 MCP 服务器,请按照适用于您的部署环境的说明操作。

在 Compute Engine 实例上

如需在 Mainframe Assessment Tool Compute Engine 实例上启用 MCP 服务器,请添加 MAT_ENABLE_MCP 元数据键,并通过运行以下 gcloud 命令将其值设置为 true:

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

替换以下内容:

  • INSTANCE_NAME:虚拟机实例的名称。
  • ZONE:虚拟机实例所在的可用区。

如果您在正在运行的虚拟机上设置元数据键,则必须重启虚拟机,更改才能生效。

在 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 界面的同一端口上的 /mcp/ 路由下。如需了解详情,请参阅从计算机访问 Mainframe Assessment Tool 虚拟机或从计算机访问 GKE 部署的 Mainframe Assessment Tool。

配置示例

以下部分提供了有关如何配置不同的 AI 智能体以连接到 MCP 服务器的示例。

将 LOCAL_PORT 替换为用于访问 Mainframe Assessment Tool 界面的本地端口。

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. 在工具栏中,点击与 Antigravity 搭配使用,然后选择下载技能。您的浏览器会下载一个名为 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. 从 PROJECT_ROOT 目录启动 Antigravity,以便它发现 .agents/skills/ 目录。
  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 字符串[] 是 Mainframe Assessment Tool 资源 ID 的列表。

SearchContent

在特定的大型主机评估中搜索源代码、AI 生成的规范和业务规则。它支持基于关键字 (bm25)、语义 (embedding) 和混合 (hybrid) 搜索模式,让用户能够找到相关资产和文档。

该工具可以按文档类型(source、spec 或 bre)过滤结果,限制返回的匹配项数量,并可选择性地检索匹配文档的完整内容。

参数

下表介绍了此工具的参数:

名称 类型 必填 说明
AssessmentId 字符串 是 Mainframe Assessment Tool 评估的 ID。
Query 字符串 是 搜索查询。
DocTypes 字符串[] 否 按文档类型过滤结果。支持的值为:source、spec 或 bre。
Limit 整数 否 限制返回的匹配项数量。
IncludeContent 布尔值 否 如果设置为 true,则响应还会包含匹配文档的完整内容。默认值为 false。
SearchMode 字符串 否 要使用的搜索模式。支持的值包括:bm25(基于关键字)、embedding(语义)或 hybrid。默认值为 hybrid。

ExploreData

运行一个交互式 AI 智能体(数据探索器),该智能体充当评估的数据分析师。智能体可以查询特定评估的底层结构化数据库,以回答复杂的问题。

参数

下表介绍了此工具的参数:

名称 类型 必填 说明
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 字符串[] 否 与业务规则关联的标签列表。
Filter.AssetIDs 字符串[] 否 与业务规则关联的 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 查询,并以 JSON 数组形式返回最多 10,000 行。

将 mat-backend-query 技能与此工具搭配使用,以便智能体遵循所需规则:

  • 每个查询都必须按特定评估 ID (WHERE assessment_id = 'ASSESSMENT_ID') 进行过滤。
  • 仅允许针对 mat_views 架构中的视图使用 SELECT 语句。
  • 查询必须包含显式 LIMIT 子句。

参数

下表介绍了此工具的参数:

名称 类型 必填 说明
query 字符串 是 要对 mat_views 架构运行的只读 PostgreSQL SELECT 查询(最多返回 10,000 行)。

可用的物化视图

下表介绍了 mat_views 架构中可使用 db_query_tool 查询的 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

用法示例

以下是 AI 智能体可以使用 MCP 服务器工具和 mat-backend-query 技能检索和处理评估数据来回答的自然语言提示示例:

  • 场景:在评估中查找复杂程序。
    • 用户提示:“列出评估 AssessmentName 中最复杂的 10 个 COBOL 程序。”
  • 应用场景:查找和过滤属于某个企业网域的资产。
    • 用户提示:“列出评估 AssessmentName 下与 DomainName 网域相关的所有 JCL 作业。”
  • 场景:从评估中获取资产依赖项。
    • 用户提示:“在名为 AssessmentName 的评估中,JCL 作业 JCLJobName 的依赖项是什么?”
  • 场景:查找从特定作业中提取的业务规则。
    • 用户提示:“列出 BusinessRuleJobName 在名为 AssessmentName 的评估中提取的所有业务规则。”
  • 应用场景:使用自然语言探索评估数据。
    • 用户提示:“请说明在名为 AssessmentName 的评估中,结算系统的数据处理流程是如何运作的。”
  • 场景:使用 mat-backend-query 技能查询程序调用树。
    • 用户提示:“使用 mat-backend-query 技能,查找评估‘ASSESSMENT_ID’中调用频率最高的前 10 个模块及其调用方类型。”
  • 场景:使用 mat-backend-query 技能分析数据库表访问权限和数据集使用情况。
    • 用户提示:“使用 mat-backend-query 技能,列出在评估‘ASSESSMENT_ID’中通过写入或更新操作访问的所有 DB2 表。”