@cloudbase/cloudbase-mcp 1.8.4 → 1.8.6

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/README.md CHANGED
@@ -37,6 +37,8 @@
37
37
  |---|---|
38
38
  | 🤖 **AI智能开发**: AI自动生成代码和架构设计<br>☁️ **云开发集成**: 一键接入数据库、云函数、静态托管<br>⚡ **快速部署**: 几分钟内完成全栈应用上线 | **Web应用**: 现代化前端 + 静态托管<br>**微信小程序**: 云开发小程序解决方案<br>**后端服务**: 云数据库 + 无服务器函数+云托管 |
39
39
 
40
+ 📚 [快速开始](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/getting-started) | 🛠️ [IDE配置](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/ide-setup/) | 🎨 [项目模板](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/templates) | 📖 [开发指南](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/development) | 🎮 [使用案例](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/examples) | 🎓 [教程](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/tutorials) | 🔧 [MCP工具](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/mcp-tools) | ❓ [常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq)
41
+
40
42
 
41
43
  </div>
42
44
 
@@ -147,6 +149,7 @@ npx -y clear-npx-cache
147
149
  | [文心快码](https://comate.baidu.com/) | VS Code、JetBrains插件|
148
150
  | [Augment Code](https://www.augmentcode.com/) | VS Code、JetBrains 插件 |
149
151
  | [Claude Code](https://www.anthropic.com/claude-code) | 命令行工具 |
152
+ | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | 命令行工具 |
150
153
 
151
154
  <details>
152
155
  <summary><strong>🔧 Cursor 配置</strong></summary>
@@ -157,7 +160,11 @@ npx -y clear-npx-cache
157
160
 
158
161
  #### 步骤2:配置 MCP
159
162
 
160
- 如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,可以点击下方按钮安装到 Cursor 中:
163
+
164
+ > [!TIP]
165
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
166
+
167
+ 如果使用模板项目,MCP 配置已经预置完成,请点击左下角的弹出的窗口启用MCP。如果不是从模板开始,可以点击下方按钮安装到 Cursor 中:
161
168
 
162
169
  [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=CloudBase&config=eyJjb21tYW5kIjoibnB4IEBjbG91ZGJhc2UvY2xvdWRiYXNlLW1jcEBsYXRlc3QiLCJkaXNhYmxlZCI6ZmFsc2V9)
163
170
 
@@ -191,6 +198,9 @@ npx -y clear-npx-cache
191
198
 
192
199
  #### 步骤2:配置 MCP
193
200
 
201
+ > [!TIP]
202
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
203
+
194
204
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 WindSurf 的 Plugins 配置中添加:
195
205
 
196
206
  ```json
@@ -204,6 +214,9 @@ npx -y clear-npx-cache
204
214
  }
205
215
  ```
206
216
 
217
+
218
+
219
+
207
220
  #### 步骤3:切换到 Write 模式
208
221
 
209
222
  在对话中切换到 Write 模式进行智能生成。
@@ -219,7 +232,12 @@ npx -y clear-npx-cache
219
232
 
220
233
  #### 步骤2:配置 MCP
221
234
 
222
- 点开 CodeBuddy 右上角的 MCP 按钮,点击右侧的添加,在 MCP 配置中添加云开发的 MCP
235
+
236
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
237
+
238
+ 1. 可以在 点开 CodeBuddy 右上角的 MCP 按钮,在 MCP 市场中搜索 CloudBase,然后点击安装即可。
239
+
240
+ 2. 也可以手动添加,点开 CodeBuddy 右上角的 MCP 按钮,点击右侧的添加,在 MCP 配置中添加云开发的 MCP
223
241
 
224
242
  ```json
225
243
  {
@@ -232,6 +250,9 @@ npx -y clear-npx-cache
232
250
  }
233
251
  ```
234
252
 
253
+
254
+
255
+
235
256
  #### 步骤3:切换到 Craft 智能体
236
257
 
237
258
  在对话窗口中切换到 Craft 模式。建议在右侧设置中关闭确认计划功能,以获得更流畅的体验。
@@ -247,6 +268,10 @@ npx -y clear-npx-cache
247
268
 
248
269
  #### 步骤2:配置 MCP
249
270
 
271
+
272
+ > [!TIP]
273
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
274
+
250
275
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 MCP Server 配置中添加:
251
276
 
252
277
  ```json
@@ -281,6 +306,10 @@ npx -y clear-npx-cache
281
306
 
282
307
  #### 步骤2:配置 MCP
283
308
 
309
+
310
+ > [!TIP]
311
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
312
+
284
313
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 `.vscode/mcp.json` 中添加:
285
314
 
286
315
  ```json
@@ -313,7 +342,11 @@ npx -y clear-npx-cache
313
342
 
314
343
  #### 步骤2:配置 MCP
315
344
 
316
- 如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 MCP 配置中添加:
345
+
346
+ > [!TIP]
347
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
348
+
349
+ 需要在 Trae 的MCP 配置中添加:
317
350
 
318
351
  ```json
319
352
  {
@@ -341,6 +374,10 @@ npx -y clear-npx-cache
341
374
 
342
375
  #### 步骤2:配置 MCP
343
376
 
377
+
378
+ > [!TIP]
379
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
380
+
344
381
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 MCP 配置中添加:
345
382
 
346
383
  ```json
@@ -369,6 +406,10 @@ npx -y clear-npx-cache
369
406
 
370
407
  #### 步骤2:配置 MCP
371
408
 
409
+
410
+ > [!TIP]
411
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
412
+
372
413
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 MCP 配置中添加:
373
414
 
374
415
  ```json
@@ -400,6 +441,10 @@ npx -y clear-npx-cache
400
441
 
401
442
  #### 步骤2:配置 MCP
402
443
 
444
+
445
+ > [!TIP]
446
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
447
+
403
448
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在 MCP 配置中添加:
404
449
 
405
450
  ```json
@@ -435,6 +480,10 @@ npx -y clear-npx-cache
435
480
 
436
481
  #### 步骤2:配置 MCP
437
482
 
483
+
484
+ > [!TIP]
485
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
486
+
438
487
  如果使用模板项目,MCP 配置已经预置完成(内置在`.vscode/settings.json`中)。如果不是从模板开始,需要在 Augment的 MCP 配置中添加云开发 MCP,[参考文档](https://docs.augmentcode.com/setup-augment/mcp):
439
488
 
440
489
  ```json
@@ -467,6 +516,10 @@ npx -y clear-npx-cache
467
516
 
468
517
  #### 步骤2:配置 MCP
469
518
 
519
+
520
+ > [!TIP]
521
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
522
+
470
523
  如果使用模板项目,MCP 配置已经预置完成。如果不是从模板开始,需要在项目根目录创建 `.mcp.json` 文件:
471
524
 
472
525
  ```json
@@ -489,6 +542,79 @@ npx -y clear-npx-cache
489
542
 
490
543
  </details>
491
544
 
545
+ <details>
546
+ <summary><strong>🔹 Gemini CLI 配置</strong></summary>
547
+
548
+ #### 步骤1:安装 Gemini CLI
549
+
550
+ 确保安装 Node.js 18+,然后全局安装 Gemini CLI:
551
+
552
+ ```bash
553
+ npm install -g @google/gemini-cli
554
+ ```
555
+
556
+ 或直接运行:
557
+
558
+ ```bash
559
+ npx @google/gemini-cli
560
+ ```
561
+
562
+ 首次运行时,使用个人 Google 账户登录即可获得免费额度(每分钟 60 次请求,每天 1000 次请求)。
563
+
564
+ #### 步骤2:配置 MCP
565
+
566
+ > [!TIP]
567
+ > 如果安装以后工具数量一直为 0,请参考[常见问题](https://docs.cloudbase.net/ai/cloudbase-ai-toolkit/faq#mcp-%E6%98%BE%E7%A4%BA%E5%B7%A5%E5%85%B7%E6%95%B0%E9%87%8F%E4%B8%BA-0-%E6%80%8E%E4%B9%88%E5%8A%9E)
568
+
569
+
570
+ 如果使用模板项目,MCP 配置已经预置完成。
571
+
572
+ 如果不是从模板开始,可以在用户主目录(`~`)或项目目录中创建 `.gemini/settings.json` 文件:
573
+
574
+ ```json
575
+ {
576
+ "mcpServers": {
577
+ "cloudbase-mcp": {
578
+ "command": "npx",
579
+ "args": ["-y", "@cloudbase/cloudbase-mcp@latest"]
580
+ }
581
+ }
582
+ }
583
+ ```
584
+
585
+ #### 步骤3:启用 AI 规则
586
+
587
+
588
+ 模板项目根目录已经包含 `GEMINI.md` 文件,包含 CloudBase 开发规则。
589
+
590
+ 如果是现有项目,在 Gemini CLI 中对 AI 说:
591
+
592
+ ```
593
+ 在当前项目中下载云开发 AI 规则
594
+ ```
595
+
596
+ #### 步骤4:开始开发
597
+
598
+ 启动 Gemini CLI:
599
+
600
+ ```bash
601
+ gemini
602
+ ```
603
+
604
+ 然后对 AI 说:
605
+
606
+ ```
607
+ 登录云开发
608
+ ```
609
+
610
+ **常用命令:**
611
+ - `/tools` - 查看可用工具
612
+ - `/mcp` - 查看 MCP 服务器状态
613
+ - `/memory show` - 查看当前规则
614
+ - `!command` - 执行 Shell 命令
615
+
616
+ </details>
617
+
492
618
  <details>
493
619
  <summary><strong>🔄 更新 CloudBase AI ToolKit</strong></summary>
494
620
 
@@ -565,6 +691,20 @@ AI 会自动:
565
691
 
566
692
 
567
693
 
694
+ ## 📚 教程
695
+
696
+ ### 📄 文章
697
+ - [1小时开发微信小游戏《我的早餐店》——基于CloudBase AI Toolkit](https://cloud.tencent.com/developer/article/2532595)
698
+ - [AI Coding宝藏组合:Cursor + Cloudbase-AI-Toolkit 开发游戏实战](https://juejin.cn/post/7518783423277695028#comment)
699
+
700
+ ### 📱 应用项目
701
+ - [简历助手小程序](https://gitcode.com/qq_33681891/resume_template)
702
+
703
+ ### 🎥 视频教程
704
+ - [云开发CloudBase:用AI开发一款分手厨房小游戏](https://www.bilibili.com/video/BV1v5KAzwEf9/)
705
+
706
+ ---
707
+
568
708
  ## 🎯 使用案例
569
709
 
570
710
  ### 案例1:双人在线对战五子棋
package/dist/cli.cjs CHANGED
@@ -128,7 +128,7 @@ var init_logger = __esm({
128
128
  logger = new Logger({
129
129
  enabled: (process.env.MCP_DEBUG ?? "true") === "true",
130
130
  level: 0 /* DEBUG */,
131
- console: process.env.NODE_ENV === "development" || process.env.MCP_CONSOLE_LOG === "true"
131
+ console: process.env.MCP_CONSOLE_LOG === "true"
132
132
  });
133
133
  debug = (message, data) => logger.debug(message, data);
134
134
  info = (message, data) => logger.info(message, data);
@@ -177,20 +177,29 @@ var init_auth = __esm({
177
177
  });
178
178
 
179
179
  // src/interactive-server.ts
180
+ async function openUrl(url, options) {
181
+ try {
182
+ const openModule = await import("open");
183
+ const open = openModule.default || openModule;
184
+ return await open(url, options);
185
+ } catch (err) {
186
+ error("Failed to import or use open module", err);
187
+ warn(`Please manually open: ${url}`);
188
+ }
189
+ }
180
190
  function getInteractiveServer() {
181
191
  if (!interactiveServerInstance) {
182
192
  interactiveServerInstance = new InteractiveServer();
183
193
  }
184
194
  return interactiveServerInstance;
185
195
  }
186
- var import_express, import_http, import_ws, import_open, import_path2, import_url, import_meta, getFilename, __filename, __dirname, InteractiveServer, interactiveServerInstance;
196
+ var import_express, import_http, import_ws, import_path2, import_url, import_meta, getFilename, __filename, __dirname, InteractiveServer, interactiveServerInstance;
187
197
  var init_interactive_server = __esm({
188
198
  "src/interactive-server.ts"() {
189
199
  "use strict";
190
200
  import_express = __toESM(require("express"), 1);
191
201
  import_http = __toESM(require("http"), 1);
192
202
  import_ws = require("ws");
193
- import_open = __toESM(require("open"), 1);
194
203
  import_path2 = __toESM(require("path"), 1);
195
204
  import_url = require("url");
196
205
  init_logger();
@@ -202,7 +211,10 @@ var init_interactive_server = __esm({
202
211
  if (typeof globalThis.__filename === "string") {
203
212
  return globalThis.__filename;
204
213
  }
205
- return require.main?.filename || process.cwd() + "/interactive-server.js";
214
+ if (typeof require !== "undefined" && require.main && require.main.filename) {
215
+ return require.main.filename;
216
+ }
217
+ return import_path2.default.join(process.cwd(), "interactive-server.js");
206
218
  };
207
219
  __filename = getFilename();
208
220
  __dirname = import_path2.default.dirname(__filename);
@@ -438,7 +450,7 @@ var init_interactive_server = __esm({
438
450
  const url = `http://localhost:${port}/env-setup/${sessionId}`;
439
451
  info(`Opening browser: ${url}`);
440
452
  try {
441
- await (0, import_open.default)(url, { wait: false });
453
+ await openUrl(url, { wait: false });
442
454
  info("Browser opened successfully");
443
455
  } catch (browserError) {
444
456
  error("Failed to open browser", browserError);
@@ -468,7 +480,7 @@ var init_interactive_server = __esm({
468
480
  this.sessionData.delete(sessionId);
469
481
  }, 5 * 60 * 1e3);
470
482
  const url = `http://localhost:${port}/clarification/${sessionId}`;
471
- await (0, import_open.default)(url);
483
+ await openUrl(url);
472
484
  return new Promise((resolve2) => {
473
485
  this.currentResolver = resolve2;
474
486
  });
@@ -3114,10 +3126,9 @@ function registerEnvTools(server2) {
3114
3126
  "envQuery",
3115
3127
  {
3116
3128
  title: "\u73AF\u5883\u67E5\u8BE2",
3117
- description: "\u67E5\u8BE2\u4E91\u5F00\u53D1\u73AF\u5883\u76F8\u5173\u4FE1\u606F\uFF0C\u652F\u6301\u67E5\u8BE2\u73AF\u5883\u5217\u8868\u3001\u5F53\u524D\u73AF\u5883\u4FE1\u606F\u548C\u5B89\u5168\u57DF\u540D",
3129
+ description: "\u67E5\u8BE2\u4E91\u5F00\u53D1\u73AF\u5883\u76F8\u5173\u4FE1\u606F\uFF0C\u652F\u6301\u67E5\u8BE2\u73AF\u5883\u5217\u8868\u3001\u5F53\u524D\u73AF\u5883\u4FE1\u606F\u548C\u5B89\u5168\u57DF\u540D\u3002\uFF08\u539F\u5DE5\u5177\u540D\uFF1AlistEnvs/getEnvInfo/getEnvAuthDomains\uFF0C\u4E3A\u517C\u5BB9\u65E7AI\u89C4\u5219\u53EF\u7EE7\u7EED\u4F7F\u7528\u8FD9\u4E9B\u540D\u79F0\uFF09",
3118
3130
  inputSchema: {
3119
- action: import_zod2.z.enum(["list", "info", "domains"]).describe("\u67E5\u8BE2\u7C7B\u578B\uFF1Alist=\u73AF\u5883\u5217\u8868\uFF0Cinfo=\u5F53\u524D\u73AF\u5883\u4FE1\u606F\uFF0Cdomains=\u5B89\u5168\u57DF\u540D\u5217\u8868"),
3120
- confirm: import_zod2.z.literal("yes").optional().describe("\u786E\u8BA4\u64CD\u4F5C\uFF0C\u9ED8\u8BA4\u4F20 yes")
3131
+ action: import_zod2.z.enum(["list", "info", "domains"]).describe("\u67E5\u8BE2\u7C7B\u578B\uFF1Alist=\u73AF\u5883\u5217\u8868\uFF0Cinfo=\u5F53\u524D\u73AF\u5883\u4FE1\u606F\uFF0Cdomains=\u5B89\u5168\u57DF\u540D\u5217\u8868")
3121
3132
  },
3122
3133
  annotations: {
3123
3134
  readOnlyHint: true,
@@ -3164,7 +3175,7 @@ function registerEnvTools(server2) {
3164
3175
  "envDomainManagement",
3165
3176
  {
3166
3177
  title: "\u73AF\u5883\u57DF\u540D\u7BA1\u7406",
3167
- description: "\u7BA1\u7406\u4E91\u5F00\u53D1\u73AF\u5883\u7684\u5B89\u5168\u57DF\u540D\uFF0C\u652F\u6301\u6DFB\u52A0\u548C\u5220\u9664\u64CD\u4F5C",
3178
+ description: "\u7BA1\u7406\u4E91\u5F00\u53D1\u73AF\u5883\u7684\u5B89\u5168\u57DF\u540D\uFF0C\u652F\u6301\u6DFB\u52A0\u548C\u5220\u9664\u64CD\u4F5C\u3002\uFF08\u539F\u5DE5\u5177\u540D\uFF1AcreateEnvDomain/deleteEnvDomain\uFF0C\u4E3A\u517C\u5BB9\u65E7AI\u89C4\u5219\u53EF\u7EE7\u7EED\u4F7F\u7528\u8FD9\u4E9B\u540D\u79F0\uFF09",
3168
3179
  inputSchema: {
3169
3180
  action: import_zod2.z.enum(["create", "delete"]).describe("\u64CD\u4F5C\u7C7B\u578B\uFF1Acreate=\u6DFB\u52A0\u57DF\u540D\uFF0Cdelete=\u5220\u9664\u57DF\u540D"),
3170
3181
  domains: import_zod2.z.array(import_zod2.z.string()).describe("\u5B89\u5168\u57DF\u540D\u6570\u7EC4")
@@ -4008,7 +4019,7 @@ function registerDatabaseTools(server2) {
4008
4019
  "collectionQuery",
4009
4020
  {
4010
4021
  title: "\u96C6\u5408\u67E5\u8BE2",
4011
- description: "\u6570\u636E\u5E93\u96C6\u5408\u7684\u67E5\u8BE2\u64CD\u4F5C\uFF0C\u652F\u6301\u68C0\u67E5\u5B58\u5728\u6027\u3001\u67E5\u770B\u8BE6\u60C5\u548C\u5217\u8868\u67E5\u8BE2",
4022
+ description: "\u6570\u636E\u5E93\u96C6\u5408\u7684\u67E5\u8BE2\u64CD\u4F5C\uFF0C\u652F\u6301\u68C0\u67E5\u5B58\u5728\u6027\u3001\u67E5\u770B\u8BE6\u60C5\u548C\u5217\u8868\u67E5\u8BE2\u3002\uFF08\u539F\u5DE5\u5177\u540D\uFF1AcheckCollectionExists/describeCollection/listCollections\uFF0C\u4E3A\u517C\u5BB9\u65E7AI\u89C4\u5219\u53EF\u7EE7\u7EED\u4F7F\u7528\u8FD9\u4E9B\u540D\u79F0\uFF09",
4012
4023
  inputSchema: {
4013
4024
  action: import_zod4.z.enum(["check", "describe", "list"]).describe("\u64CD\u4F5C\u7C7B\u578B\uFF1Acheck=\u68C0\u67E5\u662F\u5426\u5B58\u5728\uFF0Cdescribe=\u67E5\u770B\u8BE6\u60C5\uFF0Clist=\u5217\u8868\u67E5\u8BE2"),
4014
4025
  collectionName: import_zod4.z.string().optional().describe("\u96C6\u5408\u540D\u79F0\uFF08check\u3001describe\u64CD\u4F5C\u65F6\u5FC5\u586B\uFF09"),
@@ -5631,8 +5642,15 @@ var TelemetryReporter = class {
5631
5642
  try {
5632
5643
  mcpVersion = process.env.npm_package_version || "";
5633
5644
  if (!mcpVersion) {
5634
- const __filename2 = (0, import_url3.fileURLToPath)(import_meta2.url);
5635
- const __dirname2 = (0, import_path5.dirname)(__filename2);
5645
+ let __dirname2;
5646
+ if (typeof import_meta2 !== "undefined" && import_meta2.url) {
5647
+ const __filename2 = (0, import_url3.fileURLToPath)(import_meta2.url);
5648
+ __dirname2 = (0, import_path5.dirname)(__filename2);
5649
+ } else if (typeof globalThis.__filename !== "undefined") {
5650
+ __dirname2 = (0, import_path5.dirname)(globalThis.__filename);
5651
+ } else {
5652
+ __dirname2 = process.cwd();
5653
+ }
5636
5654
  const packageJsonPath = (0, import_path5.join)(__dirname2, "../../package.json");
5637
5655
  const packageJson = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf-8"));
5638
5656
  mcpVersion = packageJson.version || "unknown";
@@ -5732,7 +5750,7 @@ var TelemetryReporter = class {
5732
5750
  A101: this.userAgent,
5733
5751
  // 运行环境信息
5734
5752
  from: "cloudbase-mcp",
5735
- xDeployEnv: process.env.NODE_ENV || "production",
5753
+ xDeployEnv: "production",
5736
5754
  ...this.additionalParams
5737
5755
  },
5738
5756
  events: [