ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MCP Toolbox 的 dataplex-get-data-asset 工具:用 Knowledge Catalog 检索 Data Asset 详细元数据

MCP Toolbox 的 dataplex-get-data-asset 工具:用 Knowledge Catalog 检索 Data Asset 详细元数据 MCP Toolbox 的 dataplex-get-data-asset 工具用 Knowledge Catalog 检索 Data Asset 详细元数据【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolboxdataplex-get-data-asset是 MCP Toolbox开源 MCP 数据库服务器中面向 Google Cloud Knowledge Catalog前身为 Dataplex的元数据读取工具用于按locationId dataProductId dataAssetId精确定位并返回某个 Data Asset 的完整元数据。本文以仓库内该工具的官方文档为骨架结合internal/tools/dataplex/dataplexgetdataasset/与internal/sources/dataplex/的源码实现和集成测试完整讲解该工具的参数、YAML 配置、IAM 前置条件、底层 API 调用链与返回结构帮助你直接落地到自己的 Agent 配置中。工具概览它能做什么Knowledge Catalog 是 Google Cloud 的统一数据治理方案为组织内的数据资产维护一份集中式清单承载业务、技术与运行时三类元数据。dataplex-get-data-asset就是针对其中Data Asset数据资产的读取工具在给定 Data Product数据产品下根据唯一标识取回某个 Data Asset 的详细元数据。从官方描述看见 关联文档该工具适用于如下场景Agent 已经通过list_data_products/list_data_assets拿到 Data Product 与 Data Asset 的 ID需要进一步查看某个资产的详细属性需要确认 Data Asset 的资源 URIresourceUri、标签labels以及访问组配置accessGroupConfigs用于审计、权限核对或下游编排。由于它是一个只读工具工具注册时使用了只读注解源码见 dataplexgetdataasset.go 中tools.NewReadOnlyAnnotations不会对 Knowledge Catalog 产生任何写操作适合安全地暴露给 LLM 使用。兼容的 Source该工具必须挂载在类型为dataplex的 Source 上执行。在 Knowledge Catalog Source 文档 中Source 的最小配置如下kind: source name: my-dataplex-source type: dataplex project: my-project-id其中type必须为dataplexproject是用于配额与计费的 GCP 项目 ID例如my-project-id。工具通过source字段引用该名称完成绑定。这种绑定关系在源码层有强校验dataplex-get-data-asset的ValidateSource方法要求所引用的 Source 必须实现compatibleSource接口即具备GetDataAsset(ctx, locationId, dataProductId, dataAssetId)方法否则会返回invalid source for ... tool错误见 dataplexgetdataasset.go 与 L98-L104。从源码结构看当前仓库中dataplex类型 Source 是实现该接口的唯一来源。前置条件IAM 权限与 ADCKnowledge Catalog 使用 Identity and Access ManagementIAM控制用户和组对 Catalog 资源的访问。MCP Toolbox 会使用你的Application Default CredentialsADC在与 Knowledge Catalog 交互时完成授权与认证。除为服务器配置 ADC 外还必须确保该 IAM 身份具备执行相应任务所需的 IAM 权限。在官方文档关联文档 的 Requirements 一节基础上仓库的预构建配置文档给出了更明确的角色指引Dataplex Readerroles/dataplex.viewer用于搜索和查看条目Dataplex Editorroles/dataplex.editor用于修改条目。对于只读的get_data_asset操作最小化原则下使用roles/dataplex.viewer即可满足需求只有当你同时启用create_data_product、update_data_asset等写工具时才需要 Editor 及以上角色。请结合 Knowledge Catalog 的 IAM 权限与角色说明将对应角色授予运行 Toolbox 的 IAM 身份服务账号或用户账号。参数详解dataplex-get-data-asset共接收三个必填参数完整参数表继承自关联文档fieldtyperequireddescriptionlocationIdstringtrueData Product 所在的 location ID如us、us-central1。dataProductIdstringtrue父级 Data Product 的唯一 ID。dataAssetIdstringtrueData Asset 的唯一 ID。在源码层三个参数被逐一注册为字符串参数见 dataplexgetdataasset.golocationId : parameters.NewStringParameter(locationId, The location ID (e.g., us, us-central1) where the Data Product is located.) dataProductId : parameters.NewStringParameter(dataProductId, The unique ID of the parent Data Product.) dataAssetId : parameters.NewStringParameter(dataAssetId, The unique ID of the Data Asset.)调用时Invoke方法L106-L129会做严格的非空校验三个参数任何一个缺失或为空字符串都会返回 Agent 错误locationId is required and must be a non-empty string其余两个参数同理。因此调用方必须同时提供三个完整 ID缺一不可。配置示例在 Toolbox 的 YAML 配置中声明该工具示例直接取自关联文档kind: tool name: get_data_asset type: dataplex-get-data-asset source: my-dataplex-source description: Use this tool to retrieve a Data Asset.对应 Reference 字段说明fieldtyperequireddescriptiontypestringtrue必须为dataplex-get-data-asset。sourcestringtrue工具执行所依赖的 Source 名称。descriptionstringtrue传递给 LLM 的工具描述。其中description会被写入工具 Manifest 并作为模型提示的一部分建议用一句话说明工具的用途与适用时机如“当用户询问某个 Data Asset 的详细元数据时使用”以提升 LLM 的工具选择准确率。仓库的单元测试TestParseFromYamlDataplexGetDataAsset验证了上述 YAML 的解析行为kind: tool配置会被解析为dataplexgetdataasset.Config其中name、description、type、source字段逐一映射默认AuthRequired为空数组。这说明你可以在配置层面按需补充annotations或认证相关的字段。底层实现从 Invoke 到 GetDataAsset 的调用链理解调用链有助于排查问题。当 LLM 触发该工具时执行路径如下见 dataplexgetdataasset.goInvoke从参数映射中取出locationId、dataProductId、dataAssetId并做非空校验将调用转发给所绑定 Source 的GetDataAsset(ctx, locationId, dataProductId, dataAssetId)方法出错时通过util.ProcessGcpError(err)将 GCP 错误统一转换为 Toolbox 错误格式返回。Source 侧的实现位于 internal/sources/dataplex/dataplex.go。它首先构造 Data Asset 的完整资源名projects/{projectId}/locations/{locationId}/dataProducts/{dataProductId}/dataAssets/{dataAssetId}其中{projectId}来自 Source 配置中的project字段。随后构造dataplexpb.GetDataAssetRequest{Name: name}通过GetDataProductClient().GetDataAsset(ctx, req)调用 Dataplex DataProduct API。响应返回后工具会从资源的规范名称中解析出locationId、dataProductId、dataAssetId三个片段按projects/locations/dataProducts/dataAssets的路径结构切分并组装为DataAsset对象返回。返回的DataAsset结构定义在 dataplex.go字段类型说明locationIdstringData Asset 所在 location。dataProductIdstring父级 Data Product ID。dataAssetIdstringData Asset 唯一 ID。resourceUristringData Asset 指向的实际云资源 URI如 BigQuery 表、GCS 路径。labelsmapData Asset 的标签键值对。accessGroupConfigsmap访问组配置含 principal 信息存在时返回。在 Knowledge Catalog Source 文档 的get_data_asset工具指令中也印证了返回内容应展示 Data Asset 的 ID、resource、labels 以及 access group configurations。使用预构建配置快速启用仓库已为 Knowledge Catalog 提供了开箱即用的预构建配置 dataplex.yaml其中已包含get_data_asset工具的完整声明L68-L72kind: tool name: get_data_asset type: dataplex-get-data-asset source: dataplex-source description: Retrieves specific metadata regarding a Data Asset.使用预构建配置时详情见预构建配置文档以--prebuilt参数指定dataplex通过环境变量DATAPLEX_PROJECT指定 GCP 项目 ID按需启用data-productstoolset该 toolset 聚合了list_data_products、get_data_product、list_data_assets、get_data_asset等 Data Product/Data Asset 全生命周期读写工具以及get_operation或discoverytoolset 以满足纯查询场景。典型的端到端 Agent 工作流为search_entries或list_data_products→list_data_assets→get_data_asset先缩小范围拿到 ID再精准取回单个资产的详细元数据。测试验证与预期行为仓库对dataplex-get-data-asset提供了双层测试保障单元测试dataplexgetdataasset_test.go验证 YAML 配置能正确解析为工具 Config覆盖type、source、description等字段的映射关系集成测试dataplex_integration_test.go通过 HTTP 接口POST /api/tool/.../invoke发送{locationId:us,dataProductId:...,dataAssetId:...}请求体验证授权与未授权两种场景下均能成功返回 200 且结果中包含预期的locationId/dataProductId/dataAssetId使用无效 token 或不带 token 时返回 401验证了认证失败时的行为适用于启用了 Google 认证的配置。这提示你在本地联调时可以先用list_data_assets确认目标 Data Asset 真实存在且三个 ID 准确无误再调用get_data_asset避免因 ID 拼写错误导致 NotFound 类错误。总结与注意事项dataplex-get-data-asset是 Knowledge Catalog 元数据消费链路中精确取数的一环核心要点归纳如下三个必填参数locationId、dataProductId、dataAssetId缺一不可源码层有非空强校验必须绑定dataplex类型 Source且 Source 配置中的project决定了实际查询的 GCP 项目前置 IAM至少需要roles/dataplex.viewer并通过 ADC 完成认证只读工具使用只读注解不产生任何写操作可放心交给 LLM 使用返回结构包含资源 URI、标签、访问组配置等元数据可用于权限审计与资产核对使用预构建配置--prebuilt dataplexDATAPLEX_PROJECT环境变量可一键获得包含该工具在内的完整工具集。如需进一步了解配套的list_data_products、list_data_assets、create_data_product等工具可查阅 Knowledge Catalog Source 文档 与 预构建配置文档。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表