Skip to content

Commit 320dcad

Browse files
author
CodeBuddy Attribution Bot
committed
fix(attribution): MCP 工具缺失:NoSQL 数据库回档时间查询能力 (issue_mo4ea1oa_jz44d0)
1 parent e2ca73f commit 320dcad

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

mcp/src/tools/databaseNoSQL.ts

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,80 @@ deleteCollection: 删除集合`),
900900
throw new Error(`不支持的操作类型: ${action}`);
901901
},
902902
);
903+
904+
// queryNoSqlDatabaseBackupTime - 查询 NoSQL 数据库可回档时间范围
905+
server.registerTool?.(
906+
"queryNoSqlDatabaseBackupTime",
907+
{
908+
title: "查询 NoSQL 数据库可回档时间范围",
909+
description:
910+
"查询 NoSQL 数据库(文档型数据库)的可回档时间范围,返回最早可回档时间和最晚可回档时间。适用于需要了解数据库备份恢复时间范围的场景。",
911+
inputSchema: {
912+
collectionName: z
913+
.string()
914+
.optional()
915+
.describe("集合名称(可选),如需查询特定集合的回档时间范围可传入"),
916+
instanceId: z
917+
.string()
918+
.optional()
919+
.describe("可选:显式指定数据库实例ID;未传时会自动解析并缓存"),
920+
},
921+
annotations: {
922+
readOnlyHint: true,
923+
openWorldHint: true,
924+
category: CATEGORY,
925+
},
926+
},
927+
async ({ collectionName, instanceId }) => {
928+
const cloudbase = await getManager();
929+
930+
const resolvedInstance = await resolveNoSqlInstanceId({
931+
toolName: "queryNoSqlDatabaseBackupTime",
932+
cloudbase,
933+
cloudBaseOptions,
934+
instanceIdOverride: instanceId,
935+
collectionName: collectionName || "default",
936+
});
937+
938+
const result = await cloudbase
939+
.commonService("tcb", "2018-06-08")
940+
.call({
941+
Action: "DescribeBackupTime",
942+
Param: {
943+
EnvId: cloudBaseOptions?.envId,
944+
TableName: collectionName,
945+
Tag: resolvedInstance.instanceId,
946+
},
947+
});
948+
949+
logCloudBaseResult(server.logger, result);
950+
951+
return {
952+
content: [
953+
{
954+
type: "text",
955+
text: JSON.stringify(
956+
{
957+
success: true,
958+
requestId: result?.RequestId,
959+
backupTimeRange: {
960+
earliestTime: result?.EarliestTime,
961+
latestTime: result?.LatestTime,
962+
startTime: result?.StartTime,
963+
endTime: result?.EndTime,
964+
},
965+
instanceId: resolvedInstance.instanceId,
966+
collectionName: collectionName || null,
967+
message: "获取 NoSQL 数据库可回档时间范围成功",
968+
},
969+
null,
970+
2,
971+
),
972+
},
973+
],
974+
};
975+
},
976+
);
903977
}
904978

905979
async function insertDocuments({

0 commit comments

Comments
 (0)