尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MCP Toolbox for Databases 中的 bigtable-delete-logical-view 工具:删除 Bigtable 逻辑视图的配置与实现解析
MCP Toolbox for Databases 中的 bigtable-delete-logical-view 工具删除 Bigtable 逻辑视图的配置与实现解析【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox本篇指南以 MCP Toolbox for Databasesmcp-toolbox中 Bigtable 集成提供的bigtable-delete-logical-view工具为主线完整讲解该工具的 YAML 配置方式、参数含义、配套 source 声明以及从工具注册、参数解析到调用 Bigtable 实例管理 API 的源码级执行链路。读完本文后你能够独立完成该工具的声明与启动验证并能从源码层面理解其破坏性操作destructive标注与错误处理机制。什么是 Bigtable 逻辑视图以及这个工具解决什么问题Bigtable 是面向机器学习、运营分析与面向用户工作负载的低延迟 NoSQL 数据库采用宽列、键值存储模型。除直接读写表数据外Bigtable 支持基于 GoogleSQL 查询语句定义逻辑视图logical view一个逻辑视图由logical_view_id和一条查询语句绑定而成可以在不复制底层数据的前提下提供稳定的查询视角。逻辑视图的完整生命周期由 MCP Toolbox 中的一组工具共同覆盖它们均挂载在bigtable类型的 source 之上可参考以下文档页面创建逻辑视图bigtable-create-logical-view更新逻辑视图bigtable-update-logical-view查询逻辑视图bigtable-get-logical-view列出逻辑视图bigtable-list-logical-views删除逻辑视图bigtable-delete-logical-view本文主角在视图的查询定义需要整体废弃、或视图 ID 被回收复用等场景下就需要删除已存在的逻辑视图。bigtable-delete-logical-view正是为此设计的 MCP 工具它接收实例 ID 与视图 ID 两个参数调用 Bigtable 实例管理接口删除指定逻辑视图。工具声明完整配置示例按照官方工具文档bigtable-delete-logical-view.md的说明该工具在 Toolbox 配置文件中的声明如下kind: tool name: bigtable_delete_logical_view type: bigtable-delete-logical-view source: my-bigtable-source description: Delete a Bigtable logical view.其中source字段引用的必须是一个已声明的bigtable类型 source。参考 Bigtable source 的文档source.md配套的 source 声明形如kind: source name: my-bigtable-source type: bigtable project: my-project-id instance: test-instancesource 声明中的各字段含义如下引自 source.md 的 Reference 一节fieldtyperequireddescriptiontypestringtrue必须为 bigtable。projectstringtrue集群所在的 GCP 项目 ID如 my-project-id。instancestringtrueBigtable 实例名称。需要说明的是source 层面的project和instance是连接级配置用于定位 Bigtable 实例而工具调用时传入的instance_id参数则是每次调用时由调用方LLM 或客户端提供的目标实例标识两者并不冲突。Toolbox 使用你配置的应用默认凭据ADC完成对 Bigtable 的认证授权IAM 权限要求可参考 Bigtable Source 文档 中的 Requirements 一节。工具级字段参考工具的顶层配置字段定义如下与官方文档的 Reference 表一致fieldtyperequireddescriptiontypestringtrue必须为bigtable-delete-logical-view。sourcestringtrue要执行操作的 source 名称。descriptionstringfalse传递给 LLM 的工具描述。从源码 bigtabledeletelogicalview.go 的Config结构可以进一步确认各字段的约束type Config struct { tools.ConfigBase yaml:,inline Type string yaml:type validate:required Source string yaml:source validate:required Annotations *tools.ToolAnnotations yaml:annotations,omitempty }type与source均带有validate:required标签缺失时配置解析会直接报错内嵌的tools.ConfigBase提供了name、description、authRequired等通用字段。测试文件 bigtabledeletelogicalview_test.go 中的 with auth required 用例验证了authRequired列表可绑定多个认证服务名annotations字段允许显式覆盖工具的行为标注MCP 工具注解如destructiveHint下文会展开说明其默认值。若未显式提供description工具初始化时会回退到内置文案if cfg.Description { cfg.Description Delete a Bigtable logical view. }这保证了指向 LLM 的工具清单中始终有一条可读描述。调用参数bigtable-delete-logical-view接受两个参数与官方文档 Parameters 一节一致instance_id(string)目标 Bigtable 实例的 IDThe ID of the instancelogical_view_id(string)要删除的逻辑视图 IDThe ID of the logical view。这两个参数在Initialize方法中注册为字符串参数allParameters : parameters.Parameters{ parameters.NewStringParameter(instance_id, The ID of the instance), parameters.NewStringParameter(logical_view_id, The ID of the logical view), }由于删除操作是不可逆的写操作MCP 客户端在展示工具能力时会依据注解annotations感知其破坏性。该工具的初始化使用了默认破坏性注解tools.GetAnnotationsOrDefault(cfg.Annotations, tools.NewDestructiveAnnotations)查看 tools.go 中NewDestructiveAnnotations的实现可以看到它把ReadOnlyHint置为false、DestructiveHint置为truefunc NewDestructiveAnnotations() *ToolAnnotations { readOnly : false destructive : true return ToolAnnotations{ ReadOnlyHint: readOnly, DestructiveHint: destructive, } }这意味着客户端包括各类 Agent 框架在调用该工具前通常会触发额外的确认或风险提示流程。如果你需要自定义这些标注可以通过配置中的annotations字段显式覆盖。源码级执行链路从工具调用到 Bigtable API工具注册发生在包初始化阶段init()把资源类型bigtable-delete-logical-view映射到配置构造函数newConfig重复注册会直接 panic 终止启动const resourceType string bigtable-delete-logical-view func init() { if !tools.Register(resourceType, newConfig) { panic(fmt.Sprintf(tool type %q already registered, resourceType)) } }在 server 加载配置阶段newConfig通过 YAML 解码器把kind: tool段解析为Config值ValidateSource则通过接口断言保证被引用的 source 具备删除逻辑视图的能力type compatibleSource interface { DeleteLogicalView(context.Context, string, string) (any, error) } func (t Tool) ValidateSource(src sources.Source) error { _, ok : src.(compatibleSource) if !ok { return fmt.Errorf(source is not compatible with the tool) } return nil }从源码结构看只有实现了DeleteLogicalView方法的 source 才能与该工具配对在本仓库的 Bigtable 集成中bigtablesource 的 admin_wrappers.go 提供了该方法的实现。真正执行删除的入口是Invoke它先把参数列表转成 map再转发给 source最后用util.ProcessGcpError统一处理 GCP 侧返回的错误res, err : source.DeleteLogicalView(ctx, paramsMap[instance_id].(string), paramsMap[logical_view_id].(string)) if err ! nil { return nil, util.ProcessGcpError(err) } return res, nil而 source 侧的DeleteLogicalViewadmin_wrappers.go 第 229–235 行是对 Bigtable Go 客户端InstanceAdmin的薄封装func (s *Source) DeleteLogicalView(ctx context.Context, instanceId, logicalViewId string) (any, error) { err : s.InstanceAdmin.DeleteLogicalView(ctx, instanceId, logicalViewId) if err ! nil { return nil, fmt.Errorf(failed to delete logical view: %w, err) } return map[string]string{status: logical view deleted successfully}, nil }因此完整调用链为Tool.Invoke→Source.DeleteLogicalView→ Bigtable Go 客户端InstanceAdmin.DeleteLogicalView。成功时工具返回固定的状态映射{status: logical view deleted successfully}这也是 LLM 在对话中看到的执行结果。测试用例如何验证该工具工具的单元测试 bigtabledeletelogicalview_test.go 覆盖了两类行为YAML 配置解析TestParseFromYamlBigtable使用server.UnmarshalPrimitiveConfig解析基础示例与带authRequired的示例断言解析结果与预期的Config结构完全一致确保文档中的 YAML 示例真实可解析调用行为TestInvoke通过mockSource模拟 source 层——成功路径断言返回{status: logical view deleted successfully}错误路径断言底层 error 会被向上抛出对应真实场景中ProcessGcpError对 GCP 错误的转换与传播。测试中参数取值示例为instance_id: inst-1、logical_view_id: view-1可视为一次最小调用载荷的参考。实操建议在生命周期管理中使用该工具把本文工具放回逻辑视图生命周期来看推荐的运维顺序是用bigtable-list-logical-views先确认视图存在及其 ID用bigtable-get-logical-view核对视图绑定的查询定义避免误删执行bigtable-delete-logical-view完成删除成功响应为{status: logical view deleted successfully}再次list验证视图已消失。由于该工具带破坏性注解且删除不可逆在 Agent 自动编排场景中应确保logical_view_id只能来自上一步查询结果而不是模型自行生成同时 source 绑定的 ADC 身份需要具备对应 Bigtable 实例的管理权限否则Invoke会返回经ProcessGcpError处理后的权限类错误。小结bigtable-delete-logical-view是 MCP Toolbox for Databases 为 Bigtable 逻辑视图生命周期提供的删除能力声明上只需type、source两个必填字段运行时需要instance_id与logical_view_id两个字符串参数实现上经过注册—解析—source 兼容性校验—InstanceAdmin API 调用的完整链路并以破坏性工具注解约束客户端行为。结合仓库中 工具实现、source 封装与单元测试可以完整追溯该工具从配置到调用的每一步行为。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

