使用 MCP Toolbox 管理 Cloud SQL for SQL Server 实例:Admin 预置工具完整配置指南
2026/9/15 1:30:37 网站建设 项目流程

使用 MCP Toolbox 管理 Cloud SQL for SQL Server 实例:Admin 预置工具完整配置指南

【免费下载链接】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(本仓库为googleapis/mcp-toolbox的开源实现)将 Cloud SQL for SQL Server 的实例、数据库与用户管理能力以 MCP(Model Context Protocol)工具的形式暴露给你的 AI 开发助手,支持 Cursor、Windsurf、Visual Studio Code(Copilot)、Cline、Claude Desktop、Claude Code、Gemini CLI 与 Gemini Code Assist。读完本文,你将掌握从 IAM 权限准备、二进制安装到各类 MCP 客户端接入的完整流程,并理解cloud-sql-mssql-admin预置配置背后 10 个管理工具的底层实现与参数细节。

方案概览:为什么用 Admin 预置而不是直连数据库

cloud-sql-mssql-admin与同仓库的cloud-sql-mssql预置配置定位不同:Admin 侧重实例生命周期与资源管理(创建实例、克隆、备份、恢复、建库、建用户),通过 Cloud SQL Admin API 完成,不要求建立数据库连接;而cloud-sql-mssql侧重对既有实例执行 SQL。当你的助手需要"创建一个 SQL Server 实例并初始化数据库"这类运维动作时,Admin 预置是正确选择。

该预置配置定义于 internal/prebuiltconfigs/tools/cloud-sql-mssql-admin.yaml,包含一个cloud-sql-admin类型的源(source)与一个名为cloud_sql_mssql_admin_tools的工具集(toolset),启动时通过--prebuilt cloud-sql-mssql-admin参数直接加载。

开始之前:项目、计费与 IAM 权限准备

在配置任何 MCP 客户端之前,需要依次完成三项前置准备:

  1. 创建或选择 Google Cloud 项目:在 Google Cloud 控制台的项目选择器页面创建或选择一个项目,后续所有工具调用都发生在该项目范围内。
  2. 为项目启用结算(billing):创建实例、备份等操作会产生费用,必须确认项目已启用结算。
  3. 为运行 MCP 服务器的用户授予 IAM 角色:工具集实际暴露哪些工具,取决于授予的 Cloud SQL 角色,三层角色权限递进关系如下:
IAM 角色可用的工具权限说明
roles/cloudsql.viewerget_instancelist_instanceslist_databaseswait_for_operation只读访问现有资源
roles/cloudsql.editor全部 viewer 工具 +create_databasecreate_backup管理既有资源的权限
roles/cloudsql.admin全部 editor 与 viewer 工具 +create_instancecreate_userclone_instancerestore_backup对所有资源的完全控制

从源码看,工具在调用失败时会通过util.ProcessGcpError(err)将 GCP API 错误转换为可读的 Toolbox 错误信息返回给助手(见 internal/tools/cloudsql/cloudsqlcreateusers/cloudsqlcreateusers.go),因此权限不足时助手能收到明确的错误提示。

安装 MCP Toolbox

版本要求与下载

要求使用 ToolboxV0.15.0 及以上版本。官方发布渠道提供以下平台/架构的预编译二进制,请按本机环境选择对应下载命令(将<版本>替换为实际版本号):

# linux/amd64 curl -O https://<下载地址>/<版本>/linux/amd64/toolbox # darwin/arm64(Apple Silicon Mac) curl -O https://<下载地址>/<版本>/darwin/arm64/toolbox # darwin/amd64(Intel Mac) curl -O https://<下载地址>/<版本>/darwin/amd64/toolbox # windows/amd64 curl -O https://<下载地址>/<版本>/windows/amd64/toolbox.exe # windows/arm64 curl -O https://<下载地址>/<版本>/windows/arm64/toolbox.exe

赋予执行权限并验证

chmod +x toolbox ./toolbox --version

--version输出正常即表示安装成功。此后在所有 MCP 客户端配置中,将./PATH/TO/toolbox替换为二进制实际路径即可。

配置你的 MCP 客户端

所有客户端均通过"本地启动 toolbox 进程 + stdio 传输"的方式接入,核心参数完全一致:--prebuilt cloud-sql-mssql-admin指定加载 Admin 预置配置,--stdio指定使用标准输入输出作为 MCP 传输层。差异仅在于配置文件存放位置与 JSON 结构。下文逐一给出 8 种客户端的完整配置。

Claude Code

  1. 安装 Claude Code。
  2. 在项目根目录创建.mcp.json(若不存在)。
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }
  1. 重启 Claude Code 使配置生效。

