@cloudbase/cloudbase-mcp 2.20.0 → 2.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2854,8 +2854,8 @@ function registerEnvTools(server) {
2854
2854
  });
2855
2855
  // envQuery - 环境查询(合并 listEnvs + getEnvInfo + getEnvAuthDomains)
2856
2856
  server.registerTool?.("envQuery", {
2857
- title: "环境查询",
2858
- description: "查询云开发环境相关信息,支持查询环境列表、指定环境详情和安全域名。(原工具名:listEnvs/getEnvInfo/getEnvAuthDomains,为兼容旧AI规则可继续使用这些名称)当 action=list 时,会按 DescribeEnvs 语义做列表/筛选,标准返回字段为 EnvId、Alias、Status、EnvType、Region、PackageId、PackageName、IsDefault,并支持通过 fields 白名单裁剪这些字段;aliasExact=true 时会按别名精确筛选,避免把前缀相近的环境误当作候选;即使传入 envId,action=list 也只返回摘要,不会返回完整资源明细或 expiry。如需查询某个已知 EnvId 对应环境的详细信息(包括资源字段和计费信息),必须使用 action=info 并传入目标环境的 envId 参数。action=info 会在可用时补充 BillingInfo(如 ExpireTime、PayMode、IsAutoRenew 等计费字段)。",
2857
+ title: "CloudBase 环境查询",
2858
+ description: "查询 CloudBase 环境相关信息,支持查询环境列表、指定环境详情和安全域名。(原工具名:listEnvs/getEnvInfo/getEnvAuthDomains,为兼容旧AI规则可继续使用这些名称)当 action=list 时,会按 DescribeEnvs 语义做列表/筛选,标准返回字段为 EnvId、Alias、Status、EnvType、Region、PackageId、PackageName、IsDefault,并支持通过 fields 白名单裁剪这些字段;aliasExact=true 时会按别名精确筛选,避免把前缀相近的环境误当作候选;即使传入 envId,action=list 也只返回摘要,不会返回完整资源明细或 expiry。如需查询某个已知 EnvId 对应环境的详细信息(包括资源字段和计费信息),必须使用 action=info 并传入目标环境的 envId 参数。action=info 会在可用时补充 BillingInfo(如 ExpireTime、PayMode、IsAutoRenew 等计费字段)。",
2859
2859
  inputSchema: {
2860
2860
  action: zod_1.z
2861
2861
  .enum(["list", "info", "domains"])
@@ -3059,8 +3059,8 @@ function registerEnvTools(server) {
3059
3059
  });
3060
3060
  // envDomainManagement - 环境域名管理(合并 createEnvDomain + deleteEnvDomain)
3061
3061
  server.registerTool?.("envDomainManagement", {
3062
- title: "环境域名管理(安全域名 / CORS 白名单)",
3063
- description: "管理云开发环境的安全域名(安全域名 / CORS 白名单),支持添加和删除操作。(原工具名:createEnvDomain/deleteEnvDomain,为兼容旧AI规则可继续使用这些名称)当浏览器 Web 应用需要从本地 Vite / dev server 直接访问 CloudBase 资源时,应先用 envQuery(action=domains) 检查当前实际浏览器 origin 对应的 host:port 是否已在白名单中,再按该实际值添加。新增或删除后通常需要继续轮询 envQuery(action=domains) 确认状态收敛;安全域名一般约 10 分钟生效。⚠️ 重要:此工具仅用于 CORS/请求来源验证,不涉及 SSL 证书。如需绑定自定义域名供公网 HTTPS 访问,请使用 manageGateway(action=\"bindCustomDomain\")。",
3062
+ title: "CloudBase 环境域名管理(安全域名 / CORS 白名单)",
3063
+ description: "管理 CloudBase 环境的安全域名(安全域名 / CORS 白名单),支持添加和删除操作。(原工具名:createEnvDomain/deleteEnvDomain,为兼容旧AI规则可继续使用这些名称)当浏览器 Web 应用需要从本地 Vite / dev server 直接访问 CloudBase 资源时,应先用 envQuery(action=domains) 检查当前实际浏览器 origin 对应的 host:port 是否已在白名单中,再按该实际值添加。新增或删除后通常需要继续轮询 envQuery(action=domains) 确认状态收敛;安全域名一般约 10 分钟生效。⚠️ 重要:此工具仅用于 CORS/请求来源验证,不涉及 SSL 证书。如需绑定自定义域名供公网 HTTPS 访问,请使用 manageGateway(action=\"bindCustomDomain\")。",
3064
3064
  inputSchema: {
3065
3065
  action: zod_1.z
3066
3066
  .enum(["create", "delete"])
@@ -28294,6 +28294,22 @@ const MANAGE_APP_AUTH_ACTIONS = [
28294
28294
  "createCustomLoginKeys",
28295
28295
  ];
28296
28296
  const APP_AUTH_KEY_TYPES = ["publish_key", "api_key"];
28297
+ const APP_AUTH_PROVIDER_TYPES = [
28298
+ "OAUTH",
28299
+ "OIDC",
28300
+ "SAML",
28301
+ "WX_MICRO_APP",
28302
+ "WX_QRCODE_MICRO_APP",
28303
+ "WX_CLOUDBASE_MICRO_APP",
28304
+ "WX_MP",
28305
+ "WX_OPEN",
28306
+ "WX_WORK_INTERNAL",
28307
+ "WX_WORK_AGENT",
28308
+ "WX_WORK_THIRD_PARTY",
28309
+ "WX_WORK_THIRD_PARTY_ASSOCIATION",
28310
+ "CUSTOM",
28311
+ "EMAIL",
28312
+ ];
28297
28313
  const SUPABASE_LIKE_SDK_HINTS = {
28298
28314
  phoneOtp: "auth.signInWithOtp({ phone })",
28299
28315
  emailOtp: "auth.signInWithOtp({ email })",
@@ -28539,8 +28555,8 @@ function registerAppAuthTools(server) {
28539
28555
  };
28540
28556
  };
28541
28557
  server.registerTool?.("queryAppAuth", {
28542
- title: "查询应用认证配置",
28543
- description: "应用侧认证配置只读入口。用于查询登录方式、provider、publishable key、API key、client 配置和静态域名等认证准备状态。⚠️ 本工具为管理端配置查询工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具确认配置状态,再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若业务要接受普通用户名样式标识符,先查询 action=getLoginConfig;若 usernamePassword=false,下一步应立即调用 manageAppAuth(action=patchLoginStrategy, patch={ usernamePassword: true }),不要直接写 email 登录 API。",
28558
+ title: "查询 CloudBase 应用认证配置",
28559
+ description: "CloudBase 应用侧认证配置只读入口。用于查询登录方式、provider、publishable key、API key、client 配置和静态域名等认证准备状态。⚠️ 本工具为管理端配置查询工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具确认配置状态,再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若业务要接受普通用户名样式标识符,先查询 action=getLoginConfig;若 usernamePassword=false,下一步应立即调用 manageAppAuth(action=patchLoginStrategy, patch={ usernamePassword: true }),不要直接写 email 登录 API。",
28544
28560
  inputSchema: {
28545
28561
  action: zod_1.z.enum(QUERY_APP_AUTH_ACTIONS),
28546
28562
  providerId: zod_1.z.string().optional().describe("provider 标识,如 email、google"),
@@ -28650,8 +28666,8 @@ function registerAppAuthTools(server) {
28650
28666
  }
28651
28667
  }));
28652
28668
  server.registerTool?.("manageAppAuth", {
28653
- title: "管理应用认证配置",
28654
- description: "应用侧认证配置写入口。用于修改登录方式、provider、client 配置,确保 publishable key,以及创建或删除 API key、自定义登录密钥。⚠️ 本工具为管理端配置工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具完成配置(如启用 usernamePassword、获取 publishable key),再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若前端要接受普通用户名样式标识符,应先执行 action=patchLoginStrategy 并传入 patch={ usernamePassword: true },再实现对应前端登录逻辑。",
28669
+ title: "管理 CloudBase 应用认证配置",
28670
+ description: "CloudBase 应用侧认证配置写入口。用于修改登录方式、provider、client 配置,确保 publishable key,以及创建或删除 API key、自定义登录密钥。⚠️ 本工具为管理端配置工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具完成配置(如启用 usernamePassword、获取 publishable key),再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若前端要接受普通用户名样式标识符,应先执行 action=patchLoginStrategy 并传入 patch={ usernamePassword: true },再实现对应前端登录逻辑。",
28655
28671
  inputSchema: {
28656
28672
  action: zod_1.z.enum(MANAGE_APP_AUTH_ACTIONS),
28657
28673
  patch: zod_1.z
@@ -28659,7 +28675,10 @@ function registerAppAuthTools(server) {
28659
28675
  .optional()
28660
28676
  .describe("patchLoginStrategy 使用的简化登录策略 patch,如 { usernamePassword: true }"),
28661
28677
  providerId: zod_1.z.string().optional().describe("provider 标识,如 email、google;addProvider 时也可作为自定义 provider Id"),
28662
- providerType: zod_1.z.string().optional().describe("addProvider 时的 provider 协议类型,如 OAUTH、OIDC、EMAIL"),
28678
+ providerType: zod_1.z
28679
+ .enum(APP_AUTH_PROVIDER_TYPES)
28680
+ .optional()
28681
+ .describe("addProvider 时的 provider 协议类型"),
28663
28682
  displayName: zod_1.z
28664
28683
  .union([zod_1.z.string(), zod_1.z.record(zod_1.z.any())])
28665
28684
  .optional()
@@ -38645,8 +38664,8 @@ function registerAgentTools(server) {
38645
38664
  const cloudBaseOptions = server.cloudBaseOptions;
38646
38665
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
38647
38666
  server.registerTool?.("queryAgents", {
38648
- title: "查询 Agent",
38649
- description: "Agent 域统一只读入口。支持列表、详情与日志查询。",
38667
+ title: "查询 CloudBase Agent",
38668
+ description: "CloudBase Agent 域统一只读入口。支持列表、详情与日志查询。",
38650
38669
  inputSchema: {
38651
38670
  action: zod_1.z.enum(QUERY_AGENT_ACTIONS),
38652
38671
  agentId: zod_1.z.string().optional(),
@@ -38708,8 +38727,8 @@ function registerAgentTools(server) {
38708
38727
  }
38709
38728
  });
38710
38729
  server.registerTool?.("manageAgents", {
38711
- title: "管理 Agent",
38712
- description: "Agent 域统一写入口。支持创建、更新和删除远端 Agent。",
38730
+ title: "管理 CloudBase Agent",
38731
+ description: "CloudBase Agent 域统一写入口。支持创建、更新和删除远端 Agent。",
38713
38732
  inputSchema: {
38714
38733
  action: zod_1.z.enum(MANAGE_AGENT_ACTIONS),
38715
38734
  agentId: zod_1.z.string().optional(),
@@ -89803,8 +89822,8 @@ function registerFunctionTools(server) {
89803
89822
  }
89804
89823
  };
89805
89824
  server.registerTool?.("queryFunctions", {
89806
- title: "查询云函数域资源",
89807
- description: "函数域统一只读入口。通过更自解释的 action 查询 CloudBase 云函数列表、函数详情、执行日志、层、触发器和代码下载地址。" +
89825
+ title: "查询 CloudBase 云函数",
89826
+ description: "CloudBase 云函数统一只读入口。通过更自解释的 action 查询 CloudBase 云函数列表、函数详情、执行日志、层、触发器和代码下载地址。" +
89808
89827
  "\n\n**分页说明**:`listFunctions`、`listLayers` 支持 `limit` 和 `offset` 参数。" +
89809
89828
  "\n- `limit`: 分页数量,默认值由后端决定" +
89810
89829
  "\n- `offset`: 分页偏移,从 0 开始" +
@@ -89864,8 +89883,8 @@ function registerFunctionTools(server) {
89864
89883
  },
89865
89884
  }, async (input) => withEnvelope(() => handleQueryFunctions(input)));
89866
89885
  server.registerTool?.("manageFunctions", {
89867
- title: "管理云函数域资源",
89868
- description: "函数域统一写入口。支持创建函数、更新代码、更新配置、调用函数、管理定时跑 / 定时任务 / scheduled job 的 timer 触发器和层绑定。" +
89886
+ title: "管理 CloudBase 云函数",
89887
+ description: "CloudBase 云函数统一写入口。支持创建函数、更新代码、更新配置、调用函数、管理定时跑 / 定时任务 / scheduled job 的 timer 触发器和层绑定。" +
89869
89888
  "如果要创建 cron 定时任务,先用 createFunction 创建函数,再用 createFunctionTrigger 创建 timer 触发器(支持7段cron表达式),deleteFunctionTrigger 删除触发器。" +
89870
89889
  "危险操作需要显式 confirm=true。",
89871
89890
  inputSchema: {
@@ -109107,10 +109126,10 @@ classDiagram
109107
109126
  .default(false)
109108
109127
  .describe("是否立即发布模型"),
109109
109128
  dbInstanceType: zod_1.z
109110
- .string()
109129
+ .enum(["MYSQL", "FLEXDB"])
109111
109130
  .optional()
109112
109131
  .default("MYSQL")
109113
- .describe("数据库实例类型"),
109132
+ .describe("数据库实例类型,可选值:MYSQL=MySQL 数据库,FLEXDB=文档型数据库(NoSQL)"),
109114
109133
  },
109115
109134
  annotations: {
109116
109135
  readOnlyHint: false,
@@ -117456,6 +117475,10 @@ const cloudbase_manager_js_1 = __webpack_require__(3431);
117456
117475
  const cloud_mode_js_1 = __webpack_require__(89684);
117457
117476
  const notification_js_1 = __webpack_require__(32720);
117458
117477
  const tool_result_js_1 = __webpack_require__(9835);
117478
+ const HOSTING_CDN_SWITCH_VALUES = ['on', 'off'];
117479
+ const HOSTING_REFERER_TYPES = ['blacklist', 'whitelist'];
117480
+ const HOSTING_CACHE_RULE_TYPES = ['fileType', 'path'];
117481
+ const HOSTING_IP_FILTER_TYPES = ['blacklist', 'whitelist'];
117459
117482
  const routingRuleSchema = zod_1.z.object({
117460
117483
  keyPrefixEquals: zod_1.z.string().optional().describe('匹配前缀规则,例如 app/ 或 assets/。与 httpErrorCodeReturnedEquals 二选一或按 CloudBase 规则组合使用。'),
117461
117484
  httpErrorCodeReturnedEquals: zod_1.z.string().optional().describe('匹配 HTTP 错误码,例如 404。SPA 回退常用 404。'),
@@ -117464,25 +117487,25 @@ const routingRuleSchema = zod_1.z.object({
117464
117487
  });
117465
117488
  const domainConfigSchema = zod_1.z.object({
117466
117489
  Refer: zod_1.z.object({
117467
- Switch: zod_1.z.string().describe('Referer 防盗链开关,例如 on/off。'),
117490
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('Referer 防盗链开关:on=开启,off=关闭。'),
117468
117491
  RefererRules: zod_1.z.array(zod_1.z.object({
117469
- RefererType: zod_1.z.string().describe('Referer 规则类型。'),
117492
+ RefererType: zod_1.z.enum(HOSTING_REFERER_TYPES).describe('Referer 规则类型:blacklist=黑名单,whitelist=白名单。'),
117470
117493
  Referers: zod_1.z.array(zod_1.z.string()).describe('Referer 规则值列表。'),
117471
117494
  AllowEmpty: zod_1.z.boolean().describe('是否允许空 Referer。'),
117472
117495
  })).optional().describe('Referer 规则列表。'),
117473
117496
  }).optional().describe('Referer 防盗链配置。'),
117474
117497
  Cache: zod_1.z.array(zod_1.z.object({
117475
- RuleType: zod_1.z.string().describe('缓存规则类型,例如 fileType/path。'),
117498
+ RuleType: zod_1.z.enum(HOSTING_CACHE_RULE_TYPES).describe('缓存规则类型:fileType=文件类型,path=路径。'),
117476
117499
  RuleValue: zod_1.z.string().describe('规则匹配值。'),
117477
117500
  CacheTtl: zod_1.z.number().describe('缓存 TTL,单位秒。'),
117478
117501
  })).optional().describe('CDN 缓存规则列表。'),
117479
117502
  IpFilter: zod_1.z.object({
117480
- Switch: zod_1.z.string().describe('IP 访问控制开关,例如 on/off。'),
117481
- FilterType: zod_1.z.string().optional().describe('过滤类型,例如 blacklist/whitelist。'),
117503
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('IP 访问控制开关:on=开启,off=关闭。'),
117504
+ FilterType: zod_1.z.enum(HOSTING_IP_FILTER_TYPES).optional().describe('过滤类型:blacklist=黑名单,whitelist=白名单。'),
117482
117505
  Filters: zod_1.z.array(zod_1.z.string()).optional().describe('IP 规则列表。'),
117483
117506
  }).optional().describe('IP 访问控制配置。'),
117484
117507
  IpFreqLimit: zod_1.z.object({
117485
- Switch: zod_1.z.string().describe('IP 频控开关,例如 on/off。'),
117508
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('IP 频控开关:on=开启,off=关闭。'),
117486
117509
  Qps: zod_1.z.number().optional().describe('每个 IP 的 QPS 上限。'),
117487
117510
  }).optional().describe('IP 频控配置。'),
117488
117511
  });
@@ -117793,7 +117816,7 @@ function registerHostingTools(server) {
117793
117816
  const cloudBaseOptions = server.cloudBaseOptions;
117794
117817
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
117795
117818
  server.registerTool('queryHosting', {
117796
- title: '查询静态托管',
117819
+ title: '查询 CloudBase 静态托管',
117797
117820
  description: '查询 CloudBase 静态托管的只读信息。适合 AI 先做发现再决定下一步:action=websiteConfig 查询首页/错误页/路由规则与站点域名信息;action=status 查询托管服务状态;action=findFiles 按前缀查找文件;action=listFiles 列出全部托管文件;action=domainStatus 查询自定义域名的当前状态与配置。该工具不会产生任何副作用。',
117798
117821
  inputSchema: queryHostingInputSchema,
117799
117822
  annotations: {
@@ -117932,7 +117955,7 @@ function registerHostingTools(server) {
117932
117955
  }
117933
117956
  });
117934
117957
  server.registerTool('manageHosting', {
117935
- title: '管理静态托管',
117958
+ title: '管理 CloudBase 静态托管',
117936
117959
  description: '管理 CloudBase 静态托管的变更操作。action=upload 上传本地构建产物;action=delete 删除托管文件或目录(必须 confirm=true);action=setWebsiteDocument 设置首页/错误页/路由规则;action=enableService 开通静态托管;action=bindDomain / unbindDomain / updateDomain 管理自定义域名;action=downloadFile / downloadDirectory 下载托管内容到本地。若任务只是查看配置、文件或域名状态,请改用 queryHosting。',
117937
117960
  inputSchema: manageHostingInputSchema,
117938
117961
  annotations: {
@@ -134908,7 +134931,7 @@ class TelemetryReporter {
134908
134931
  const nodeVersion = process.version; // Node.js版本
134909
134932
  const arch = os_1.default.arch(); // 系统架构
134910
134933
  // 从构建时注入的版本号获取MCP版本信息
134911
- const mcpVersion = process.env.npm_package_version || "2.20.0" || 0;
134934
+ const mcpVersion = process.env.npm_package_version || "2.20.2" || 0;
134912
134935
  return {
134913
134936
  userAgent: `${osType} ${osRelease} ${arch} ${nodeVersion} CloudBase-MCP/${mcpVersion}`,
134914
134937
  deviceId: this.deviceId,
@@ -193513,7 +193536,7 @@ ${envIdSection}
193513
193536
  ## 环境信息
193514
193537
  - 操作系统: ${os_1.default.type()} ${os_1.default.release()}
193515
193538
  - Node.js版本: ${process.version}
193516
- - MCP 版本:${process.env.npm_package_version || "2.20.0" || 0}
193539
+ - MCP 版本:${process.env.npm_package_version || "2.20.2" || 0}
193517
193540
  - 系统架构: ${os_1.default.arch()}
193518
193541
  - 时间: ${new Date().toISOString()}
193519
193542
  - 请求ID: ${requestId}
@@ -193594,7 +193617,7 @@ function createWrappedHandler(name, handler, server) {
193594
193617
  requestId: (typeof error === 'object' && error && 'requestId' in error) ? error.requestId : '',
193595
193618
  ide: server.ide || process.env.INTEGRATION_IDE || ''
193596
193619
  });
193597
- const mcpVersion = true ? "2.20.0" : 0;
193620
+ const mcpVersion = true ? "2.20.2" : 0;
193598
193621
  const requestIdSuffix = requestId ? `\n🆔 RequestId: ${requestId}` : '';
193599
193622
  const enhancedErrorMessage = `${errorMessage}${requestIdSuffix}\n\n📦 CloudBase MCP v${mcpVersion}\n🔗 遇到问题?请复制以下链接到浏览器打开\n即可自动携带错误详情快速创建 GitHub Issue:\n${issueLink}`;
193600
193623
  // 创建新的错误对象,保持原有的错误类型但更新消息
@@ -209553,7 +209576,7 @@ function registerSetupTools(server) {
209553
209576
  server.registerTool("downloadTemplate", {
209554
209577
  title: "下载项目模板",
209555
209578
  description: `自动下载并部署CloudBase项目模板。
209556
- **Note**: Call this tool when the user requests to create a new project using a CloudBase template.\n\n支持的模板:\n- react: React + CloudBase 全栈应用模板\n- vue: Vue + CloudBase 全栈应用模板\n- miniprogram: 微信小程序 + 云开发模板 \n- uniapp: UniApp + CloudBase 跨端应用模板\n- rules: 只包含AI编辑器配置文件(包含Cursor、WindSurf、CodeBuddy等所有主流编辑器配置),适合在已有项目中补充AI编辑器配置\n\n支持的IDE类型:\n- all: 下载所有IDE配置\n- cursor: Cursor AI编辑器\n- 其他IDE类型见下方列表\n\n注意:如果未传入 ide 参数且无法从环境变量检测到 IDE,将提示错误并要求传入 ide 参数\n- windsurf: WindSurf AI编辑器\n- codebuddy: CodeBuddy AI编辑器\n- claude-code: Claude Code AI编辑器\n- cline: Cline AI编辑器\n- gemini-cli: Gemini CLI\n- opencode: OpenCode AI编辑器\n- qwen-code: 通义灵码\n- baidu-comate: 百度Comate\n- openai-codex-cli: OpenAI Codex CLI\n- augment-code: Augment Code\n- github-copilot: GitHub Copilot\n- roocode: RooCode AI编辑器\n- tongyi-lingma: 通义灵码\n- trae: Trae AI编辑器\n- qoder: Qoder AI编辑器\n- antigravity: Google Antigravity AI编辑器\n- vscode: Visual Studio Code\n- kiro: Kiro AI编辑器\n- aider: Aider AI编辑器\n\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.20.0" : 0}),便于后续维护和版本追踪\n- 下载 rules 模板时,如果项目中已存在 README.md 文件,系统会自动保护该文件不被覆盖(除非设置 overwrite=true)`,
209579
+ **Note**: Call this tool when the user requests to create a new project using a CloudBase template.\n\n支持的模板:\n- react: React + CloudBase 全栈应用模板\n- vue: Vue + CloudBase 全栈应用模板\n- miniprogram: 微信小程序 + 云开发模板 \n- uniapp: UniApp + CloudBase 跨端应用模板\n- rules: 只包含AI编辑器配置文件(包含Cursor、WindSurf、CodeBuddy等所有主流编辑器配置),适合在已有项目中补充AI编辑器配置\n\n支持的IDE类型:\n- all: 下载所有IDE配置\n- cursor: Cursor AI编辑器\n- 其他IDE类型见下方列表\n\n注意:如果未传入 ide 参数且无法从环境变量检测到 IDE,将提示错误并要求传入 ide 参数\n- windsurf: WindSurf AI编辑器\n- codebuddy: CodeBuddy AI编辑器\n- claude-code: Claude Code AI编辑器\n- cline: Cline AI编辑器\n- gemini-cli: Gemini CLI\n- opencode: OpenCode AI编辑器\n- qwen-code: 通义灵码\n- baidu-comate: 百度Comate\n- openai-codex-cli: OpenAI Codex CLI\n- augment-code: Augment Code\n- github-copilot: GitHub Copilot\n- roocode: RooCode AI编辑器\n- tongyi-lingma: 通义灵码\n- trae: Trae AI编辑器\n- qoder: Qoder AI编辑器\n- antigravity: Google Antigravity AI编辑器\n- vscode: Visual Studio Code\n- kiro: Kiro AI编辑器\n- aider: Aider AI编辑器\n\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.20.2" : 0}),便于后续维护和版本追踪\n- 下载 rules 模板时,如果项目中已存在 README.md 文件,系统会自动保护该文件不被覆盖(除非设置 overwrite=true)`,
209557
209580
  inputSchema: {
209558
209581
  template: zod_1.z
209559
209582
  .enum(["react", "vue", "miniprogram", "uniapp", "rules"])
@@ -226979,8 +227002,8 @@ function registerGatewayTools(server) {
226979
227002
  }
226980
227003
  };
226981
227004
  server.registerTool?.("queryGateway", {
226982
- title: "查询网关域资源",
226983
- description: "网关域统一只读入口。通过 action 查询网关域名、访问入口和目标暴露情况。",
227005
+ title: "查询 CloudBase 网关",
227006
+ description: "CloudBase 网关统一只读入口。通过 action 查询网关域名、访问入口和目标暴露情况。",
226984
227007
  inputSchema: {
226985
227008
  action: zod_1.z
226986
227009
  .enum(QUERY_GATEWAY_ACTIONS)
@@ -227002,8 +227025,8 @@ function registerGatewayTools(server) {
227002
227025
  },
227003
227026
  }, async (input) => withEnvelope(() => handleQueryGateway(input)));
227004
227027
  server.registerTool?.("manageGateway", {
227005
- title: "管理网关域资源(含自定义域名绑定)",
227006
- description: "网关域统一写入口。通过 action 创建目标访问入口,后续承接更通用的网关配置能力。为已存在的 HTTP 云函数补默认域名访问时,通常使用 createAccess 并提供 targetType=\"function\"、targetName、type=\"HTTP\" 与期望 path。注意 createAccess 只创建网关入口,不会自动修改函数资源权限。⚠️ 如需绑定带 SSL 证书的自定义域名供公网 HTTPS 访问,使用 action=\"bindCustomDomain\"(需要 domain 和 certificateId 参数);如需配置 CORS/安全域名(无证书),请使用 envDomainManagement 工具。",
227028
+ title: "管理 CloudBase 网关",
227029
+ description: "CloudBase 网关统一写入口。通过 action 创建目标访问入口,后续承接更通用的网关配置能力。为已存在的 HTTP 云函数补默认域名访问时,通常使用 createAccess 并提供 targetType=\"function\"、targetName、type=\"HTTP\" 与期望 path。注意 createAccess 只创建网关入口,不会自动修改函数资源权限。⚠️ 如需绑定带 SSL 证书的自定义域名供公网 HTTPS 访问,使用 action=\"bindCustomDomain\"(需要 domain 和 certificateId 参数);如需配置 CORS/安全域名(无证书),请使用 envDomainManagement 工具。",
227007
227030
  inputSchema: {
227008
227031
  action: zod_1.z
227009
227032
  .enum(MANAGE_GATEWAY_ACTIONS)
@@ -250601,8 +250624,8 @@ function registerStorageTools(server) {
250601
250624
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
250602
250625
  // Tool 1: queryStorage - 查询存储信息(只读操作)
250603
250626
  server.registerTool("queryStorage", {
250604
- title: "查询存储信息",
250605
- description: "查询云存储信息,支持列出目录文件、获取文件信息、获取临时下载链接等只读操作。返回的文件信息包括文件名、大小、修改时间、下载链接等。注意:action=url 返回的 temporaryUrl 是临时签名链接,有效期由 maxAge 参数决定(默认1小时),不要当作永久公网地址使用。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导出 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
250627
+ title: "查询 CloudBase 存储信息",
250628
+ description: "查询 CloudBase 云存储信息,支持列出目录文件、获取文件信息、获取临时下载链接等只读操作。返回的文件信息包括文件名、大小、修改时间、下载链接等。注意:action=url 返回的 temporaryUrl 是临时签名链接,有效期由 maxAge 参数决定(默认1小时),不要当作永久公网地址使用。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导出 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
250606
250629
  inputSchema: queryStorageInputSchema,
250607
250630
  annotations: {
250608
250631
  readOnlyHint: true,
@@ -250730,8 +250753,8 @@ function registerStorageTools(server) {
250730
250753
  });
250731
250754
  // Tool 2: manageStorage - 管理存储文件(写操作)
250732
250755
  server.registerTool("manageStorage", {
250733
- title: "管理存储文件",
250734
- description: "管理云存储文件,仅用于 COS/Storage 对象,不用于静态网站托管。支持上传文件/目录、下载文件/目录、删除文件/目录等操作。删除操作需要设置force=true进行确认,防止误删除重要文件。注意:上传后返回的 temporaryUrl 是临时签名链接,1小时后过期,不要当作永久公网地址写入配置或持久化存储。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
250756
+ title: "管理 CloudBase 存储文件",
250757
+ description: "管理 CloudBase 云存储文件,仅用于 COS/Storage 对象,不用于静态网站托管。支持上传文件/目录、下载文件/目录、删除文件/目录等操作。删除操作需要设置force=true进行确认,防止误删除重要文件。注意:上传后返回的 temporaryUrl 是临时签名链接,1小时后过期,不要当作永久公网地址写入配置或持久化存储。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
250735
250758
  inputSchema: manageStorageInputSchema,
250736
250759
  annotations: {
250737
250760
  readOnlyHint: false,
package/dist/index.js CHANGED
@@ -1123,8 +1123,8 @@ function registerEnvTools(server) {
1123
1123
  });
1124
1124
  // envQuery - 环境查询(合并 listEnvs + getEnvInfo + getEnvAuthDomains)
1125
1125
  server.registerTool?.("envQuery", {
1126
- title: "环境查询",
1127
- description: "查询云开发环境相关信息,支持查询环境列表、指定环境详情和安全域名。(原工具名:listEnvs/getEnvInfo/getEnvAuthDomains,为兼容旧AI规则可继续使用这些名称)当 action=list 时,会按 DescribeEnvs 语义做列表/筛选,标准返回字段为 EnvId、Alias、Status、EnvType、Region、PackageId、PackageName、IsDefault,并支持通过 fields 白名单裁剪这些字段;aliasExact=true 时会按别名精确筛选,避免把前缀相近的环境误当作候选;即使传入 envId,action=list 也只返回摘要,不会返回完整资源明细或 expiry。如需查询某个已知 EnvId 对应环境的详细信息(包括资源字段和计费信息),必须使用 action=info 并传入目标环境的 envId 参数。action=info 会在可用时补充 BillingInfo(如 ExpireTime、PayMode、IsAutoRenew 等计费字段)。",
1126
+ title: "CloudBase 环境查询",
1127
+ description: "查询 CloudBase 环境相关信息,支持查询环境列表、指定环境详情和安全域名。(原工具名:listEnvs/getEnvInfo/getEnvAuthDomains,为兼容旧AI规则可继续使用这些名称)当 action=list 时,会按 DescribeEnvs 语义做列表/筛选,标准返回字段为 EnvId、Alias、Status、EnvType、Region、PackageId、PackageName、IsDefault,并支持通过 fields 白名单裁剪这些字段;aliasExact=true 时会按别名精确筛选,避免把前缀相近的环境误当作候选;即使传入 envId,action=list 也只返回摘要,不会返回完整资源明细或 expiry。如需查询某个已知 EnvId 对应环境的详细信息(包括资源字段和计费信息),必须使用 action=info 并传入目标环境的 envId 参数。action=info 会在可用时补充 BillingInfo(如 ExpireTime、PayMode、IsAutoRenew 等计费字段)。",
1128
1128
  inputSchema: {
1129
1129
  action: zod_1.z
1130
1130
  .enum(["list", "info", "domains"])
@@ -1328,8 +1328,8 @@ function registerEnvTools(server) {
1328
1328
  });
1329
1329
  // envDomainManagement - 环境域名管理(合并 createEnvDomain + deleteEnvDomain)
1330
1330
  server.registerTool?.("envDomainManagement", {
1331
- title: "环境域名管理(安全域名 / CORS 白名单)",
1332
- description: "管理云开发环境的安全域名(安全域名 / CORS 白名单),支持添加和删除操作。(原工具名:createEnvDomain/deleteEnvDomain,为兼容旧AI规则可继续使用这些名称)当浏览器 Web 应用需要从本地 Vite / dev server 直接访问 CloudBase 资源时,应先用 envQuery(action=domains) 检查当前实际浏览器 origin 对应的 host:port 是否已在白名单中,再按该实际值添加。新增或删除后通常需要继续轮询 envQuery(action=domains) 确认状态收敛;安全域名一般约 10 分钟生效。⚠️ 重要:此工具仅用于 CORS/请求来源验证,不涉及 SSL 证书。如需绑定自定义域名供公网 HTTPS 访问,请使用 manageGateway(action=\"bindCustomDomain\")。",
1331
+ title: "CloudBase 环境域名管理(安全域名 / CORS 白名单)",
1332
+ description: "管理 CloudBase 环境的安全域名(安全域名 / CORS 白名单),支持添加和删除操作。(原工具名:createEnvDomain/deleteEnvDomain,为兼容旧AI规则可继续使用这些名称)当浏览器 Web 应用需要从本地 Vite / dev server 直接访问 CloudBase 资源时,应先用 envQuery(action=domains) 检查当前实际浏览器 origin 对应的 host:port 是否已在白名单中,再按该实际值添加。新增或删除后通常需要继续轮询 envQuery(action=domains) 确认状态收敛;安全域名一般约 10 分钟生效。⚠️ 重要:此工具仅用于 CORS/请求来源验证,不涉及 SSL 证书。如需绑定自定义域名供公网 HTTPS 访问,请使用 manageGateway(action=\"bindCustomDomain\")。",
1333
1333
  inputSchema: {
1334
1334
  action: zod_1.z
1335
1335
  .enum(["create", "delete"])
@@ -1703,7 +1703,7 @@ ${envIdSection}
1703
1703
  ## 环境信息
1704
1704
  - 操作系统: ${os_1.default.type()} ${os_1.default.release()}
1705
1705
  - Node.js版本: ${process.version}
1706
- - MCP 版本:${process.env.npm_package_version || "2.20.0" || 0}
1706
+ - MCP 版本:${process.env.npm_package_version || "2.20.2" || 0}
1707
1707
  - 系统架构: ${os_1.default.arch()}
1708
1708
  - 时间: ${new Date().toISOString()}
1709
1709
  - 请求ID: ${requestId}
@@ -1784,7 +1784,7 @@ function createWrappedHandler(name, handler, server) {
1784
1784
  requestId: (typeof error === 'object' && error && 'requestId' in error) ? error.requestId : '',
1785
1785
  ide: server.ide || process.env.INTEGRATION_IDE || ''
1786
1786
  });
1787
- const mcpVersion = true ? "2.20.0" : 0;
1787
+ const mcpVersion = true ? "2.20.2" : 0;
1788
1788
  const requestIdSuffix = requestId ? `\n🆔 RequestId: ${requestId}` : '';
1789
1789
  const enhancedErrorMessage = `${errorMessage}${requestIdSuffix}\n\n📦 CloudBase MCP v${mcpVersion}\n🔗 遇到问题?请复制以下链接到浏览器打开\n即可自动携带错误详情快速创建 GitHub Issue:\n${issueLink}`;
1790
1790
  // 创建新的错误对象,保持原有的错误类型但更新消息
@@ -5680,10 +5680,10 @@ classDiagram
5680
5680
  .default(false)
5681
5681
  .describe("是否立即发布模型"),
5682
5682
  dbInstanceType: zod_1.z
5683
- .string()
5683
+ .enum(["MYSQL", "FLEXDB"])
5684
5684
  .optional()
5685
5685
  .default("MYSQL")
5686
- .describe("数据库实例类型"),
5686
+ .describe("数据库实例类型,可选值:MYSQL=MySQL 数据库,FLEXDB=文档型数据库(NoSQL)"),
5687
5687
  },
5688
5688
  annotations: {
5689
5689
  readOnlyHint: false,
@@ -7042,8 +7042,8 @@ function registerGatewayTools(server) {
7042
7042
  }
7043
7043
  };
7044
7044
  server.registerTool?.("queryGateway", {
7045
- title: "查询网关域资源",
7046
- description: "网关域统一只读入口。通过 action 查询网关域名、访问入口和目标暴露情况。",
7045
+ title: "查询 CloudBase 网关",
7046
+ description: "CloudBase 网关统一只读入口。通过 action 查询网关域名、访问入口和目标暴露情况。",
7047
7047
  inputSchema: {
7048
7048
  action: zod_1.z
7049
7049
  .enum(QUERY_GATEWAY_ACTIONS)
@@ -7065,8 +7065,8 @@ function registerGatewayTools(server) {
7065
7065
  },
7066
7066
  }, async (input) => withEnvelope(() => handleQueryGateway(input)));
7067
7067
  server.registerTool?.("manageGateway", {
7068
- title: "管理网关域资源(含自定义域名绑定)",
7069
- description: "网关域统一写入口。通过 action 创建目标访问入口,后续承接更通用的网关配置能力。为已存在的 HTTP 云函数补默认域名访问时,通常使用 createAccess 并提供 targetType=\"function\"、targetName、type=\"HTTP\" 与期望 path。注意 createAccess 只创建网关入口,不会自动修改函数资源权限。⚠️ 如需绑定带 SSL 证书的自定义域名供公网 HTTPS 访问,使用 action=\"bindCustomDomain\"(需要 domain 和 certificateId 参数);如需配置 CORS/安全域名(无证书),请使用 envDomainManagement 工具。",
7068
+ title: "管理 CloudBase 网关",
7069
+ description: "CloudBase 网关统一写入口。通过 action 创建目标访问入口,后续承接更通用的网关配置能力。为已存在的 HTTP 云函数补默认域名访问时,通常使用 createAccess 并提供 targetType=\"function\"、targetName、type=\"HTTP\" 与期望 path。注意 createAccess 只创建网关入口,不会自动修改函数资源权限。⚠️ 如需绑定带 SSL 证书的自定义域名供公网 HTTPS 访问,使用 action=\"bindCustomDomain\"(需要 domain 和 certificateId 参数);如需配置 CORS/安全域名(无证书),请使用 envDomainManagement 工具。",
7070
7070
  inputSchema: {
7071
7071
  action: zod_1.z
7072
7072
  .enum(MANAGE_GATEWAY_ACTIONS)
@@ -7348,8 +7348,8 @@ function registerStorageTools(server) {
7348
7348
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
7349
7349
  // Tool 1: queryStorage - 查询存储信息(只读操作)
7350
7350
  server.registerTool("queryStorage", {
7351
- title: "查询存储信息",
7352
- description: "查询云存储信息,支持列出目录文件、获取文件信息、获取临时下载链接等只读操作。返回的文件信息包括文件名、大小、修改时间、下载链接等。注意:action=url 返回的 temporaryUrl 是临时签名链接,有效期由 maxAge 参数决定(默认1小时),不要当作永久公网地址使用。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导出 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
7351
+ title: "查询 CloudBase 存储信息",
7352
+ description: "查询 CloudBase 云存储信息,支持列出目录文件、获取文件信息、获取临时下载链接等只读操作。返回的文件信息包括文件名、大小、修改时间、下载链接等。注意:action=url 返回的 temporaryUrl 是临时签名链接,有效期由 maxAge 参数决定(默认1小时),不要当作永久公网地址使用。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导出 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
7353
7353
  inputSchema: queryStorageInputSchema,
7354
7354
  annotations: {
7355
7355
  readOnlyHint: true,
@@ -7477,8 +7477,8 @@ function registerStorageTools(server) {
7477
7477
  });
7478
7478
  // Tool 2: manageStorage - 管理存储文件(写操作)
7479
7479
  server.registerTool("manageStorage", {
7480
- title: "管理存储文件",
7481
- description: "管理云存储文件,仅用于 COS/Storage 对象,不用于静态网站托管。支持上传文件/目录、下载文件/目录、删除文件/目录等操作。删除操作需要设置force=true进行确认,防止误删除重要文件。注意:上传后返回的 temporaryUrl 是临时签名链接,1小时后过期,不要当作永久公网地址写入配置或持久化存储。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
7480
+ title: "管理 CloudBase 存储文件",
7481
+ description: "管理 CloudBase 云存储文件,仅用于 COS/Storage 对象,不用于静态网站托管。支持上传文件/目录、下载文件/目录、删除文件/目录等操作。删除操作需要设置force=true进行确认,防止误删除重要文件。注意:上传后返回的 temporaryUrl 是临时签名链接,1小时后过期,不要当作永久公网地址写入配置或持久化存储。工具还会基于 DescribeEnvs 返回的 Storages[0].CdnDomain 推导 publicUrl,⚠️ 警告:publicUrl 仅在存储桶 ACL 为公有读(所有用户可读)时才能被匿名访问;默认私有读写存储桶返回的 publicUrl 会 403,此时请继续使用 temporaryUrl 或先通过控制台/SDK 将目标路径设置为公有读。",
7482
7482
  inputSchema: manageStorageInputSchema,
7483
7483
  annotations: {
7484
7484
  readOnlyHint: false,
@@ -8632,6 +8632,22 @@ const MANAGE_APP_AUTH_ACTIONS = [
8632
8632
  "createCustomLoginKeys",
8633
8633
  ];
8634
8634
  const APP_AUTH_KEY_TYPES = ["publish_key", "api_key"];
8635
+ const APP_AUTH_PROVIDER_TYPES = [
8636
+ "OAUTH",
8637
+ "OIDC",
8638
+ "SAML",
8639
+ "WX_MICRO_APP",
8640
+ "WX_QRCODE_MICRO_APP",
8641
+ "WX_CLOUDBASE_MICRO_APP",
8642
+ "WX_MP",
8643
+ "WX_OPEN",
8644
+ "WX_WORK_INTERNAL",
8645
+ "WX_WORK_AGENT",
8646
+ "WX_WORK_THIRD_PARTY",
8647
+ "WX_WORK_THIRD_PARTY_ASSOCIATION",
8648
+ "CUSTOM",
8649
+ "EMAIL",
8650
+ ];
8635
8651
  const SUPABASE_LIKE_SDK_HINTS = {
8636
8652
  phoneOtp: "auth.signInWithOtp({ phone })",
8637
8653
  emailOtp: "auth.signInWithOtp({ email })",
@@ -8877,8 +8893,8 @@ function registerAppAuthTools(server) {
8877
8893
  };
8878
8894
  };
8879
8895
  server.registerTool?.("queryAppAuth", {
8880
- title: "查询应用认证配置",
8881
- description: "应用侧认证配置只读入口。用于查询登录方式、provider、publishable key、API key、client 配置和静态域名等认证准备状态。⚠️ 本工具为管理端配置查询工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具确认配置状态,再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若业务要接受普通用户名样式标识符,先查询 action=getLoginConfig;若 usernamePassword=false,下一步应立即调用 manageAppAuth(action=patchLoginStrategy, patch={ usernamePassword: true }),不要直接写 email 登录 API。",
8896
+ title: "查询 CloudBase 应用认证配置",
8897
+ description: "CloudBase 应用侧认证配置只读入口。用于查询登录方式、provider、publishable key、API key、client 配置和静态域名等认证准备状态。⚠️ 本工具为管理端配置查询工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具确认配置状态,再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若业务要接受普通用户名样式标识符,先查询 action=getLoginConfig;若 usernamePassword=false,下一步应立即调用 manageAppAuth(action=patchLoginStrategy, patch={ usernamePassword: true }),不要直接写 email 登录 API。",
8882
8898
  inputSchema: {
8883
8899
  action: zod_1.z.enum(QUERY_APP_AUTH_ACTIONS),
8884
8900
  providerId: zod_1.z.string().optional().describe("provider 标识,如 email、google"),
@@ -8988,8 +9004,8 @@ function registerAppAuthTools(server) {
8988
9004
  }
8989
9005
  }));
8990
9006
  server.registerTool?.("manageAppAuth", {
8991
- title: "管理应用认证配置",
8992
- description: "应用侧认证配置写入口。用于修改登录方式、provider、client 配置,确保 publishable key,以及创建或删除 API key、自定义登录密钥。⚠️ 本工具为管理端配置工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具完成配置(如启用 usernamePassword、获取 publishable key),再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若前端要接受普通用户名样式标识符,应先执行 action=patchLoginStrategy 并传入 patch={ usernamePassword: true },再实现对应前端登录逻辑。",
9007
+ title: "管理 CloudBase 应用认证配置",
9008
+ description: "CloudBase 应用侧认证配置写入口。用于修改登录方式、provider、client 配置,确保 publishable key,以及创建或删除 API key、自定义登录密钥。⚠️ 本工具为管理端配置工具,不执行用户登录。当任务要求编写客户端登录代码时(例如「用 JS SDK 登录」),应先通过本工具完成配置(如启用 usernamePassword、获取 publishable key),再在项目代码中编写 @cloudbase/js-sdk 客户端登录代码(如 auth.signInWithPassword()),而非使用本工具完成登录。若前端要接受普通用户名样式标识符,应先执行 action=patchLoginStrategy 并传入 patch={ usernamePassword: true },再实现对应前端登录逻辑。",
8993
9009
  inputSchema: {
8994
9010
  action: zod_1.z.enum(MANAGE_APP_AUTH_ACTIONS),
8995
9011
  patch: zod_1.z
@@ -8997,7 +9013,10 @@ function registerAppAuthTools(server) {
8997
9013
  .optional()
8998
9014
  .describe("patchLoginStrategy 使用的简化登录策略 patch,如 { usernamePassword: true }"),
8999
9015
  providerId: zod_1.z.string().optional().describe("provider 标识,如 email、google;addProvider 时也可作为自定义 provider Id"),
9000
- providerType: zod_1.z.string().optional().describe("addProvider 时的 provider 协议类型,如 OAUTH、OIDC、EMAIL"),
9016
+ providerType: zod_1.z
9017
+ .enum(APP_AUTH_PROVIDER_TYPES)
9018
+ .optional()
9019
+ .describe("addProvider 时的 provider 协议类型"),
9001
9020
  displayName: zod_1.z
9002
9021
  .union([zod_1.z.string(), zod_1.z.record(zod_1.z.any())])
9003
9022
  .optional()
@@ -9256,7 +9275,7 @@ class TelemetryReporter {
9256
9275
  const nodeVersion = process.version; // Node.js版本
9257
9276
  const arch = os_1.default.arch(); // 系统架构
9258
9277
  // 从构建时注入的版本号获取MCP版本信息
9259
- const mcpVersion = process.env.npm_package_version || "2.20.0" || 0;
9278
+ const mcpVersion = process.env.npm_package_version || "2.20.2" || 0;
9260
9279
  return {
9261
9280
  userAgent: `${osType} ${osRelease} ${arch} ${nodeVersion} CloudBase-MCP/${mcpVersion}`,
9262
9281
  deviceId: this.deviceId,
@@ -10616,8 +10635,8 @@ function registerFunctionTools(server) {
10616
10635
  }
10617
10636
  };
10618
10637
  server.registerTool?.("queryFunctions", {
10619
- title: "查询云函数域资源",
10620
- description: "函数域统一只读入口。通过更自解释的 action 查询 CloudBase 云函数列表、函数详情、执行日志、层、触发器和代码下载地址。" +
10638
+ title: "查询 CloudBase 云函数",
10639
+ description: "CloudBase 云函数统一只读入口。通过更自解释的 action 查询 CloudBase 云函数列表、函数详情、执行日志、层、触发器和代码下载地址。" +
10621
10640
  "\n\n**分页说明**:`listFunctions`、`listLayers` 支持 `limit` 和 `offset` 参数。" +
10622
10641
  "\n- `limit`: 分页数量,默认值由后端决定" +
10623
10642
  "\n- `offset`: 分页偏移,从 0 开始" +
@@ -10677,8 +10696,8 @@ function registerFunctionTools(server) {
10677
10696
  },
10678
10697
  }, async (input) => withEnvelope(() => handleQueryFunctions(input)));
10679
10698
  server.registerTool?.("manageFunctions", {
10680
- title: "管理云函数域资源",
10681
- description: "函数域统一写入口。支持创建函数、更新代码、更新配置、调用函数、管理定时跑 / 定时任务 / scheduled job 的 timer 触发器和层绑定。" +
10699
+ title: "管理 CloudBase 云函数",
10700
+ description: "CloudBase 云函数统一写入口。支持创建函数、更新代码、更新配置、调用函数、管理定时跑 / 定时任务 / scheduled job 的 timer 触发器和层绑定。" +
10682
10701
  "如果要创建 cron 定时任务,先用 createFunction 创建函数,再用 createFunctionTrigger 创建 timer 触发器(支持7段cron表达式),deleteFunctionTrigger 删除触发器。" +
10683
10702
  "危险操作需要显式 confirm=true。",
10684
10703
  inputSchema: {
@@ -11812,7 +11831,7 @@ function registerSetupTools(server) {
11812
11831
  server.registerTool("downloadTemplate", {
11813
11832
  title: "下载项目模板",
11814
11833
  description: `自动下载并部署CloudBase项目模板。
11815
- **Note**: Call this tool when the user requests to create a new project using a CloudBase template.\n\n支持的模板:\n- react: React + CloudBase 全栈应用模板\n- vue: Vue + CloudBase 全栈应用模板\n- miniprogram: 微信小程序 + 云开发模板 \n- uniapp: UniApp + CloudBase 跨端应用模板\n- rules: 只包含AI编辑器配置文件(包含Cursor、WindSurf、CodeBuddy等所有主流编辑器配置),适合在已有项目中补充AI编辑器配置\n\n支持的IDE类型:\n- all: 下载所有IDE配置\n- cursor: Cursor AI编辑器\n- 其他IDE类型见下方列表\n\n注意:如果未传入 ide 参数且无法从环境变量检测到 IDE,将提示错误并要求传入 ide 参数\n- windsurf: WindSurf AI编辑器\n- codebuddy: CodeBuddy AI编辑器\n- claude-code: Claude Code AI编辑器\n- cline: Cline AI编辑器\n- gemini-cli: Gemini CLI\n- opencode: OpenCode AI编辑器\n- qwen-code: 通义灵码\n- baidu-comate: 百度Comate\n- openai-codex-cli: OpenAI Codex CLI\n- augment-code: Augment Code\n- github-copilot: GitHub Copilot\n- roocode: RooCode AI编辑器\n- tongyi-lingma: 通义灵码\n- trae: Trae AI编辑器\n- qoder: Qoder AI编辑器\n- antigravity: Google Antigravity AI编辑器\n- vscode: Visual Studio Code\n- kiro: Kiro AI编辑器\n- aider: Aider AI编辑器\n\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.20.0" : 0}),便于后续维护和版本追踪\n- 下载 rules 模板时,如果项目中已存在 README.md 文件,系统会自动保护该文件不被覆盖(除非设置 overwrite=true)`,
11834
+ **Note**: Call this tool when the user requests to create a new project using a CloudBase template.\n\n支持的模板:\n- react: React + CloudBase 全栈应用模板\n- vue: Vue + CloudBase 全栈应用模板\n- miniprogram: 微信小程序 + 云开发模板 \n- uniapp: UniApp + CloudBase 跨端应用模板\n- rules: 只包含AI编辑器配置文件(包含Cursor、WindSurf、CodeBuddy等所有主流编辑器配置),适合在已有项目中补充AI编辑器配置\n\n支持的IDE类型:\n- all: 下载所有IDE配置\n- cursor: Cursor AI编辑器\n- 其他IDE类型见下方列表\n\n注意:如果未传入 ide 参数且无法从环境变量检测到 IDE,将提示错误并要求传入 ide 参数\n- windsurf: WindSurf AI编辑器\n- codebuddy: CodeBuddy AI编辑器\n- claude-code: Claude Code AI编辑器\n- cline: Cline AI编辑器\n- gemini-cli: Gemini CLI\n- opencode: OpenCode AI编辑器\n- qwen-code: 通义灵码\n- baidu-comate: 百度Comate\n- openai-codex-cli: OpenAI Codex CLI\n- augment-code: Augment Code\n- github-copilot: GitHub Copilot\n- roocode: RooCode AI编辑器\n- tongyi-lingma: 通义灵码\n- trae: Trae AI编辑器\n- qoder: Qoder AI编辑器\n- antigravity: Google Antigravity AI编辑器\n- vscode: Visual Studio Code\n- kiro: Kiro AI编辑器\n- aider: Aider AI编辑器\n\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.20.2" : 0}),便于后续维护和版本追踪\n- 下载 rules 模板时,如果项目中已存在 README.md 文件,系统会自动保护该文件不被覆盖(除非设置 overwrite=true)`,
11816
11835
  inputSchema: {
11817
11836
  template: zod_1.z
11818
11837
  .enum(["react", "vue", "miniprogram", "uniapp", "rules"])
@@ -12755,6 +12774,10 @@ const cloudbase_manager_js_1 = __webpack_require__(3431);
12755
12774
  const cloud_mode_js_1 = __webpack_require__(9684);
12756
12775
  const notification_js_1 = __webpack_require__(2720);
12757
12776
  const tool_result_js_1 = __webpack_require__(9835);
12777
+ const HOSTING_CDN_SWITCH_VALUES = ['on', 'off'];
12778
+ const HOSTING_REFERER_TYPES = ['blacklist', 'whitelist'];
12779
+ const HOSTING_CACHE_RULE_TYPES = ['fileType', 'path'];
12780
+ const HOSTING_IP_FILTER_TYPES = ['blacklist', 'whitelist'];
12758
12781
  const routingRuleSchema = zod_1.z.object({
12759
12782
  keyPrefixEquals: zod_1.z.string().optional().describe('匹配前缀规则,例如 app/ 或 assets/。与 httpErrorCodeReturnedEquals 二选一或按 CloudBase 规则组合使用。'),
12760
12783
  httpErrorCodeReturnedEquals: zod_1.z.string().optional().describe('匹配 HTTP 错误码,例如 404。SPA 回退常用 404。'),
@@ -12763,25 +12786,25 @@ const routingRuleSchema = zod_1.z.object({
12763
12786
  });
12764
12787
  const domainConfigSchema = zod_1.z.object({
12765
12788
  Refer: zod_1.z.object({
12766
- Switch: zod_1.z.string().describe('Referer 防盗链开关,例如 on/off。'),
12789
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('Referer 防盗链开关:on=开启,off=关闭。'),
12767
12790
  RefererRules: zod_1.z.array(zod_1.z.object({
12768
- RefererType: zod_1.z.string().describe('Referer 规则类型。'),
12791
+ RefererType: zod_1.z.enum(HOSTING_REFERER_TYPES).describe('Referer 规则类型:blacklist=黑名单,whitelist=白名单。'),
12769
12792
  Referers: zod_1.z.array(zod_1.z.string()).describe('Referer 规则值列表。'),
12770
12793
  AllowEmpty: zod_1.z.boolean().describe('是否允许空 Referer。'),
12771
12794
  })).optional().describe('Referer 规则列表。'),
12772
12795
  }).optional().describe('Referer 防盗链配置。'),
12773
12796
  Cache: zod_1.z.array(zod_1.z.object({
12774
- RuleType: zod_1.z.string().describe('缓存规则类型,例如 fileType/path。'),
12797
+ RuleType: zod_1.z.enum(HOSTING_CACHE_RULE_TYPES).describe('缓存规则类型:fileType=文件类型,path=路径。'),
12775
12798
  RuleValue: zod_1.z.string().describe('规则匹配值。'),
12776
12799
  CacheTtl: zod_1.z.number().describe('缓存 TTL,单位秒。'),
12777
12800
  })).optional().describe('CDN 缓存规则列表。'),
12778
12801
  IpFilter: zod_1.z.object({
12779
- Switch: zod_1.z.string().describe('IP 访问控制开关,例如 on/off。'),
12780
- FilterType: zod_1.z.string().optional().describe('过滤类型,例如 blacklist/whitelist。'),
12802
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('IP 访问控制开关:on=开启,off=关闭。'),
12803
+ FilterType: zod_1.z.enum(HOSTING_IP_FILTER_TYPES).optional().describe('过滤类型:blacklist=黑名单,whitelist=白名单。'),
12781
12804
  Filters: zod_1.z.array(zod_1.z.string()).optional().describe('IP 规则列表。'),
12782
12805
  }).optional().describe('IP 访问控制配置。'),
12783
12806
  IpFreqLimit: zod_1.z.object({
12784
- Switch: zod_1.z.string().describe('IP 频控开关,例如 on/off。'),
12807
+ Switch: zod_1.z.enum(HOSTING_CDN_SWITCH_VALUES).describe('IP 频控开关:on=开启,off=关闭。'),
12785
12808
  Qps: zod_1.z.number().optional().describe('每个 IP 的 QPS 上限。'),
12786
12809
  }).optional().describe('IP 频控配置。'),
12787
12810
  });
@@ -13092,7 +13115,7 @@ function registerHostingTools(server) {
13092
13115
  const cloudBaseOptions = server.cloudBaseOptions;
13093
13116
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
13094
13117
  server.registerTool('queryHosting', {
13095
- title: '查询静态托管',
13118
+ title: '查询 CloudBase 静态托管',
13096
13119
  description: '查询 CloudBase 静态托管的只读信息。适合 AI 先做发现再决定下一步:action=websiteConfig 查询首页/错误页/路由规则与站点域名信息;action=status 查询托管服务状态;action=findFiles 按前缀查找文件;action=listFiles 列出全部托管文件;action=domainStatus 查询自定义域名的当前状态与配置。该工具不会产生任何副作用。',
13097
13120
  inputSchema: queryHostingInputSchema,
13098
13121
  annotations: {
@@ -13231,7 +13254,7 @@ function registerHostingTools(server) {
13231
13254
  }
13232
13255
  });
13233
13256
  server.registerTool('manageHosting', {
13234
- title: '管理静态托管',
13257
+ title: '管理 CloudBase 静态托管',
13235
13258
  description: '管理 CloudBase 静态托管的变更操作。action=upload 上传本地构建产物;action=delete 删除托管文件或目录(必须 confirm=true);action=setWebsiteDocument 设置首页/错误页/路由规则;action=enableService 开通静态托管;action=bindDomain / unbindDomain / updateDomain 管理自定义域名;action=downloadFile / downloadDirectory 下载托管内容到本地。若任务只是查看配置、文件或域名状态,请改用 queryHosting。',
13236
13259
  inputSchema: manageHostingInputSchema,
13237
13260
  annotations: {
@@ -14578,8 +14601,8 @@ function registerAgentTools(server) {
14578
14601
  const cloudBaseOptions = server.cloudBaseOptions;
14579
14602
  const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
14580
14603
  server.registerTool?.("queryAgents", {
14581
- title: "查询 Agent",
14582
- description: "Agent 域统一只读入口。支持列表、详情与日志查询。",
14604
+ title: "查询 CloudBase Agent",
14605
+ description: "CloudBase Agent 域统一只读入口。支持列表、详情与日志查询。",
14583
14606
  inputSchema: {
14584
14607
  action: zod_1.z.enum(QUERY_AGENT_ACTIONS),
14585
14608
  agentId: zod_1.z.string().optional(),
@@ -14641,8 +14664,8 @@ function registerAgentTools(server) {
14641
14664
  }
14642
14665
  });
14643
14666
  server.registerTool?.("manageAgents", {
14644
- title: "管理 Agent",
14645
- description: "Agent 域统一写入口。支持创建、更新和删除远端 Agent。",
14667
+ title: "管理 CloudBase Agent",
14668
+ description: "CloudBase Agent 域统一写入口。支持创建、更新和删除远端 Agent。",
14646
14669
  inputSchema: {
14647
14670
  action: zod_1.z.enum(MANAGE_AGENT_ACTIONS),
14648
14671
  agentId: zod_1.z.string().optional(),
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@cloudbase/cloudbase-mcp",
3
- "version": "2.20.0",
3
+ "version": "2.20.2",
4
+ "packageManager": "pnpm@10.8.0",
4
5
  "description": "腾讯云开发 MCP Server,通过AI提示词和MCP协议+云开发,让开发更智能、更高效,当你在Cursor/ VSCode GitHub Copilot/WinSurf/CodeBuddy/Augment Code/Claude Code等AI编程工具里写代码时,它能自动帮你生成可直接部署的前后端应用+小程序,并一键发布到腾讯云开发 CloudBase。",
5
6
  "main": "./dist/index.cjs",
6
7
  "module": "./dist/index.js",