安全多方计算隐私保护系统:从秘密共享到混淆电路的完整实现指南

安全多方计算隐私保护系统:从秘密共享到混淆电路的完整实现指南

简介:这份毕业设计资源交付的是安全多方计算隐私保护系统的完整源码与项目报告,核心服务于计算机相关专业高校学生与从业者,可直接作为毕业设计、课程设计或项目初期演示的支撑材料,也能够帮助初学者理解隐私计算的基本工程实现。…

📅 2026/9/14 13:51:45
ANSYS Fluent二阶Stokes波UDF实现与CFD耦合指南

ANSYS Fluent二阶Stokes波UDF实现与CFD耦合指南

简介:本资源面向流体动力学仿真初学者与海洋工程、海岸防护领域从业者,提供基于CFD的二阶Stokes波浪数值模拟完整实践方案。资源聚焦非线性波浪建模核心难点,通过UDF编程将理论转化为可执行的CFD求解逻辑,解决传统软件内置波浪模型…

📅 2026/9/14 13:51:45
Umi(@umijs/max)Module Federation 插件详解:mf 配置、运行时 API 与源码实现

Umi(@umijs/max)Module Federation 插件详解:mf 配置、运行时 API 与源码实现

Umi(umijs/max)Module Federation 插件详解:mf 配置、运行时 API 与源码实现 【免费下载链接】umi A framework in react community ✨ 项目地址: https://gitcode.com/GitHub_Trending/um/umi 本文基于 umi 官方文档与仓库源码&#…

