ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

mcp-toolbox 的 dataplex-list-data-products 工具:跨区域列出 Knowledge Catalog Data Products 实战指南

mcp-toolbox 的 dataplex-list-data-products 工具:跨区域列出 Knowledge Catalog Data Products 实战指南 mcp-toolbox 的 dataplex-list-data-products 工具跨区域列出 Knowledge Catalog Data Products 实战指南【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox本篇技术指南聚焦于开源项目MCP Toolbox for Databases仓库根目录见 README.md中 Knowledge Catalog原 Dataplex集成提供的dataplex-list-data-products工具。文章将以 docs/en/integrations/knowledge-catalog/tools/knowledge-catalog-list-data-products.md 为主线结合 internal/tools/dataplex/dataplexlistdataproducts/dataplexlistdataproducts.go 等源码讲解如何配置、调用该工具掌握在 MCP 服务器中跨全部区域列举 Data Products、使用过滤表达式精确筛选、以及控制分页与排序的完整方法。工具概述一次调用全局发现 Data Productsdataplex-list-data-products是 Knowledge Catalog 集成中负责“发现与浏览”的只读工具其核心能力是列出 Knowledge Catalog 中跨所有 location全局的 Data Products。在元数据治理工作流中它通常作为第一步先枚举出组织内已发布的数据产品目录再结合dataplex-get-data-product、dataplex-list-data-assets等工具下钻到具体产品的资产明细。源码中该工具注册的资源类型常量为dataplex-list-data-products见 dataplexlistdataproducts.go。需要说明的是本仓库将 Dataplex 元数据治理能力整合为Knowledge Catalog集成详见 docs/en/integrations/knowledge-catalog/source.md因此该工具在配置中既可以表现为dataplex-*前缀也隶属于 Knowledge Catalog 文档体系。兼容数据源与调用链从源码结构看该工具通过接口约束其可执行的数据源类型见 dataplexlistdataproducts.gotype compatibleSource interface { ListDataProducts(ctx context.Context, filter string, pageSize int, orderBy string) ([]*dataplex.DataProductSummary, error) }实现该接口的是dataplex数据源kind: source、type: dataplex。在 internal/sources/dataplex/dataplex.go 中ListDataProducts的实际调用链为校验pageSize必须为正整数构造父资源路径projects/{project}/locations/-其中-通配符代表跨所有 location 全局搜索这正是“全局列出”能力的来源组装dataplexpb.ListDataProductsRequest携带Filter、PageSize、OrderBy通过 DataProductClient 的分页迭代器逐页拉取直到凑满pageSize或迭代器结束从返回的DataProduct.GetName()形如projects/{p}/locations/{loc}/dataProducts/{id}中解析出locationId与dataProductId最终返回精简后的摘要对象DataProductSummary见 dataplex.go包含locationId、dataProductId、displayName、ownerEmails、assetCount五个字段。工具层在 Invoke 中从参数表取出filter、pageSize、orderBy后直接转发给源方法错误统一经util.ProcessGcpError转换为带 gRPC 状态码的 ToolboxError 返回。前置要求认证与 IAM 权限Knowledge Catalog 使用 Identity and Access ManagementIAM控制用户和群组对资源的访问Toolbox 在与 Knowledge Catalog 交互时会使用Application Default CredentialsADC完成授权与认证。因此除了为服务器配置 ADC 之外还必须保证 IAM 身份具备执行该操作所需的权限查看 Data Products 列表属于只读操作至少需要具备 Dataplex 相关只读角色预构建配置文档建议在集成整体上使用Dataplex Readerroles/dataplex.viewer承担搜索与查询类任务见 docs/en/integrations/knowledge-catalog/prebuilt-configs/knowledge-catalog.md。具体到dataplex-list-data-products这类浏览工具其默认注解为只读源码中通过tools.NewReadOnlyAnnotations生成见 dataplexlistdataproducts.go这意味着它不会被用于任何写入操作配置与调用时无需考虑副作用问题。参数详解dataplex-list-data-products的全部参数均为可选。参数在源码 Initialize 中声明并生成 MCP 工具清单其定义与文档完全一致fieldtyperequireddescriptionfilterstringfalse过滤表达式用于筛选 Data Products。基于 AIP-160 提案语法表示精确匹配:表示包含匹配字符串字面量必须用双引号...包裹尚不支持跨字段同时匹配。示例display_name:my-productpageSizeintegerfalse每页返回的 Data Products 数量默认值为10。源码中以parameters.WithIntDefault(10)设置默认值且调用后端前会校验其必须为正数orderBystringfalse指定结果的排序规则。filter 语法要点filter是 AIP-160 风格的过滤表达式与 Knowledge Catalog 数据源的整体搜索语法一致可参考 source.md 中的谓词说明。使用时要特别注意精确匹配用包含匹配用:例如display_name:my-product表示 display name 中包含my-product的 Data Product字符串字面量必须加双引号否则表达式无法被正确解析目前不支持多个字段的 AND/OR 组合匹配一次过滤仅能针对单一字段条件如果未提供filter则返回全部 Data Products。配置示例在 Toolbox 的配置文件中一个最小可用的工具声明如下该示例与 预构建配置 中list_data_products的写法一致kind: tool name: list_data_products type: dataplex-list-data-products source: my-dataplex-source description: Use this tool to list Data Products.其中source: my-dataplex-source必须引用一个已定义的dataplex类型数据源。数据源本身声明方式如下见 source.mdkind: source name: my-dataplex-source type: dataplex project: my-project-idproject字段填写用于配额与计费的 GCP 项目 ID。参考字段fieldtyperequireddescriptiontypestringtrue必须为dataplex-list-data-products。sourcestringtrue工具执行所依赖的数据源名称。descriptionstringtrue传给 LLM 的工具描述影响 Agent 对工具的选用判断。源码对type与source均施加了validate:required校验见 dataplexlistdataproducts.go若source指向的类型未实现ListDataProducts接口ValidateSource会返回明确的类型不兼容错误。使用预构建配置快速接入项目提供了开箱即用的预构建配置文件 internal/prebuiltconfigs/tools/dataplex.yaml它一次性声明了 Knowledge Catalog 集成所需的全部工具、数据源与三个工具集toolset。其中工具list_data_products已被声明对应dataplex-list-data-products类型它同时被归入data-products工具集与get_data_product、list_data_assets、get_data_asset、create_data_product、update_data_product、create_data_asset、update_data_asset、update_data_product_aspects、get_operation等共同构成 Data Products 的“浏览 治理”闭环见 knowledge-catalog.md。使用预构建配置时通过--prebuilt dataplex加载并设置环境变量DATAPLEX_PROJECT指定 GCP 项目 ID。若只希望暴露浏览类能力也可以参考discovery工具集的定义仅挑选需要的工具写入自定义配置。解析与调用行为的源码印证项目通过单测保障该工具配置解析的正确性。dataplexlistdataproducts_test.go 中的TestParseFromYamlDataplexListDataProducts用例验证了一段包含kind: tool、name: example_tool、type: dataplex-list-data-products、source: my-instance、description: some description的 YAML能够被正确反序列化为Config{Type: dataplex-list-data-products, Source: my-instance}且默认AuthRequired为空切片。这说明配置面的契约稳定可作为自定义配置时的参考模板。在实际调用层面参数默认值由参数声明阶段决定pageSize缺省为10filter与orderBy缺省为空字符串空值会被原样传给后端请求等价于“不过滤、不排序”。常见使用场景数据产品目录盘点Agent 接到“列出组织内所有数据产品”类需求时直接调用本工具无需指定 location即可获得全局摘要列表按名称定位产品使用filter: display_name:\订单\之类包含匹配缩小候选范围后再调用dataplex-get-data-product获取详情与治理工具链配合将本工具放入data-products工具集让 Agent 在创建、更新数据产品前先浏览现有目录避免重复创建控制返回体量在元数据量大时通过pageSize限制单次返回数量默认 10需要更多结果时再配合其他分页策略逐页拉取。需要说明的是ListDataProducts后端的迭代逻辑会在达到pageSize时停止拉取见 dataplex.go因此pageSize同时也是单次调用的结果上限。小结dataplex-list-data-products是 Knowledge Catalog 集成中轻量而关键的只读浏览工具一条配置即可接入跨全局 location 枚举 Data Products配合 AIP-160 过滤语法与默认 10 条的分页控制能够高效支撑数据产品目录发现场景。结合本文给出的源码调用链、参数说明与预构建配置指引你可以在自己的 MCP Toolbox 服务器中快速落地“数据产品全局清单”能力并以此为起点构建更完整的数据治理工作流。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表