/cloudbase-deploy
Deploy CloudBase resources. Subcommands: function (cloud functions), hosting (static hosting), cloudrun (CloudRun). Default: detect project type then prompt
> /plugin marketplace add TencentCloudBase/CloudBase-AI-ToolkitHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/cloudbase-deploy
Context preview
What this command does when you run it.
Deploy CloudBase resources. Subcommands: function (cloud functions), hosting (static hosting), cloudrun (CloudRun). Default: detect project type then prompt
Command definition
cloudbase-deploy.mdname: cloudbase-deploy
description: "Deploy CloudBase resources. Subcommands: function (cloud functions), hosting (static hosting), cloudrun (CloudRun). Default: detect project type then prompt"
部署 CloudBase 资源
将当前项目的云函数、静态托管或云托管服务部署到 CloudBase 环境。包含项目类型自动检测、生产环境门控确认和部署后验证。
Preflight
运行以下检查,失败时停止并给出可执行指引。
1. **MCP 连接检查** — 确认 `cloudbase-mcp` server 已连接。
- 调用 `envQuery({action:"info"})` 验证连接和登录状态。若失败,提示用户完成授权。
2. **环境选择** — 确认当前操作的 EnvId(`CLOUDBASE_ENV_ID` 或会话中已选定)。若未设置,先调用 `envQuery({action:"list"})` 让用户选择。 3. **项目类型检测** — 扫描当前目录结构,判断部署目标:
| 目录/文件标记 | 部署目标 | 说明 | |--------------|---------|------| | `cloudfunctions/` 目录存在 | function | 云函数项目,目录下每个子目录为一个云函数 | | `dist/` 或 `public/` 或 `build/` 存在 | hosting | 静态托管项目,需先构建再部署 | | `Dockerfile` 存在 | cloudrun | 云托管项目,基于容器镜像部署 | | `project.config.json` 存在 | 小程序 | 提示使用微信开发者工具上传,非 MCP 部署 |
若 "$ARGUMENTS" 指定了子命令(`function`/`hosting`/`cloudrun`),以参数为准;否则根据检测结果提示用户确认。
4. **Git 状态检查** — 运行 `git status --porcelain`。
- 若输出非空:提示用户未提交的改动不会进入部署产物(MCP 直接读取本地文件,不经过 git)。询问是否先提交再部署。
- 若非 git 仓库,跳过此检查。
5. **构建产物检查**(hosting 部署时)— 检测 `dist/`、`public/`、`build/` 是否存在且非空。
- 若不存在:提示用户先运行构建命令(`npm run build` / `pnpm build` 等)。
Plan
根据项目类型确定部署策略:
| 子命令 | MCP 工具 | 说明 | |--------|---------|------| | `function` | `manageFunctions({action:"deploy", ...})` | 部署 cloudfunctions/ 目录下的云函数 | | `hosting` | `manageHosting({action:"uploadFiles", ...})` | 上传静态文件到静态托管 | | `cloudrun` | `manageCloudRun({action:"deploy", ...})` | 部署云托管服务 |
**生产环境门控**:
若当前 EnvId 为生产环境(通过 `envQuery({action:"info"})` 的 Alias 或 Source 判断,或用户明确声明),必须获得显式确认:
> ⚠️ **生产环境部署请求。** > 当前环境 `<EnvId>`(`<Alias>`)为生产环境,此次部署将影响线上服务。 > **请用户明确回复 "yes" 确认部署。** 未获确认前不得执行。
Commands
function — 云函数部署
将 `cloudfunctions/` 目录下的云函数部署到 CloudBase:
manageFunctions({
action: "deploy",
functionRootPath: "<cloudfunctions 目录的绝对路径>",
envId: "<current-env-id>"
})- `functionRootPath` 指向云函数目录的**父目录**(例如 `cloudfunctions` 目录的绝对路径)
- 工具会自动读取 `functionRootPath` 下每个同名子目录的文件并部署
- 无需手动压缩代码,工具自动处理
部署后,若需要更新单个函数代码:
manageFunctions({
action: "updateFunctionCode",
functionName: "<function-name>",
functionRootPath: "<path-to-single-function-dir>",
envId: "<current-env-id>"
})hosting — 静态托管部署
上传静态文件到 CloudBase 静态托管:
manageHosting({
action: "uploadFiles",
localPath: "<dist 或 public 目录的绝对路径>",
cloudPath: "/",
envId: "<current-env-id>"
})上传完成后,获取静态托管的访问域名:
queryHosting({ action: "websiteConfig", envId: "<current-env-id>" })生成带有随机 queryString 的访问链接(用于绕过 CDN 缓存验证最新版本):
https://<static-domain>/?v=<random-string>
cloudrun — 云托管部署
部署云托管服务(基于 Dockerfile):
manageCloudRun({
action: "deploy",
serverName: "<service-name>",
envId: "<current-env-id>"
})- 需要当前目录存在 `Dockerfile`
- 部署后通过 `queryCloudRun({action:"status", serverName:"<name>"})` 查询服务状态
CLI Fallback
当 MCP 工具不可用或缺少某项能力时,回退到 `tcb` CLI:
# 云函数部署
tcb fn deploy --envId <env-id> --name <function-name>
# 静态托管上传
tcb hosting deploy --envId <env-id> --dir <local-path>
# 云托管部署
tcb run deploy --envId <env-id> --name <service-name>
仅当 MCP 调用明确失败、缺少所需 action、或本会话尚未加载 MCP 工具时使用 CLI fallback,并在 Plan 中说明原因。首会话应先配 MCP 供下次使用,再用 `tcb` 完成本次部署(见 `tooling-fallback.md`;禁止默认 `tcb deploy`)。
Verification
部署完成后,验证操作是否生效:
function 验证
queryFunctions({ action: "listFunctions", envId: "<current-env-id>" })确认:
- 新部署的函数出现在列表中
- 函数状态为正常(非 ERROR)
- 对比部署前后的函数数量(如适用)
hosting 验证
queryHosting({ action: "status", envId: "<current-env-id>" })确认:
- 静态托管服务状态为已开启
- 上传的文件出现在文件列表中(`queryHosting({action:"listFiles"})`)
cloudrun 验证
queryCloudRun({ action: "status", serverName: "<service-name>", envId: "<current-env-id>" })确认:
- 服务状态为 Running
- 版本号已更新
失败处理
若部署失败:
- 提取错误信息中的关键字段(错误码、错误消息)
- 呈现错误详情
- 建议常见修复方案(构建失败 → 检查依赖;权限不足 → 检查 envId 权限)
Summary
## Deploy Result
- **Action**: function | hosting | cloudrun
- **Status**: success | partial | failed
- **EnvId**: <环境 ID>
- **Target**: <函数名 / 托管域名 / 服务名>
- **URL**: <访问链接>(hosting 时,含随机 queryString)
- **BuildId / VersionId**: <构建版本>(function/cloudrun 时)
- **Details**: <关键输出摘要>
若部署失败,附加:
- **Error**: <失败原因摘要>
Next Steps
根据部署结果建议后续操作:
- **function 成功** → "运行 `queryFunctions({action:'listFunctionLogs', functionName:'<name>'})` 查看运行日志,或运行 `/cloudbase-status` 检查整体状态。"
- **hosting 成功** → "CDN 缓存有几分钟延迟,可使用生成的随机 queryString 链接验证最新版本。运行 `/cloudbase-status` 查看托管状态。"
- **cloudrun 成功** → "运行 `queryCloudRun({action:'status'})` 监控服务运行状态,或查看访问日志。"
- **构建失败** → "检查 package.json 的 build 脚本,确认依赖已安装(`npm install`)。"
- **权限不足** → "确认当前 EnvId 的访问权限,或切换到有权限的环境:`/cloudbase-env list`。"
- **生产环境部署后** → "密切关注线上服务状态,可运行 `/cloudbase-status` 进行健康检查。"
Read more
name: cloudbase-deploy description: "Deploy CloudBase resources. Subcommands: function (cloud functions), hosting (static hosting), cloudrun (CloudRun). Default: detect project type then prompt"
部署 CloudBase 资源
将当前项目的云函数、静态托管或云托管服务部署到 CloudBase 环境。包含项目类型自动检测、生产环境门控确认和部署后验证。
Preflight
运行以下检查,失败时停止并给出可执行指引。
1. **MCP 连接检查** — 确认 `cloudbase-mcp` server 已连接。
- 调用 `envQuery({action:"info"})` 验证连接和登录状态。若失败,提示用户完成授权。
2. **环境选择** — 确认当前操作的 EnvId(`CLOUDBASE_ENV_ID` 或会话中已选定)。若未设置,先调用 `envQuery({action:"list"})` 让用户选择。 3. **项目类型检测** — 扫描当前目录结构,判断部署目标:
| 目录/文件标记 | 部署目标 | 说明 | |--------------|---------|------| | `cloudfunctions/` 目录存在 | function | 云函数项目,目录下每个子目录为一个云函数 | | `dist/` 或 `public/` 或 `build/` 存在 | hosting | 静态托管项目,需先构建再部署 | | `Dockerfile` 存在 | cloudrun | 云托管项目,基于容器镜像部署 | | `project.config.json` 存在 | 小程序 | 提示使用微信开发者工具上传,非 MCP 部署 |
若 "$ARGUMENTS" 指定了子命令(`function`/`hosting`/`cloudrun`),以参数为准;否则根据检测结果提示用户确认。
4. **Git 状态检查** — 运行 `git status --porcelain`。
- 若输出非空:提示用户未提交的改动不会进入部署产物(MCP 直接读取本地文件,不经过 git)。询问是否先提交再部署。
- 若非 git 仓库,跳过此检查。
5. **构建产物检查**(hosting 部署时)— 检测 `dist/`、`public/`、`build/` 是否存在且非空。
- 若不存在:提示用户先运行构建命令(`npm run build` / `pnpm build` 等)。
Plan
根据项目类型确定部署策略:
| 子命令 | MCP 工具 | 说明 | |--------|---------|------| | `function` | `manageFunctions({action:"deploy", ...})` | 部署 cloudfunctions/ 目录下的云函数 | | `hosting` | `manageHosting({action:"uploadFiles", ...})` | 上传静态文件到静态托管 | | `cloudrun` | `manageCloudRun({action:"deploy", ...})` | 部署云托管服务 |
**生产环境门控**:
若当前 EnvId 为生产环境(通过 `envQuery({action:"info"})` 的 Alias 或 Source 判断,或用户明确声明),必须获得显式确认:
> ⚠️ **生产环境部署请求。** > 当前环境 `<EnvId>`(`<Alias>`)为生产环境,此次部署将影响线上服务。 > **请用户明确回复 "yes" 确认部署。** 未获确认前不得执行。
Commands
function — 云函数部署
将 `cloudfunctions/` 目录下的云函数部署到 CloudBase:
manageFunctions({
action: "deploy",
functionRootPath: "<cloudfunctions 目录的绝对路径>",
envId: "<current-env-id>"
})- `functionRootPath` 指向云函数目录的**父目录**(例如 `cloudfunctions` 目录的绝对路径)
- 工具会自动读取 `functionRootPath` 下每个同名子目录的文件并部署
- 无需手动压缩代码,工具自动处理
部署后,若需要更新单个函数代码:
manageFunctions({
action: "updateFunctionCode",
functionName: "<function-name>",
functionRootPath: "<path-to-single-function-dir>",
envId: "<current-env-id>"
})hosting — 静态托管部署
上传静态文件到 CloudBase 静态托管:
manageHosting({
action: "uploadFiles",
localPath: "<dist 或 public 目录的绝对路径>",
cloudPath: "/",
envId: "<current-env-id>"
})上传完成后,获取静态托管的访问域名:
queryHosting({ action: "websiteConfig", envId: "<current-env-id>" })生成带有随机 queryString 的访问链接(用于绕过 CDN 缓存验证最新版本):
https://<static-domain>/?v=<random-string>
cloudrun — 云托管部署
部署云托管服务(基于 Dockerfile):
manageCloudRun({
action: "deploy",
serverName: "<service-name>",
envId: "<current-env-id>"
})- 需要当前目录存在 `Dockerfile`
- 部署后通过 `queryCloudRun({action:"status", serverName:"<name>"})` 查询服务状态
CLI Fallback
当 MCP 工具不可用或缺少某项能力时,回退到 `tcb` CLI:
# 云函数部署 tcb fn deploy --envId <env-id> --name <function-name> # 静态托管上传 tcb hosting deploy --envId <env-id> --dir <local-path> # 云托管部署 tcb run deploy --envId <env-id> --name <service-name>
仅当 MCP 调用明确失败、缺少所需 action、或本会话尚未加载 MCP 工具时使用 CLI fallback,并在 Plan 中说明原因。首会话应先配 MCP 供下次使用,再用 `tcb` 完成本次部署(见 `tooling-fallback.md`;禁止默认 `tcb deploy`)。
Verification
部署完成后,验证操作是否生效:
function 验证
queryFunctions({ action: "listFunctions", envId: "<current-env-id>" })确认:
- 新部署的函数出现在列表中
- 函数状态为正常(非 ERROR)
- 对比部署前后的函数数量(如适用)
hosting 验证
queryHosting({ action: "status", envId: "<current-env-id>" })确认:
- 静态托管服务状态为已开启
- 上传的文件出现在文件列表中(`queryHosting({action:"listFiles"})`)
cloudrun 验证
queryCloudRun({ action: "status", serverName: "<service-name>", envId: "<current-env-id>" })确认:
- 服务状态为 Running
- 版本号已更新
失败处理
若部署失败:
- 提取错误信息中的关键字段(错误码、错误消息)
- 呈现错误详情
- 建议常见修复方案(构建失败 → 检查依赖;权限不足 → 检查 envId 权限)
Summary
## Deploy Result - **Action**: function | hosting | cloudrun - **Status**: success | partial | failed - **EnvId**: <环境 ID> - **Target**: <函数名 / 托管域名 / 服务名> - **URL**: <访问链接>(hosting 时,含随机 queryString) - **BuildId / VersionId**: <构建版本>(function/cloudrun 时) - **Details**: <关键输出摘要>
若部署失败,附加:
- **Error**: <失败原因摘要>
Next Steps
根据部署结果建议后续操作:
- **function 成功** → "运行 `queryFunctions({action:'listFunctionLogs', functionName:'<name>'})` 查看运行日志,或运行 `/cloudbase-status` 检查整体状态。"
- **hosting 成功** → "CDN 缓存有几分钟延迟,可使用生成的随机 queryString 链接验证最新版本。运行 `/cloudbase-status` 查看托管状态。"
- **cloudrun 成功** → "运行 `queryCloudRun({action:'status'})` 监控服务运行状态,或查看访问日志。"
- **构建失败** → "检查 package.json 的 build 脚本,确认依赖已安装(`npm install`)。"
- **权限不足** → "确认当前 EnvId 的访问权限,或切换到有权限的环境:`/cloudbase-env list`。"
- **生产环境部署后** → "密切关注线上服务状态,可运行 `/cloudbase-status` 进行健康检查。"
AI writes the code. CloudBase runs the backend. The CloudBase integration layer for AI coding tools: Plugin installs the stack, Skills steer how code is written, MCP operates databases, functions, storage, and deploys from chat.
Repo: TencentCloudBase/CloudBase-AI-Toolkit
Other commands on cloudbase-ai-toolkit.
- /no_spec
跳过 spec 流程,直接执行开发任务,适用于简单修复、文档更新、配置修改、代码重构等场景。
Open command - /prototype
快速原型开发模式,专注于快速验证想法和概念,适用于MVP开发、概念验证、技术探索等场景。
Open command - /spec
强制使用完整 spec 流程进行开发,适用于新功能开发、复杂架构设计、多模块集成、涉及数据库/UI设计等场景。
Open command - /cloudbase-env
CloudBase environment management. Subcommands: list (environments), info (current env details), domains (auth domains). Default: info
Open command - /cloudbase-init
Initialize a CloudBase project. Download a template, configure the environment, and generate cloudbaserc.json. Best for new projects.
Open command - /cloudbase-status
CloudBase project health check. Inspect environment status, cloud functions, deploy history, and logs.
Open command