📅 2026/9/14 13:51:45
MORE NEWS

更多资讯

📰

C#程序员必看!var和显式类型该用哪个?编译器早藏好答案

一、90%的C#开发者都踩过的坑,代码评审吵翻天针对C#开发领域的人而言, 差不多人人皆历经了一种困惑呢: 当着手书写变量之际, 究竟该选用var, 还是采用显式声明类型? 有的人认为var具备简洁且高效的特性, 书写起来不但节省时间而且还省力气;有的人则坚决…

📰

React Spectrum 拖放设计深度解析:可访问拖放交互模型与 @react-aria/dnd Hook API 全解

React Spectrum 拖放设计深度解析:可访问拖放交互模型与 react-aria/dnd Hook API 全解 【免费下载链接】react-spectrum A collection of libraries and tools that help you build adaptive, accessible, and robust user experiences. 项目地址: https://gitco…

📰

C#上位机开发:三菱PLC MC协议3E帧调试实战

简介:SanLingMC是一套基于C#开发的三菱PLC调试示例程序,专注于MC协议单地址读取与写入,适合需要入门PLC通信、理解上位机与三菱设备之间报文交互的开发者。程序以Visual Studio工程形式组织,包含窗体界面、资源文件、程序集信息与…

📰

Amplication data-service-generator-catalog 服务部署指南:环境变量、启动脚本与源码架构解析

Amplication data-service-generator-catalog 服务部署指南:环境变量、启动脚本与源码架构解析 【免费下载链接】amplication Amplication brings order to the chaos of large-scale software development by creating Golden Paths for developers - streamlined …

📰

uBlock Origin 免费广告拦截扩展:安装、验证与误拦放行的完整指南

uBlock Origin 免费广告拦截扩展:安装、验证与误拦放行的完整指南 【免费下载链接】uBlock uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean. 项目地址: https://gitcode.com/GitHub_Trending/ub/uBlock 正文才看两段&#x…

📰

M1 Mac mini:ARM架构如何重塑消费级计算体验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