资讯动态

MCP Toolbox 的 alloydb-admin 数据源:通过 MCP 管理 AlloyDB 集群、实例与用户

发布时间:2026/9/14 3:20:45 来源:尧图企业网站定制
MCP Toolbox 的 alloydb-admin 数据源通过 MCP 管理 AlloyDB 集群、实例与用户【免费下载链接】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 开源项目中的alloydb-adminsource讲解如何通过这一 MCP 数据源连接 Google AlloyDB API在 AI Agent 工作流中完成集群、实例与数据库用户的管理任务。读完本文你将掌握alloydb-admin的两种认证模式ADC 与客户端 OAuth、完整配置字段、十个内置管理工具的用法以及源码层面的实现原理可直接在本地或远程 MCP 部署中配置与使用。Aboutalloydb-admin 是什么alloydb-admin是 MCP Toolbox for Databases 提供的一个 source数据源它封装了 Google AlloyDB 的管理平面 API 客户端使 MCP 工具能够对 AlloyDB 资源执行管理任务例如创建、查询、列出集群Cluster创建、查询、列出实例InstancePRIMARY 主实例与 READ_POOL 读池创建、查询、列出数据库用户User轮询**长时运行操作long-running operation**的状态从源码结构看该数据源对应仓库中的 internal/sources/alloydbadmin/alloydbadmin.go其注册名SourceType常量即为alloydb-admin见 源码第 35 行并通过sources.Register在init()中完成注册。它内部基于google.golang.org/api/alloydb/v1这一官方 Go 客户端与服务端通信服务端基地址为https://alloydb.googleapis.com。两种认证方式alloydb-admin支持两种与 AlloyDB API 进行认证的方式在 source.md 中定义如下Application Default CredentialsADC默认方式。数据源使用 ADC 向 API 认证适用于服务账号、本地 gcloud 环境等标准 GCP 认证场景。客户端侧 OAuthClient-side OAuth当useClientOAuth设为true时数据源期望客户端例如 Web 浏览器场景下的前端应用在每次请求中提供 OAuth 2.0 访问令牌。源码对这两种模式的落地可以在Initialize与getService两个方法中看到Initializeinternal/sources/alloydbadmin/alloydbadmin.go#L66-L100当UseClientOAuth为假时调用google.FindDefaultCredentials(ctx, alloydbrestapi.CloudPlatformScope)获取默认凭据并用oauth2.NewClient包装出携带 ADC TokenSource 的 HTTP 客户端为真时则直接使用裸 HTTP 客户端认证令牌由后续请求提供。两种情况下都会包装UserAgentRoundTripper以便在 API 请求中注入统一的 User-Agent。getServiceinternal/sources/alloydbadmin/alloydbadmin.go#L126-L137在客户端 OAuth 模式下每次调用都会用请求携带的accessToken构造oauth2.StaticTokenSource并创建独立的 AlloyDB service 实例在 ADC 模式下则复用Initialize阶段创建的服务实例。这一设计意味着客户端 OAuth 模式下每个请求都可携带独立的用户级令牌适合多租户或前端直连场景而 ADC 模式将凭据解析收敛在初始化阶段适合服务端长期运行的工作负载。配置字段参考alloydb-adminsource 的配置字段如下表所示原文档 Reference 完整字段fieldtyperequireddescriptiontypestringtrue必须为alloydb-admin。defaultProjectstringfalse用于 AlloyDB 基础设施类工具默认采用的 Google Cloud 项目 ID。useClientOAuthbooleanfalse若为true数据源将使用客户端侧 OAuth 进行授权否则使用 Application Default Credentials。默认值为false。readOnlybooleanfalse若设为true将抑制具有写能力的 admin 工具如create_cluster、create_instance、create_user。默认值为false。这些字段与源码中Config结构体的 YAML 标签一一对应internal/sources/alloydbadmin/alloydbadmin.go#L54-L60type Config struct { Name string yaml:name validate:required Type string yaml:type validate:required DefaultProject string yaml:defaultProject UseClientOAuth bool yaml:useClientOAuth ReadOnly bool yaml:readOnly }其中readOnly的行为由Source.IsReadOnly()源码第 110-112 行暴露给框架层框架据此决定是否注册写型工具defaultProject通过GetDefaultProject()提供给工具层作为工具未显式传入 project 参数时的兜底值。配置示例原文档给出了两份 YAML 配置示例一份使用 ADC 默认认证一份启用客户端 OAuthkind: source name: my-alloydb-admin type: alloydb-admin --- kind: source name: my-oauth-alloydb-admin type: alloydb-admin useClientOAuth: true基于字段表可补充更完整的配置写法以下为演示用途实际按需选取字段kind: source name: my-alloydb-admin type: alloydb-admin defaultProject: my-gcp-project-id readOnly: falsekind: source name: my-oauth-alloydb-admin type: alloydb-admin useClientOAuth: true defaultProject: my-gcp-project-id注意name是必填项且后续工具配置中的source字段必须引用此处定义的数据源名称。可用的管理工具alloydb-admin数据源配套了 10 个管理工具均位于 docs/en/integrations/alloydb-admin/tools/ 目录按功能可分为三类集群管理alloydb-create-cluster文档在指定项目和位置创建新的 AlloyDB for PostgreSQL 集群集群将获得私网 IP。参数project必填、cluster必填唯一标识、password必填初始用户密码、location可选默认us-central1、network可选VPC 网络名默认default、user可选初始超级用户名默认postgres。alloydb-list-clusters文档列出指定项目下全部或指定位置的集群详细信息集群名、状态、配置等。参数project必填、location可选默认-表示所有位置。alloydb-get-cluster文档获取单个指定集群的详细信息。参数project、location、cluster均必填。实例管理alloydb-create-instance文档在指定集群内创建新实例PRIMARY或READ_POOL实例将获得公网 IP。参数project、location、cluster、instance均必填instanceType可选PRIMARY/READ_POOL默认PRIMARY、displayName可选、nodeCount可选读池节点数仅READ_POOL需要默认1。该工具还会将password.enforce_complexity数据库标志置为on要求新数据库密码满足复杂度规则。alloydb-list-instances文档列出指定项目、集群与位置下的实例信息实例名、类型、IP、状态、配置等。参数project必填、cluster可选默认-表示所有集群、location可选默认-表示所有位置。alloydb-get-instance文档获取单个指定实例的详细信息。参数project、location、cluster、instance均必填。用户管理alloydb-create-user文档在指定集群内创建数据库用户支持ALLOYDB_BUILT_IN内置密码用户与ALLOYDB_IAM_USERIAM 用户官方推荐两种类型。参数project、cluster、location、user、userType均必填password仅内置用户需要、databaseRoles可选授予新用户的数据库角色列表如pg_read_all_data。alloydb-list-users文档列出指定集群内的所有数据库用户。参数project、cluster、location均必填。alloydb-get-user文档获取指定集群内单个用户的详细信息。参数project、location、cluster、user均必填。操作轮询工具alloydb-wait-for-operation文档轮询 AlloyDB Admin API 的操作状态端点直到长时运行操作完成采用指数退避策略。参数project、location、operation均必填。工具级可配置delay初始轮询间隔默认 3s、maxDelay最大间隔默认 4m、multiplier倍率默认 2.0、maxRetries最大尝试次数默认 10。官方文档特别提示该工具面向带人工参与的开发者助手工作流不应在生产环境的自主 Agent 中使用。工具配置同样使用 YAML例如在 source 之后声明工具并引用 source 名称kind: tool name: create_cluster type: alloydb-create-cluster source: my-alloydb-admin description: Use this tool to create a new AlloyDB cluster in a given project and location.源码中的调用链佐证从源码可以看到这些工具的底层实现均是对 AlloyDB REST 客户端的类型安全封装internal/sources/alloydbadmin/alloydbadmin.go#L143-L325CreateCluster组装Cluster请求体含NetworkConfig.Network形如projects/{project}/global/networks/{network}的 VPC 引用与InitialUser初始用户随后调用Projects.Locations.Clusters.Create(...).ClusterId(cluster).Do()。CreateInstance组装Instance请求体固定启用公网 IPEnablePublicIp: true对READ_POOL类型设置ReadPoolConfig.NodeCount。CreateUser对ALLOYDB_BUILT_IN类型写入Password并支持DatabaseRoles。创建类操作均返回长时运行操作long-running operation这正是wait_for_operation工具存在的意义GetOperations持续轮询直至op.Done为真若操作失败会序列化错误信息返回操作成功后若响应中包含实例资源名还会按connectionMessageTemplate模板生成 AlloyDB 连接信息见 generateAlloyDBConnectionMessage。预构建配置alloydb-postgres-admin仓库在 internal/prebuiltconfigs/tools/alloydb-postgres-admin.yaml 中提供了一份可直接复用的预构建配置启动时通过--prebuilt alloydb-postgres-admin加载详见 prebuilt 配置文档。该配置将上述 10 个工具组织为名为alloydb_postgres_admin_tools的 toolset并支持以下环境变量ALLOYDB_POSTGRES_PROJECT可选作为 AlloyDB 基础设施工具的默认 GCP 项目 ID对应 source 的defaultProject。ALLOYDB_POSTGRES_READONLY可选设为true时抑制写型 admin 工具如create_cluster、create_instance、create_user对应 source 的readOnly默认false。同时工具执行所需的 IAM 权限与各工具文档一致AlloyDB Viewerroles/alloydb.viewerlist与get类工具所需。AlloyDB Adminroles/alloydb.admincreate类工具所需。另外请确保目标 GCP 项目已启用AlloyDB API且执行工具的用户或服务账号具备roles/alloydb.admin、roles/owner或roles/editor之一。使用前置条件与限制仅面向AlloyDB for PostgreSQL的管理平面控制面操作数据平面的 SQL 访问由其他 source如alloydbpg提供。readOnly: true只抑制写型工具不影响读型工具的注册。wait_for_operation依赖指数退避参数超时上限由maxRetries与maxDelay共同决定适用于人工确认节奏的开发场景。综上alloydb-admin是 MCP Toolbox 中 AlloyDB 基础设施自动化的入口一份 source 配置即可让 Agent 完成从创建集群、扩容读池到授权用户的完整生命周期管理且 ADC / 客户端 OAuth 双模式覆盖了服务端与浏览器端两类主流部署形态。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价