Claude Desktop

  1. 打开 Claude Desktop 并进入 Settings(设置)。
  2. Developer选项卡下点击Edit Config打开配置文件。
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }
  1. 重启 Claude Desktop。
  2. 在新聊天界面中,应能看到锤子(MCP)图标以及可用的新 MCP 服务器。

Cline(VS Code 扩展)

  1. 在 VS Code 中打开 Cline 扩展,点击MCP Servers图标。
  2. 点击Configure MCP Servers打开配置文件。
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }
  1. 服务器成功连接后,应看到绿色 active 状态标识。

Cursor

  1. 在项目根目录创建.cursor目录(若不存在)。
  2. 创建并打开.cursor/mcp.json(若不存在)。
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }
  1. 在 Cursor 中进入Settings > Cursor Settings > MCP,连接成功后应看到绿色 active 状态。

Visual Studio Code(Copilot)

  1. 打开 VS Code,在项目根目录创建.vscode目录(若不存在)。
  2. 创建并打开.vscode/mcp.json(若不存在)。
  3. 注意 VS Code 的 JSON 顶层键是servers而非mcpServers,写入并保存:
{ "servers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }

Windsurf(Codium)

  1. 打开 Windsurf 并进入 Cascade 助手。
  2. 点击锤子(MCP)图标,再点击Configure打开配置文件。
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }

Gemini CLI

  1. 安装 Gemini CLI。
  2. 在工作目录中创建名为.gemini的文件夹,并在其中创建settings.json
  3. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }

Gemini Code Assist

  1. 在 Visual Studio Code 中安装 Gemini Code Assist 扩展。
  2. 在 Gemini Code Assist 对话中启用Agent Mode
  3. 在工作目录中创建名为.gemini的文件夹,并在其中创建settings.json
  4. 写入以下配置并保存:
{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { } } } }

关于默认项目的配置技巧

预置配置的源声明了defaultProject: ${CLOUD_SQL_MSSQL_PROJECT:}(见 internal/prebuiltconfigs/tools/cloud-sql-mssql-admin.yaml),即从环境变量CLOUD_SQL_MSSQL_PROJECT读取默认 GCP 项目 ID。因此你可以在客户端配置的env字段中注入该环境变量,例如:

{ "mcpServers": { "cloud-sql-mssql-admin": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","cloud-sql-mssql-admin","--stdio"], "env": { "CLOUD_SQL_MSSQL_PROJECT": "my-gcp-project-id" } } } }

配置后,工具的project参数会以该默认值预填,助手无需再向用户询问项目 ID(源码中表现为WithStringDefault(project)的默认参数烘焙逻辑,见 internal/tools/cloudsql/cloudsqlcreatedatabase/cloudsqlcreatedatabase.go)。

可用的管理工具清单

连接成功后,cloud-sql-mssql-admin服务器会向你的 AI 工具暴露以下 10 个管理工具:

  • create_instance:创建一个新的 Cloud SQL for SQL Server 实例。
  • get_instance:获取 Cloud SQL 实例的信息。
  • list_instances:列出项目中的 Cloud SQL 实例。
  • create_database:在 Cloud SQL 实例中创建新数据库。
  • list_databases:列出 Cloud SQL 实例的全部数据库。
  • create_user:在 Cloud SQL 实例中创建新用户。
  • wait_for_operation:等待 Cloud SQL 操作完成。
  • clone_instance:克隆现有的 Cloud SQL for SQL Server 实例。
  • create_backup:在 Cloud SQL 实例上创建备份。
  • restore_backup:恢复 Cloud SQL 实例的备份。

这 10 个工具在预置配置中按顺序注册到工具集cloud_sql_mssql_admin_tools,其类型与底层实现一一对应(internal/prebuiltconfigs/tools/cloud-sql-mssql-admin.yaml)。

核心工具的参数细节与实现原理

以下参数信息均来自各工具源码中的buildParams函数,是助手实际会向 LLM 暴露的 MCP 参数契约。

create_instance:面向 SQL Server 的实例创建

这是唯一一个 SQL Server 专属实现(类型为cloud-sql-mssql-create-instance),实现于 internal/tools/cloudsqlmssql/cloudsqlmssqlcreateinstance/cloudsqlmssqlcreateinstance.go。核心参数:

参数说明
projectGCP 项目 ID
name新实例名称
databaseVersion数据库版本,默认SQLSERVER_2022_STANDARD
rootPasswordroot 用户密码
editionPreset资源配置预置,ProductionDevelopment

从源码描述看,该工具内置两套预置模板(见 cloudsqlmssqlcreateinstance.go):

  • Development:2 vCPU、8 GiB RAM(db-custom-2-8192),Non-HA/zonal 可用性;
  • Production:4 vCPU、26 GiB RAM(db-custom-4-26624),HA/regional 可用性。

两种预置均使用 Enterprise 版。由于默认版本为SQLSERVER_2022_STANDARD,源码提示助手应询问用户是否需要不同版本。本仓库在 tests/cloudsqlmssql/cloud_sql_mssql_create_instance_integration_test.go 中提供了完整的集成测试用例可参考。

create_user:支持内置用户与 IAM 用户

实现于 internal/tools/cloudsql/cloudsqlcreateusers/cloudsqlcreateusers.go,参数如下:

参数是否必填说明
projectGCP 项目 ID
instance创建用户的实例 ID
name新用户名,须在实例内唯一
password否(IAM 用户)新用户密码;IAM 用户无需提供
iamUser置为true时创建 Cloud IAM 用户

源码明确支持内置与 IAM 两类用户:IAM 用户以邮箱作为用户名,是更安全、官方推荐的管理方式;源码注释要求助手在创建前必须询问用户需要哪种类型(cloudsqlcreateusers.go)。运行时校验逻辑为:非 IAM 用户但未提供password时直接返回"missing password"的 Agent 错误(cloudsqlcreateusers.go)。

create_database 与 list_databases:数据库管理

create_database参数为projectinstancename(新数据库名,须在实例内唯一),实现于 internal/tools/cloudsql/cloudsqlcreatedatabase/cloudsqlcreatedatabase.go。list_databases对应cloud-sql-list-databases类型,用于列出实例下的全部数据库。

clone_instance:克隆与时间点恢复

实现于 internal/tools/cloudsql/cloudsqlcloneinstance/cloudsqlcloneinstance.go:

参数是否必填说明
projectGCP 项目 ID
sourceInstanceName被克隆的源实例名
destinationInstanceName克隆产生的新实例名
pointInTimeRFC 3339 格式时间戳,用于时间点恢复(PITR)克隆
preferredZone新实例首选可用区
preferredSecondaryZone新实例首选备用可用区

克隆是异步操作,调用会返回 Cloud SQL Operation 对象;源码描述明确提示之后必须调用wait_for_operation轮询直到操作标记为 DONE,且轮询 multiplier 应使用 4(cloudsqlcloneinstance.go)。这一约定与预置配置中wait_for_operation工具声明的multiplier: 4完全对应(cloud-sql-mssql-admin.yaml)。

create_backup 与 restore_backup:备份与恢复

create_backup(类型cloud-sql-create-backup)参数为projectinstancelocation(备份运行位置,可选)、backup_description(备份描述,可选),实现于 internal/tools/cloudsql/cloudsqlcreatebackup/cloudsqlcreatebackup.go。

restore_backup(类型cloud-sql-restore-backup)参数为target_projecttarget_instancebackup_idsource_project(可选)、source_instance(可选),实现于 internal/tools/cloudsql/cloudsqlrestorebackup/cloudsqlrestorebackup.go。其中backup_id可以是 BackupRun ID、备份名称或 BackupDR 备份名称,源码要求"使用完整的备份 ID,不要自行解析";只有当backup_id是 BackupRun ID 时才需要提供source_projectsource_instance

wait_for_operation:异步操作的完成判定

所有创建、克隆、备份、恢复类操作均为异步,统一通过wait_for_operation轮询状态。该工具在预置配置中声明了multiplier: 4,即轮询等待时间的倍率为 4,用于适配实例创建/克隆这类耗时较长的大操作。

版本与兼容性注意事项

  • 预置工具(Prebuilt tools)目前处于pre-1.0 阶段,工具定义在不同版本之间可能发生调整;不过 LLM 会自适应当前可用的工具集合,因此对大多数用户的实际使用影响有限。
  • 本文所有配置均以仓库当前版本的cloud-sql-mssql-admin预置配置为准,若升级 Toolbox 版本后工具行为异常,可对照 internal/prebuiltconfigs/tools/cloud-sql-mssql-admin.yaml 检查工具注册情况。
  • 认证通过 MCP Toolbox 的客户端授权机制完成,具体可参考仓库 internal/auth 目录下的通用与 Google 认证实现。

至此,你的 AI 开发助手已具备通过自然语言创建、查询、克隆、备份和恢复 Cloud SQL for SQL Server 实例的完整能力,日常的"建一个开发库""给生产实例做备份"等请求均可直接交由助手完成。

【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询