@cloudbase/cloudbase-mcp 2.3.1 → 2.4.0-alpha.0
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/cli.cjs +553 -57
- package/dist/index.cjs +553 -57
- package/dist/index.js +136 -22
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -895,6 +895,7 @@ const fs_1 = __importDefault(__webpack_require__(421));
|
|
|
895
895
|
const os_1 = __importDefault(__webpack_require__(116));
|
|
896
896
|
const path_1 = __importDefault(__webpack_require__(521));
|
|
897
897
|
const winston_1 = __importDefault(__webpack_require__(322));
|
|
898
|
+
const cloud_mode_js_1 = __webpack_require__(684);
|
|
898
899
|
// Use require for winston-daily-rotate-file to avoid webpack bundling issues
|
|
899
900
|
// Handle both CommonJS and ES module exports
|
|
900
901
|
const DailyRotateFileModule = __webpack_require__(259);
|
|
@@ -946,16 +947,18 @@ if (shouldUseConsole()) {
|
|
|
946
947
|
stderrLevels: ['error', 'warn', 'info', 'debug'], // All logs go to stderr
|
|
947
948
|
}));
|
|
948
949
|
}
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
950
|
+
if (!(0, cloud_mode_js_1.isCloudMode)()) {
|
|
951
|
+
// File transport with daily rotation
|
|
952
|
+
transports.push(new DailyRotateFile({
|
|
953
|
+
dirname: logDir,
|
|
954
|
+
filename: 'cloudbase-mcp-%DATE%.log',
|
|
955
|
+
datePattern: 'YYYY-MM-DD',
|
|
956
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DDTHH:mm:ss.SSSZ' }), logFormat),
|
|
957
|
+
maxFiles: '30d', // Keep logs for 30 days
|
|
958
|
+
maxSize: '20m', // Max file size before rotation
|
|
959
|
+
zippedArchive: false, // Don't compress old logs
|
|
960
|
+
}));
|
|
961
|
+
}
|
|
959
962
|
// Create winston logger instance
|
|
960
963
|
const logger = winston_1.default.createLogger({
|
|
961
964
|
level: getLogLevel(),
|
|
@@ -1577,6 +1580,7 @@ function registerDataModelTools(server) {
|
|
|
1577
1580
|
Name: name,
|
|
1578
1581
|
},
|
|
1579
1582
|
});
|
|
1583
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
1580
1584
|
// 只保留基础字段,过滤掉冗余信息,并简化Schema
|
|
1581
1585
|
let simplifiedSchema = null;
|
|
1582
1586
|
// 解析并简化Schema
|
|
@@ -1715,6 +1719,7 @@ function registerDataModelTools(server) {
|
|
|
1715
1719
|
Action: "DescribeDataSourceList",
|
|
1716
1720
|
Param: listParams,
|
|
1717
1721
|
});
|
|
1722
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
1718
1723
|
const models = result.Data?.Rows || [];
|
|
1719
1724
|
// 只保留基础字段,list操作不返回Schema
|
|
1720
1725
|
const simplifiedModels = models.map((model) => ({
|
|
@@ -1751,6 +1756,7 @@ function registerDataModelTools(server) {
|
|
|
1751
1756
|
Name: name,
|
|
1752
1757
|
},
|
|
1753
1758
|
});
|
|
1759
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
1754
1760
|
if (!result.Data) {
|
|
1755
1761
|
throw new Error(`数据模型 ${name} 不存在`);
|
|
1756
1762
|
}
|
|
@@ -1955,6 +1961,7 @@ classDiagram
|
|
|
1955
1961
|
EnvId: currentEnvId,
|
|
1956
1962
|
},
|
|
1957
1963
|
});
|
|
1964
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
1958
1965
|
const taskId = result.Data?.TaskId;
|
|
1959
1966
|
if (!taskId) {
|
|
1960
1967
|
return {
|
|
@@ -1985,6 +1992,7 @@ classDiagram
|
|
|
1985
1992
|
TaskId: taskId,
|
|
1986
1993
|
},
|
|
1987
1994
|
});
|
|
1995
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, statusResult);
|
|
1988
1996
|
status = statusResult.Data?.Status || "init";
|
|
1989
1997
|
}
|
|
1990
1998
|
// 返回最终结果
|
|
@@ -3222,6 +3230,7 @@ function registerEnvTools(server) {
|
|
|
3222
3230
|
Channels: ['dcloud', 'iotenable', 'tem', 'scene_module'] // Filter special channels
|
|
3223
3231
|
}
|
|
3224
3232
|
});
|
|
3233
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3225
3234
|
// Transform response format to match original listEnvs() format
|
|
3226
3235
|
if (result && result.EnvList) {
|
|
3227
3236
|
result = { EnvList: result.EnvList };
|
|
@@ -3233,6 +3242,7 @@ function registerEnvTools(server) {
|
|
|
3233
3242
|
// Fallback to original method if format is unexpected
|
|
3234
3243
|
(0, logger_js_1.debug)('Unexpected response format, falling back to listEnvs()');
|
|
3235
3244
|
result = await cloudbaseList.env.listEnvs();
|
|
3245
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3236
3246
|
}
|
|
3237
3247
|
}
|
|
3238
3248
|
catch (error) {
|
|
@@ -3241,10 +3251,12 @@ function registerEnvTools(server) {
|
|
|
3241
3251
|
try {
|
|
3242
3252
|
const cloudbaseList = await (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions, requireEnvId: true });
|
|
3243
3253
|
result = await cloudbaseList.env.listEnvs();
|
|
3254
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3244
3255
|
}
|
|
3245
3256
|
catch (fallbackError) {
|
|
3246
3257
|
(0, logger_js_1.debug)('降级到 listEnvs() 也失败:', fallbackError);
|
|
3247
|
-
return {
|
|
3258
|
+
return {
|
|
3259
|
+
content: [{ type: "text", text: "获取环境列表时出错: " + (fallbackError instanceof Error ? fallbackError.message : String(fallbackError)) }]
|
|
3248
3260
|
};
|
|
3249
3261
|
}
|
|
3250
3262
|
}
|
|
@@ -3252,14 +3264,17 @@ function registerEnvTools(server) {
|
|
|
3252
3264
|
case "info":
|
|
3253
3265
|
const cloudbaseInfo = await getManager();
|
|
3254
3266
|
result = await cloudbaseInfo.env.getEnvInfo();
|
|
3267
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3255
3268
|
break;
|
|
3256
3269
|
case "domains":
|
|
3257
3270
|
const cloudbaseDomains = await getManager();
|
|
3258
3271
|
result = await cloudbaseDomains.env.getEnvAuthDomains();
|
|
3272
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3259
3273
|
break;
|
|
3260
3274
|
case "hosting":
|
|
3261
3275
|
const cloudbaseHosting = await getManager();
|
|
3262
3276
|
result = await cloudbaseHosting.hosting.getWebsiteConfig();
|
|
3277
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3263
3278
|
break;
|
|
3264
3279
|
default:
|
|
3265
3280
|
throw new Error(`不支持的查询类型: ${action}`);
|
|
@@ -3317,9 +3332,11 @@ function registerEnvTools(server) {
|
|
|
3317
3332
|
switch (action) {
|
|
3318
3333
|
case "create":
|
|
3319
3334
|
result = await cloudbase.env.createEnvDomain(domains);
|
|
3335
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3320
3336
|
break;
|
|
3321
3337
|
case "delete":
|
|
3322
3338
|
result = await cloudbase.env.deleteEnvDomain(domains);
|
|
3339
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3323
3340
|
break;
|
|
3324
3341
|
default:
|
|
3325
3342
|
throw new Error(`不支持的操作类型: ${action}`);
|
|
@@ -3399,8 +3416,10 @@ function registerHostingTools(server) {
|
|
|
3399
3416
|
files,
|
|
3400
3417
|
ignore
|
|
3401
3418
|
});
|
|
3419
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3402
3420
|
// 获取环境信息
|
|
3403
3421
|
const envInfo = await cloudbase.env.getEnvInfo();
|
|
3422
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, envInfo);
|
|
3404
3423
|
const staticDomain = envInfo.EnvInfo?.StaticStorages?.[0]?.StaticDomain;
|
|
3405
3424
|
const accessUrl = staticDomain ? `https://${staticDomain}/${cloudPath || ''}` : "";
|
|
3406
3425
|
// Send deployment notification to CodeBuddy IDE
|
|
@@ -3474,6 +3493,7 @@ function registerHostingTools(server) {
|
|
|
3474
3493
|
cloudPath,
|
|
3475
3494
|
isDir
|
|
3476
3495
|
});
|
|
3496
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3477
3497
|
return {
|
|
3478
3498
|
content: [
|
|
3479
3499
|
{
|
|
@@ -3504,6 +3524,7 @@ function registerHostingTools(server) {
|
|
|
3504
3524
|
marker,
|
|
3505
3525
|
maxKeys
|
|
3506
3526
|
});
|
|
3527
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3507
3528
|
return {
|
|
3508
3529
|
content: [
|
|
3509
3530
|
{
|
|
@@ -3569,6 +3590,7 @@ function registerHostingTools(server) {
|
|
|
3569
3590
|
domain,
|
|
3570
3591
|
certId
|
|
3571
3592
|
});
|
|
3593
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3572
3594
|
break;
|
|
3573
3595
|
case "delete":
|
|
3574
3596
|
if (!domain) {
|
|
@@ -3577,6 +3599,7 @@ function registerHostingTools(server) {
|
|
|
3577
3599
|
result = await cloudbase.hosting.deleteHostingDomain({
|
|
3578
3600
|
domain
|
|
3579
3601
|
});
|
|
3602
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3580
3603
|
break;
|
|
3581
3604
|
case "check":
|
|
3582
3605
|
if (!domains || domains.length === 0) {
|
|
@@ -3585,6 +3608,7 @@ function registerHostingTools(server) {
|
|
|
3585
3608
|
result = await cloudbase.hosting.tcbCheckResource({
|
|
3586
3609
|
domains
|
|
3587
3610
|
});
|
|
3611
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3588
3612
|
break;
|
|
3589
3613
|
case "modify":
|
|
3590
3614
|
if (!domain || domainId === undefined || !domainConfig) {
|
|
@@ -3595,6 +3619,7 @@ function registerHostingTools(server) {
|
|
|
3595
3619
|
domainId,
|
|
3596
3620
|
domainConfig
|
|
3597
3621
|
});
|
|
3622
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3598
3623
|
break;
|
|
3599
3624
|
default:
|
|
3600
3625
|
throw new Error(`不支持的操作类型: ${action}`);
|
|
@@ -3688,6 +3713,7 @@ function registerGatewayTools(server) {
|
|
|
3688
3713
|
name,
|
|
3689
3714
|
path
|
|
3690
3715
|
});
|
|
3716
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
3691
3717
|
return {
|
|
3692
3718
|
content: [
|
|
3693
3719
|
{
|
|
@@ -6273,11 +6299,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6273
6299
|
};
|
|
6274
6300
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
6275
6301
|
exports.wrapServerWithTelemetry = wrapServerWithTelemetry;
|
|
6276
|
-
const
|
|
6277
|
-
const logger_js_1 = __webpack_require__(39);
|
|
6302
|
+
const os_1 = __importDefault(__webpack_require__(116));
|
|
6278
6303
|
const cloudbase_manager_js_1 = __webpack_require__(431);
|
|
6279
6304
|
const cloud_mode_js_1 = __webpack_require__(684);
|
|
6280
|
-
const
|
|
6305
|
+
const logger_js_1 = __webpack_require__(39);
|
|
6306
|
+
const telemetry_js_1 = __webpack_require__(880);
|
|
6281
6307
|
/**
|
|
6282
6308
|
* 生成 GitHub Issue 创建链接
|
|
6283
6309
|
* @param toolName 工具名称
|
|
@@ -6318,7 +6344,7 @@ ${envIdSection}
|
|
|
6318
6344
|
## 环境信息
|
|
6319
6345
|
- 操作系统: ${os_1.default.type()} ${os_1.default.release()}
|
|
6320
6346
|
- Node.js版本: ${process.version}
|
|
6321
|
-
- MCP 版本:${process.env.npm_package_version || "2.
|
|
6347
|
+
- MCP 版本:${process.env.npm_package_version || "2.4.0-alpha.0" || 0}
|
|
6322
6348
|
- 系统架构: ${os_1.default.arch()}
|
|
6323
6349
|
- 时间: ${new Date().toISOString()}
|
|
6324
6350
|
- 请求ID: ${requestId}
|
|
@@ -6356,10 +6382,13 @@ function createWrappedHandler(name, handler, server) {
|
|
|
6356
6382
|
let requestId;
|
|
6357
6383
|
try {
|
|
6358
6384
|
(0, logger_js_1.debug)(`开始执行工具: ${name}`, { args: sanitizeArgs(args) });
|
|
6385
|
+
server.logger?.({ type: 'beforeToolCall', toolName: name, args: sanitizeArgs(args) });
|
|
6359
6386
|
// 执行原始处理函数
|
|
6360
6387
|
const result = await handler(args);
|
|
6361
6388
|
success = true;
|
|
6362
|
-
|
|
6389
|
+
const duration = Date.now() - startTime;
|
|
6390
|
+
(0, logger_js_1.debug)(`工具执行成功: ${name}`, { duration });
|
|
6391
|
+
server.logger?.({ type: 'afterToolCall', toolName: name, args: sanitizeArgs(args), result: result, duration });
|
|
6363
6392
|
return result;
|
|
6364
6393
|
}
|
|
6365
6394
|
catch (error) {
|
|
@@ -6370,6 +6399,7 @@ function createWrappedHandler(name, handler, server) {
|
|
|
6370
6399
|
error: errorMessage,
|
|
6371
6400
|
duration: Date.now() - startTime
|
|
6372
6401
|
});
|
|
6402
|
+
server.logger?.({ type: 'errorToolCall', toolName: name, args: sanitizeArgs(args), message: errorMessage, duration: Date.now() - startTime });
|
|
6373
6403
|
// 生成 GitHub Issue 创建链接
|
|
6374
6404
|
const issueLink = await generateGitHubIssueLink(name, errorMessage, args, server.cloudBaseOptions, {
|
|
6375
6405
|
requestId: (typeof error === 'object' && error && 'requestId' in error) ? error.requestId : '',
|
|
@@ -6513,6 +6543,7 @@ function registerSQLDatabaseTools(server) {
|
|
|
6513
6543
|
},
|
|
6514
6544
|
},
|
|
6515
6545
|
});
|
|
6546
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
6516
6547
|
return {
|
|
6517
6548
|
content: [
|
|
6518
6549
|
{
|
|
@@ -6576,6 +6607,7 @@ function registerSQLDatabaseTools(server) {
|
|
|
6576
6607
|
},
|
|
6577
6608
|
},
|
|
6578
6609
|
});
|
|
6610
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
6579
6611
|
return {
|
|
6580
6612
|
content: [
|
|
6581
6613
|
{
|
|
@@ -6729,7 +6761,7 @@ function parseEnabledPlugins() {
|
|
|
6729
6761
|
* await server.connect(transport);
|
|
6730
6762
|
*/
|
|
6731
6763
|
async function createCloudBaseMcpServer(options) {
|
|
6732
|
-
const { name = "cloudbase-mcp", version = "1.0.0", enableTelemetry = true, cloudBaseOptions, cloudMode = false, ide, } = options ?? {};
|
|
6764
|
+
const { name = "cloudbase-mcp", version = "1.0.0", enableTelemetry = true, cloudBaseOptions, cloudMode = false, ide, logger, } = options ?? {};
|
|
6733
6765
|
// Enable cloud mode if specified
|
|
6734
6766
|
if (cloudMode) {
|
|
6735
6767
|
(0, cloud_mode_js_1.enableCloudMode)();
|
|
@@ -6759,6 +6791,10 @@ async function createCloudBaseMcpServer(options) {
|
|
|
6759
6791
|
if (ide) {
|
|
6760
6792
|
server.ide = ide;
|
|
6761
6793
|
}
|
|
6794
|
+
// Store logger in server instance for tools to access
|
|
6795
|
+
if (logger) {
|
|
6796
|
+
server.logger = logger;
|
|
6797
|
+
}
|
|
6762
6798
|
// Enable telemetry if requested
|
|
6763
6799
|
if (enableTelemetry) {
|
|
6764
6800
|
(0, tool_wrapper_js_1.wrapServerWithTelemetry)(server);
|
|
@@ -6806,6 +6842,8 @@ exports.getEnvId = getEnvId;
|
|
|
6806
6842
|
exports.resetCloudBaseManagerCache = resetCloudBaseManagerCache;
|
|
6807
6843
|
exports.getCloudBaseManager = getCloudBaseManager;
|
|
6808
6844
|
exports.createCloudBaseManagerWithOptions = createCloudBaseManagerWithOptions;
|
|
6845
|
+
exports.extractRequestId = extractRequestId;
|
|
6846
|
+
exports.logCloudBaseResult = logCloudBaseResult;
|
|
6809
6847
|
const manager_node_1 = __importDefault(__webpack_require__(665));
|
|
6810
6848
|
const auth_js_1 = __webpack_require__(291);
|
|
6811
6849
|
const interactive_js_1 = __webpack_require__(461);
|
|
@@ -6968,6 +7006,39 @@ function createCloudBaseManagerWithOptions(cloudBaseOptions) {
|
|
|
6968
7006
|
});
|
|
6969
7007
|
return manager;
|
|
6970
7008
|
}
|
|
7009
|
+
/**
|
|
7010
|
+
* Extract RequestId from result object
|
|
7011
|
+
*/
|
|
7012
|
+
function extractRequestId(result) {
|
|
7013
|
+
if (!result || typeof result !== 'object') {
|
|
7014
|
+
return undefined;
|
|
7015
|
+
}
|
|
7016
|
+
// Try common RequestId field names
|
|
7017
|
+
if ('RequestId' in result && result.RequestId) {
|
|
7018
|
+
return String(result.RequestId);
|
|
7019
|
+
}
|
|
7020
|
+
if ('requestId' in result && result.requestId) {
|
|
7021
|
+
return String(result.requestId);
|
|
7022
|
+
}
|
|
7023
|
+
if ('request_id' in result && result.request_id) {
|
|
7024
|
+
return String(result.request_id);
|
|
7025
|
+
}
|
|
7026
|
+
return undefined;
|
|
7027
|
+
}
|
|
7028
|
+
/**
|
|
7029
|
+
* Log CloudBase manager call result with RequestId
|
|
7030
|
+
*/
|
|
7031
|
+
function logCloudBaseResult(logger, result) {
|
|
7032
|
+
if (!logger) {
|
|
7033
|
+
return;
|
|
7034
|
+
}
|
|
7035
|
+
const requestId = extractRequestId(result);
|
|
7036
|
+
logger({
|
|
7037
|
+
type: 'capiResult',
|
|
7038
|
+
requestId,
|
|
7039
|
+
result,
|
|
7040
|
+
});
|
|
7041
|
+
}
|
|
6971
7042
|
|
|
6972
7043
|
|
|
6973
7044
|
/***/ }),
|
|
@@ -7094,6 +7165,7 @@ async function _promptAndSetEnvironmentId(autoSelectSingle, server) {
|
|
|
7094
7165
|
Channels: ['dcloud', 'iotenable', 'tem', 'scene_module'] // Filter special channels
|
|
7095
7166
|
}
|
|
7096
7167
|
});
|
|
7168
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server?.logger, envResult);
|
|
7097
7169
|
// Transform response format to match original listEnvs() format
|
|
7098
7170
|
if (envResult && envResult.EnvList) {
|
|
7099
7171
|
envResult = { EnvList: envResult.EnvList };
|
|
@@ -7105,6 +7177,7 @@ async function _promptAndSetEnvironmentId(autoSelectSingle, server) {
|
|
|
7105
7177
|
// Fallback to original method if format is unexpected
|
|
7106
7178
|
(0, logger_js_1.debug)('Unexpected response format, falling back to listEnvs()');
|
|
7107
7179
|
envResult = await cloudbase.env.listEnvs();
|
|
7180
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server?.logger, envResult);
|
|
7108
7181
|
}
|
|
7109
7182
|
}
|
|
7110
7183
|
catch (error) {
|
|
@@ -7112,6 +7185,7 @@ async function _promptAndSetEnvironmentId(autoSelectSingle, server) {
|
|
|
7112
7185
|
// Fallback to original method on error
|
|
7113
7186
|
try {
|
|
7114
7187
|
envResult = await cloudbase.env.listEnvs();
|
|
7188
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server?.logger, envResult);
|
|
7115
7189
|
}
|
|
7116
7190
|
catch (fallbackError) {
|
|
7117
7191
|
(0, logger_js_1.debug)('降级到 listEnvs() 也失败:', fallbackError);
|
|
@@ -7261,6 +7335,7 @@ const IDE_TYPES = [
|
|
|
7261
7335
|
"qoder", // Qoder AI编辑器
|
|
7262
7336
|
"antigravity", // Google Antigravity AI编辑器
|
|
7263
7337
|
"vscode", // Visual Studio Code
|
|
7338
|
+
"kiro", // Kiro AI编辑器
|
|
7264
7339
|
];
|
|
7265
7340
|
// IDE到文件的映射关系
|
|
7266
7341
|
// 注意:以 "/" 结尾的路径表示目录,会包含该目录下的所有文件
|
|
@@ -7294,6 +7369,7 @@ const IDE_FILE_MAPPINGS = {
|
|
|
7294
7369
|
qoder: [".qoder/rules/"],
|
|
7295
7370
|
antigravity: [".agent/rules/"],
|
|
7296
7371
|
vscode: [".vscode/mcp.json", ".vscode/settings.json"],
|
|
7372
|
+
kiro: [".kiro/settings/mcp.json", ".kiro/steering/"],
|
|
7297
7373
|
};
|
|
7298
7374
|
// 所有IDE配置文件的完整列表 - 通过IDE_FILE_MAPPINGS计算得出
|
|
7299
7375
|
const ALL_IDE_FILES = Array.from(new Set(Object.values(IDE_FILE_MAPPINGS).flat()));
|
|
@@ -7320,6 +7396,7 @@ const IDE_DESCRIPTIONS = {
|
|
|
7320
7396
|
qoder: "Qoder AI编辑器",
|
|
7321
7397
|
antigravity: "Google Antigravity AI编辑器",
|
|
7322
7398
|
vscode: "Visual Studio Code",
|
|
7399
|
+
kiro: "Kiro AI编辑器",
|
|
7323
7400
|
};
|
|
7324
7401
|
// INTEGRATION_IDE 环境变量值到 IDE 类型的映射
|
|
7325
7402
|
const INTEGRATION_IDE_MAPPING = {
|
|
@@ -7343,6 +7420,7 @@ const INTEGRATION_IDE_MAPPING = {
|
|
|
7343
7420
|
Qoder: "qoder",
|
|
7344
7421
|
Antigravity: "antigravity",
|
|
7345
7422
|
VSCode: "vscode",
|
|
7423
|
+
Kiro: "kiro",
|
|
7346
7424
|
};
|
|
7347
7425
|
// 根据 INTEGRATION_IDE 环境变量获取默认 IDE 类型
|
|
7348
7426
|
function getDefaultIDEFromEnv() {
|
|
@@ -7565,7 +7643,7 @@ function registerSetupTools(server) {
|
|
|
7565
7643
|
title: "下载项目模板",
|
|
7566
7644
|
description: `自动下载并部署CloudBase项目模板。⚠️ **MANDATORY FOR NEW PROJECTS** ⚠️
|
|
7567
7645
|
|
|
7568
|
-
**CRITICAL**: This tool MUST be called FIRST when starting a new project.\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- 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\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.
|
|
7646
|
+
**CRITICAL**: This tool MUST be called FIRST when starting a new project.\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- 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\n特别说明:\n- rules 模板会自动包含当前 mcp 版本号信息(版本号:${ true ? "2.4.0-alpha.0" : 0}),便于后续维护和版本追踪\n- 下载 rules 模板时,如果项目中已存在 README.md 文件,系统会自动保护该文件不被覆盖(除非设置 overwrite=true)`,
|
|
7569
7647
|
inputSchema: {
|
|
7570
7648
|
template: zod_1.z
|
|
7571
7649
|
.enum(["react", "vue", "miniprogram", "uniapp", "rules"])
|
|
@@ -7945,6 +8023,7 @@ function registerInviteCodeTools(server) {
|
|
|
7945
8023
|
Action: 'ActivateInviteCode',
|
|
7946
8024
|
Param: { InviteCode, EnvId }
|
|
7947
8025
|
});
|
|
8026
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
7948
8027
|
return {
|
|
7949
8028
|
content: [
|
|
7950
8029
|
{
|
|
@@ -8348,6 +8427,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8348
8427
|
EnvId: envId,
|
|
8349
8428
|
},
|
|
8350
8429
|
});
|
|
8430
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8351
8431
|
}
|
|
8352
8432
|
else if (resourceType === "function") {
|
|
8353
8433
|
// 查询云函数安全规则
|
|
@@ -8358,6 +8438,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8358
8438
|
EnvId: envId,
|
|
8359
8439
|
},
|
|
8360
8440
|
});
|
|
8441
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8361
8442
|
}
|
|
8362
8443
|
else if (resourceType === "storage") {
|
|
8363
8444
|
// 查询存储安全规则
|
|
@@ -8368,6 +8449,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8368
8449
|
EnvId: envId,
|
|
8369
8450
|
},
|
|
8370
8451
|
});
|
|
8452
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8371
8453
|
}
|
|
8372
8454
|
else if (resourceType === "sqlDatabase") {
|
|
8373
8455
|
// TODO: 考虑是否有支持指定其他 instance、schema 的需求
|
|
@@ -8383,6 +8465,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8383
8465
|
RoleIdentityList: ["allUser"],
|
|
8384
8466
|
},
|
|
8385
8467
|
});
|
|
8468
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8386
8469
|
}
|
|
8387
8470
|
else {
|
|
8388
8471
|
throw new Error(`不支持的资源类型: ${resourceType}`);
|
|
@@ -8459,6 +8542,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8459
8542
|
Rule: rule,
|
|
8460
8543
|
},
|
|
8461
8544
|
});
|
|
8545
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8462
8546
|
}
|
|
8463
8547
|
else {
|
|
8464
8548
|
result = await cloudbase.commonService().call({
|
|
@@ -8469,6 +8553,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8469
8553
|
AclTag: aclTag,
|
|
8470
8554
|
},
|
|
8471
8555
|
});
|
|
8556
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8472
8557
|
}
|
|
8473
8558
|
}
|
|
8474
8559
|
else if (resourceType === "function") {
|
|
@@ -8485,6 +8570,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8485
8570
|
Rule: rule,
|
|
8486
8571
|
},
|
|
8487
8572
|
});
|
|
8573
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8488
8574
|
}
|
|
8489
8575
|
else if (resourceType === "storage") {
|
|
8490
8576
|
if (aclTag === "CUSTOM") {
|
|
@@ -8499,6 +8585,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8499
8585
|
Rule: rule,
|
|
8500
8586
|
},
|
|
8501
8587
|
});
|
|
8588
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8502
8589
|
}
|
|
8503
8590
|
else {
|
|
8504
8591
|
result = await cloudbase.commonService().call({
|
|
@@ -8509,6 +8596,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8509
8596
|
AclTag: aclTag,
|
|
8510
8597
|
},
|
|
8511
8598
|
});
|
|
8599
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8512
8600
|
}
|
|
8513
8601
|
}
|
|
8514
8602
|
else if (resourceType === "sqlDatabase") {
|
|
@@ -8541,6 +8629,7 @@ function registerSecurityRuleTools(server) {
|
|
|
8541
8629
|
PolicyList: policyList,
|
|
8542
8630
|
},
|
|
8543
8631
|
});
|
|
8632
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8544
8633
|
function getRowPermission(policy) {
|
|
8545
8634
|
return {
|
|
8546
8635
|
READONLY: [
|
|
@@ -8663,7 +8752,7 @@ class TelemetryReporter {
|
|
|
8663
8752
|
const nodeVersion = process.version; // Node.js版本
|
|
8664
8753
|
const arch = os_1.default.arch(); // 系统架构
|
|
8665
8754
|
// 从构建时注入的版本号获取MCP版本信息
|
|
8666
|
-
const mcpVersion = process.env.npm_package_version || "2.
|
|
8755
|
+
const mcpVersion = process.env.npm_package_version || "2.4.0-alpha.0" || 0;
|
|
8667
8756
|
return {
|
|
8668
8757
|
userAgent: `${osType} ${osRelease} ${arch} ${nodeVersion} CloudBase-MCP/${mcpVersion}`,
|
|
8669
8758
|
deviceId: this.deviceId,
|
|
@@ -8929,6 +9018,7 @@ async function getDatabaseInstanceId(getManager) {
|
|
|
8929
9018
|
function registerDatabaseTools(server) {
|
|
8930
9019
|
// 获取 cloudBaseOptions,如果没有则为 undefined
|
|
8931
9020
|
const cloudBaseOptions = server.cloudBaseOptions;
|
|
9021
|
+
const logger = server.logger;
|
|
8932
9022
|
// 创建闭包函数来获取 CloudBase Manager
|
|
8933
9023
|
const getManager = () => (0, cloudbase_manager_js_1.getCloudBaseManager)({ cloudBaseOptions });
|
|
8934
9024
|
// readNoSqlDatabaseStructure
|
|
@@ -8976,6 +9066,7 @@ checkIndex: 检查索引是否存在`),
|
|
|
8976
9066
|
MgoOffset: offset,
|
|
8977
9067
|
MgoLimit: limit,
|
|
8978
9068
|
});
|
|
9069
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8979
9070
|
return {
|
|
8980
9071
|
content: [
|
|
8981
9072
|
{
|
|
@@ -8996,6 +9087,7 @@ checkIndex: 检查索引是否存在`),
|
|
|
8996
9087
|
throw new Error("检查集合时必须提供 collectionName");
|
|
8997
9088
|
}
|
|
8998
9089
|
const result = await cloudbase.database.checkCollectionExists(collectionName);
|
|
9090
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
8999
9091
|
return {
|
|
9000
9092
|
content: [
|
|
9001
9093
|
{
|
|
@@ -9017,6 +9109,7 @@ checkIndex: 检查索引是否存在`),
|
|
|
9017
9109
|
throw new Error("查看集合详情时必须提供 collectionName");
|
|
9018
9110
|
}
|
|
9019
9111
|
const result = await cloudbase.database.describeCollection(collectionName);
|
|
9112
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9020
9113
|
return {
|
|
9021
9114
|
content: [
|
|
9022
9115
|
{
|
|
@@ -9037,6 +9130,7 @@ checkIndex: 检查索引是否存在`),
|
|
|
9037
9130
|
throw new Error("获取索引列表时必须提供 collectionName");
|
|
9038
9131
|
}
|
|
9039
9132
|
const result = await cloudbase.database.describeCollection(collectionName);
|
|
9133
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9040
9134
|
return {
|
|
9041
9135
|
content: [
|
|
9042
9136
|
{
|
|
@@ -9057,6 +9151,7 @@ checkIndex: 检查索引是否存在`),
|
|
|
9057
9151
|
throw new Error("检查索引时必须提供 collectionName 和 indexName");
|
|
9058
9152
|
}
|
|
9059
9153
|
const result = await cloudbase.database.checkIndexExists(collectionName, indexName);
|
|
9154
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9060
9155
|
return {
|
|
9061
9156
|
content: [
|
|
9062
9157
|
{
|
|
@@ -9117,6 +9212,7 @@ updateCollection: 更新集合`),
|
|
|
9117
9212
|
const cloudbase = await getManager();
|
|
9118
9213
|
if (action === "createCollection") {
|
|
9119
9214
|
const result = await cloudbase.database.createCollection(collectionName);
|
|
9215
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9120
9216
|
return {
|
|
9121
9217
|
content: [
|
|
9122
9218
|
{
|
|
@@ -9136,6 +9232,7 @@ updateCollection: 更新集合`),
|
|
|
9136
9232
|
throw new Error("更新集合时必须提供 options");
|
|
9137
9233
|
}
|
|
9138
9234
|
const result = await cloudbase.database.updateCollection(collectionName, updateOptions);
|
|
9235
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9139
9236
|
return {
|
|
9140
9237
|
content: [
|
|
9141
9238
|
{
|
|
@@ -9212,6 +9309,7 @@ updateCollection: 更新集合`),
|
|
|
9212
9309
|
Tag: instanceId,
|
|
9213
9310
|
},
|
|
9214
9311
|
});
|
|
9312
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9215
9313
|
return {
|
|
9216
9314
|
content: [
|
|
9217
9315
|
{
|
|
@@ -9289,6 +9387,7 @@ deleteCollection: 删除数据`),
|
|
|
9289
9387
|
collectionName,
|
|
9290
9388
|
documents,
|
|
9291
9389
|
getManager,
|
|
9390
|
+
logger,
|
|
9292
9391
|
});
|
|
9293
9392
|
return {
|
|
9294
9393
|
content: [
|
|
@@ -9313,6 +9412,7 @@ deleteCollection: 删除数据`),
|
|
|
9313
9412
|
isMulti,
|
|
9314
9413
|
upsert,
|
|
9315
9414
|
getManager,
|
|
9415
|
+
logger,
|
|
9316
9416
|
});
|
|
9317
9417
|
return {
|
|
9318
9418
|
content: [
|
|
@@ -9332,6 +9432,7 @@ deleteCollection: 删除数据`),
|
|
|
9332
9432
|
query,
|
|
9333
9433
|
isMulti,
|
|
9334
9434
|
getManager,
|
|
9435
|
+
logger,
|
|
9335
9436
|
});
|
|
9336
9437
|
return {
|
|
9337
9438
|
content: [
|
|
@@ -9345,7 +9446,7 @@ deleteCollection: 删除数据`),
|
|
|
9345
9446
|
throw new Error(`不支持的操作类型: ${action}`);
|
|
9346
9447
|
});
|
|
9347
9448
|
}
|
|
9348
|
-
async function insertDocuments({ collectionName, documents, getManager, }) {
|
|
9449
|
+
async function insertDocuments({ collectionName, documents, getManager, logger, }) {
|
|
9349
9450
|
try {
|
|
9350
9451
|
const cloudbase = await getManager();
|
|
9351
9452
|
const instanceId = await getDatabaseInstanceId(getManager);
|
|
@@ -9359,6 +9460,7 @@ async function insertDocuments({ collectionName, documents, getManager, }) {
|
|
|
9359
9460
|
Tag: instanceId,
|
|
9360
9461
|
},
|
|
9361
9462
|
});
|
|
9463
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(logger, result);
|
|
9362
9464
|
return JSON.stringify({
|
|
9363
9465
|
success: true,
|
|
9364
9466
|
requestId: result.RequestId,
|
|
@@ -9374,7 +9476,7 @@ async function insertDocuments({ collectionName, documents, getManager, }) {
|
|
|
9374
9476
|
}, null, 2);
|
|
9375
9477
|
}
|
|
9376
9478
|
}
|
|
9377
|
-
async function updateDocuments({ collectionName, query, update, isMulti, upsert, getManager, }) {
|
|
9479
|
+
async function updateDocuments({ collectionName, query, update, isMulti, upsert, getManager, logger, }) {
|
|
9378
9480
|
try {
|
|
9379
9481
|
const cloudbase = await getManager();
|
|
9380
9482
|
const instanceId = await getDatabaseInstanceId(getManager);
|
|
@@ -9390,6 +9492,7 @@ async function updateDocuments({ collectionName, query, update, isMulti, upsert,
|
|
|
9390
9492
|
Tag: instanceId,
|
|
9391
9493
|
},
|
|
9392
9494
|
});
|
|
9495
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(logger, result);
|
|
9393
9496
|
return JSON.stringify({
|
|
9394
9497
|
success: true,
|
|
9395
9498
|
requestId: result.RequestId,
|
|
@@ -9407,7 +9510,7 @@ async function updateDocuments({ collectionName, query, update, isMulti, upsert,
|
|
|
9407
9510
|
}, null, 2);
|
|
9408
9511
|
}
|
|
9409
9512
|
}
|
|
9410
|
-
async function deleteDocuments({ collectionName, query, isMulti, getManager, }) {
|
|
9513
|
+
async function deleteDocuments({ collectionName, query, isMulti, getManager, logger, }) {
|
|
9411
9514
|
try {
|
|
9412
9515
|
const cloudbase = await getManager();
|
|
9413
9516
|
const instanceId = await getDatabaseInstanceId(getManager);
|
|
@@ -9421,6 +9524,7 @@ async function deleteDocuments({ collectionName, query, isMulti, getManager, })
|
|
|
9421
9524
|
Tag: instanceId,
|
|
9422
9525
|
},
|
|
9423
9526
|
});
|
|
9527
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(logger, result);
|
|
9424
9528
|
return JSON.stringify({
|
|
9425
9529
|
success: true,
|
|
9426
9530
|
requestId: result.RequestId,
|
|
@@ -9531,6 +9635,7 @@ function registerFunctionTools(server) {
|
|
|
9531
9635
|
const cloudbase = await getManager();
|
|
9532
9636
|
if (action === "list") {
|
|
9533
9637
|
const result = await cloudbase.functions.getFunctionList(limit, offset);
|
|
9638
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9534
9639
|
return {
|
|
9535
9640
|
content: [
|
|
9536
9641
|
{
|
|
@@ -9545,6 +9650,7 @@ function registerFunctionTools(server) {
|
|
|
9545
9650
|
throw new Error("获取函数详情时,name 参数是必需的");
|
|
9546
9651
|
}
|
|
9547
9652
|
const result = await cloudbase.functions.getFunctionDetail(name, codeSecret);
|
|
9653
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9548
9654
|
return {
|
|
9549
9655
|
content: [
|
|
9550
9656
|
{
|
|
@@ -9626,6 +9732,7 @@ function registerFunctionTools(server) {
|
|
|
9626
9732
|
functionRootPath: processedRootPath,
|
|
9627
9733
|
force
|
|
9628
9734
|
});
|
|
9735
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9629
9736
|
return {
|
|
9630
9737
|
content: [
|
|
9631
9738
|
{
|
|
@@ -9673,6 +9780,7 @@ function registerFunctionTools(server) {
|
|
|
9673
9780
|
// 使用闭包中的 cloudBaseOptions
|
|
9674
9781
|
const cloudbase = await getManager();
|
|
9675
9782
|
const result = await cloudbase.functions.updateFunctionCode(updateParams);
|
|
9783
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9676
9784
|
return {
|
|
9677
9785
|
content: [
|
|
9678
9786
|
{
|
|
@@ -9713,6 +9821,7 @@ function registerFunctionTools(server) {
|
|
|
9713
9821
|
// 使用闭包中的 cloudBaseOptions
|
|
9714
9822
|
const cloudbase = await getManager();
|
|
9715
9823
|
const result = await cloudbase.functions.updateFunctionConfig(funcParam);
|
|
9824
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9716
9825
|
return {
|
|
9717
9826
|
content: [
|
|
9718
9827
|
{
|
|
@@ -9741,6 +9850,7 @@ function registerFunctionTools(server) {
|
|
|
9741
9850
|
// 使用闭包中的 cloudBaseOptions
|
|
9742
9851
|
const cloudbase = await getManager();
|
|
9743
9852
|
const result = await cloudbase.functions.invokeFunction(name, params);
|
|
9853
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9744
9854
|
return {
|
|
9745
9855
|
content: [
|
|
9746
9856
|
{
|
|
@@ -9781,6 +9891,7 @@ function registerFunctionTools(server) {
|
|
|
9781
9891
|
}
|
|
9782
9892
|
const cloudbase = await getManager();
|
|
9783
9893
|
const result = await cloudbase.functions.getFunctionLogsV2({ name, offset, limit, startTime, endTime, requestId, qualifier });
|
|
9894
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9784
9895
|
return {
|
|
9785
9896
|
content: [
|
|
9786
9897
|
{
|
|
@@ -9818,6 +9929,7 @@ function registerFunctionTools(server) {
|
|
|
9818
9929
|
endTime,
|
|
9819
9930
|
logRequestId: requestId
|
|
9820
9931
|
});
|
|
9932
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9821
9933
|
return {
|
|
9822
9934
|
content: [
|
|
9823
9935
|
{
|
|
@@ -9856,6 +9968,7 @@ function registerFunctionTools(server) {
|
|
|
9856
9968
|
throw new Error("创建触发器时,triggers 参数是必需的");
|
|
9857
9969
|
}
|
|
9858
9970
|
const result = await cloudbase.functions.createFunctionTriggers(name, triggers);
|
|
9971
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9859
9972
|
return {
|
|
9860
9973
|
content: [
|
|
9861
9974
|
{
|
|
@@ -9870,6 +9983,7 @@ function registerFunctionTools(server) {
|
|
|
9870
9983
|
throw new Error("删除触发器时,triggerName 参数是必需的");
|
|
9871
9984
|
}
|
|
9872
9985
|
const result = await cloudbase.functions.deleteFunctionTrigger(name, triggerName);
|
|
9986
|
+
(0, cloudbase_manager_js_1.logCloudBaseResult)(server.logger, result);
|
|
9873
9987
|
return {
|
|
9874
9988
|
content: [
|
|
9875
9989
|
{
|