尧图精选

使用 MCP Toolbox 的 looker-create-dashboard-layout 工具为 Looker 仪表盘创建多 Tab 布局

🕒 发布时间:2026/9/14 17:48:58 📁 来源:尧图网络
使用 MCP Toolbox 的 looker-create-dashboard-layout 工具为 Looker 仪表盘创建多 Tab 布局【免费下载链接】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 开源项目中的looker-create-dashboard-layout工具为主线系统讲解如何通过声明式 YAML 配置与 MCP 调用在 Looker 仪表盘中创建新的 dashboard layout即现代 Looker 仪表盘中的 Tab 页签。读完本文你将掌握该工具的全部参数语义、底层 Looker SDK 调用链、兼容的 Looker Source 配置方式以及它与make_dashboard、update_dashboard_layout_component等工具协作构建多页签仪表盘的完整工作流。工具概述什么是 dashboard layout在现代 Looker 仪表盘中一个 dashboard 可以包含多个 layout每个 layout 通常对应界面上的一个Tab页签。looker-create-dashboard-layout工具的作用就是在指定仪表盘下创建一个新的 layout从而以编程方式实现一个仪表盘、多个页签的结构。该能力对应的官方文档位于 docs/en/integrations/looker/tools/looker-create-dashboard-layout.md它属于 Looker 集成工具集toolset中的仪表盘构建类工具。从源码结构看该工具被注册为资源类型looker-create-dashboard-layout在 internal/tools/looker/lookercreatedashboardlayout/lookercreatedashboardlayout.go 中实现。它通过 Looker 官方 SDKgithub.com/looker-open-source/sdk-codegen/go/sdk/v4调用CreateDashboardLayoutAPI将工具的语义化参数映射为 Looker API v4 的WriteDashboardLayout请求对象。工作原理从 YAML 配置到 Looker API 的调用链该工具遵循 MCP Toolbox 统一的工具注册 → 配置解析 → 参数清单Manifest → 调用执行生命周期注册包内init()通过tools.Register(looker-create-dashboard-layout, newConfig)完成注册若类型重复注册会直接 panic见 lookercreatedashboardlayout.go。配置解析newConfig使用goccy/go-yaml将 YAML 解码为Config结构体其中type与source字段带validate:required约束同文件 L40-L60。初始化与参数清单Initialize中通过parameters.NewStringParameter/NewBooleanParameter声明四个参数含默认值并生成 MCP Manifest向 LLM 暴露工具描述与参数模式同时校验description字段必须非空否则报错description is required for tool %q同文件 L69-L94。执行调用Invoke从参数 Map 中取出dashboard_id、label、type、active组装成 v4 的WriteDashboardLayout{ DashboardId, Label, Type, Active }然后通过source.GetLookerSDK(ctx, accessToken)获取 SDK 实例并调用sdk.CreateDashboardLayout(wdl, , source.LookerApiSettings())同文件 L119-L175。// 核心调用源码简化示意完整实现见 internal/tools/looker/lookercreatedashboardlayout/lookercreatedashboardlayout.go wdl : v4.WriteDashboardLayout{ DashboardId: dashboardId, Label: label, Type: layoutType, Active: active, } sdk, err : source.GetLookerSDK(ctx, string(accessToken)) resp, err : sdk.CreateDashboardLayout(wdl, , source.LookerApiSettings())需要说明的是该工具是写操作创建资源其默认注解通过tools.NewWriteAnnotations生成同文件 L89测试TestAnnotations也验证了ReadOnlyHint为false。配置示例完整 YAML 声明原文档给出了最小可用示例结合 internal/prebuiltconfigs/tools/looker.yaml 中实际预置的create_dashboard_layout配置以下是可直接复制使用的完整 YAMLkind: tool name: create_dashboard_layout type: looker-create-dashboard-layout source: looker-source description: | This tool creates a new dashboard layout, which typically represents a tab in modern Looker dashboards. Parameters: - dashboard_id (required): The ID of the dashboard. - label (required): The label (title) of the new tab. - type (optional): The type of layout (defaults to newspaper). - active (optional): Whether to make this layout active.其中description会被原样传递到 LLM 的工具清单中作为模型决定是否调用以及如何填参的依据因此建议在描述中把参数语义写清楚。顶层配置字段参考fieldtyperequireddescriptionkindstringtrue固定为tool。namestringtrue工具实例名即 MCP 暴露的工具名如create_dashboard_layout。typestringtrue必须为looker-create-dashboard-layout。sourcestringtrueLooker source 的名称须与 source 配置的name一致。descriptionstringtrue传递给 LLM 的工具描述源码中校验其为必填否则初始化失败。对应测试用例 lookercreatedashboardlayout_test.go 中的TestParseFromYaml验证了上述最小 YAML 能被正确解析为Config{Type: looker-create-dashboard-layout, Source: my-instance}而TestFailParseFromYaml验证了未知字段如method会导致解析失败。调用参数详解该工具在调用MCP invoke阶段接收四个参数前两个必填、后两个可选参数名类型必填默认值说明dashboard_idstring是无目标仪表盘的 ID通常来自get_dashboards或make_dashboard的返回结果。labelstring是无新页签layout的标签/标题会显示在仪表盘 Tab 上。typestring否newspaper布局类型例如newspaper、grid。源码中默认值由parameters.WithStringDefault(newspaper)声明见 lookercreatedashboardlayout.go。activeboolean否false是否将该 layout 设为当前激活页签默认false同文件 L77。TestManifest测试逐一断言了这四个参数dashboard_id、label、type、active都会出现在 MCP Manifest 的参数清单中确保 LLM 能感知到它们的 schema。返回值调用成功后工具返回一个 JSON 对象result形如Dashboard layout (tab) label created的确认消息id当 Looker API 响应包含 layout ID 时返回供后续update_dashboard_layout_component等操作引用见 lookercreatedashboardlayout.go。错误处理参数缺失或类型错误如dashboard_id不是字符串时返回 Agent 错误Looker 返回 401 时被识别为未授权错误转为util.NewClientServerError其余错误统一走util.ProcessGeneralError处理同文件 L162-L167。Compatible SourcesLooker Source 的配置要求原文档中的{{ compatible-sources }}表明该工具只适用于 Looker 类型的数据源。源码中通过compatibleSource接口UseClientAuthorization、GetAuthTokenHeaderName、LookerApiSettings、GetLookerSDK约束了这一点见 lookercreatedashboardlayout.goValidateSource会对不兼容的 source 报错。因此使用前需要先声明一个type: looker的 source参考 internal/prebuiltconfigs/tools/looker.yaml 顶部的标准配置kind: source name: looker-source type: looker base_url: ${LOOKER_BASE_URL} client_id: ${LOOKER_CLIENT_ID:} client_secret: ${LOOKER_CLIENT_SECRET:} verify_ssl: ${LOOKER_VERIFY_SSL:true} timeout: 600s use_client_oauth: ${LOOKER_USE_CLIENT_OAUTH:false} show_hidden_models: ${LOOKER_SHOW_HIDDEN_MODELS:true} show_hidden_explores: ${LOOKER_SHOW_HIDDEN_EXPLORES:true} show_hidden_fields: ${LOOKER_SHOW_HIDDEN_FIELDS:true}在 internal/sources/looker/looker.go 的源码中可以看到这些配置项的默认值SslVerification默认true、Timeout默认600s、UseClientOAuth默认false、ShowHiddenModels/Explores/Fields默认true。SDK 初始化时将ApiVersion固定为4.0并把verify_ssl、timeout、client_id、client_secret等映射到rtl.ApiSettings。工具调用所需的鉴权 token 由调用方注入通过GetLookerSDK与 source 建立连接。典型工作流构建多页签仪表盘looker-create-dashboard-layout通常不是单独使用的而是嵌入到创建仪表盘 → 添加内容的流水线中。综合 internal/prebuiltconfigs/tools/looker.yaml 中相关工具的描述推荐的调用顺序是用make_dashboard创建空仪表盘拿到dashboard_id用add_dashboard_filter添加仪表盘级筛选器用add_dashboard_element添加内容瓦片tile用本工具create_dashboard_layout创建新页签layout用looker-update-dashboard-layout-component文档见 docs/en/integrations/looker/tools/looker-update-dashboard-layout-component.md将已有瓦片移动到新页签并调整行列、宽高。其中第 5 步工具的调用参数为dashboard_layout_component_id必填定位瓦片组件dashboard_layout_id指定目标页签row/column/width/height控制位置与尺寸。通过create_dashboard_layoutupdate_dashboard_layout_component的组合Agent 可以完全程序化地把一个仪表盘组织成多个 Tab 的结构而无需人工在 Looker UI 中拖拽。一个完整的 LLM 调用示例MCP invoke 阶段{ name: create_dashboard_layout, arguments: { dashboard_id: 123, label: Revenue Overview, type: newspaper, active: true } }测试与可靠性保障该工具附带了完整的单元测试位于 internal/tools/looker/lookercreatedashboardlayout/lookercreatedashboardlayout_test.go覆盖四个维度配置解析TestParseFromYaml/TestFailParseFromYaml验证合法 YAML 可正确反序列化、未知字段会报错参数清单TestManifest验证四个参数全部暴露在 Manifest 中注解语义TestAnnotations验证工具为写操作ReadOnlyHintfalse。这些测试从侧面印证了本文所述的行为只要按表格字段配置 YAML工具就能稳定注册、初始化并被 LLM 正确调用。小结looker-create-dashboard-layout是 MCP Toolbox Looker 集成中用于构建多页签仪表盘的写操作工具。它通过dashboard_idlabel两个必填参数与type默认newspaper、active默认false两个可选参数经 Looker SDK v4 的CreateDashboardLayoutAPI 完成页签创建并返回新建 layout 的id供后续编排。与make_dashboard、add_dashboard_element、update_dashboard_layout_component搭配使用即可让 Agent 端到端地完成创建仪表盘并组织为多 Tab 布局的自动化流程。相关实现与测试可直接在仓库的 internal/tools/looker/lookercreatedashboardlayout/ 目录中查阅预置配置可参考 internal/prebuiltconfigs/tools/looker.yaml。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →