@cloudbase/cloudbase-mcp 1.8.1 → 1.8.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.
Files changed (63) hide show
  1. package/dist/cloudbase-manager.d.ts +10 -2
  2. package/dist/cloudbase-manager.d.ts.map +1 -1
  3. package/dist/cloudbase-manager.js +31 -2
  4. package/dist/cloudbase-manager.js.map +1 -1
  5. package/dist/index.d.ts +3 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/server.d.ts +9 -2
  10. package/dist/server.d.ts.map +1 -1
  11. package/dist/server.js +5 -2
  12. package/dist/server.js.map +1 -1
  13. package/dist/tools/database.d.ts +2 -2
  14. package/dist/tools/database.d.ts.map +1 -1
  15. package/dist/tools/database.js +232 -164
  16. package/dist/tools/database.js.map +1 -1
  17. package/dist/tools/download.d.ts +2 -2
  18. package/dist/tools/download.d.ts.map +1 -1
  19. package/dist/tools/download.js +13 -2
  20. package/dist/tools/download.js.map +1 -1
  21. package/dist/tools/env.d.ts +2 -2
  22. package/dist/tools/env.d.ts.map +1 -1
  23. package/dist/tools/env.js +135 -162
  24. package/dist/tools/env.js.map +1 -1
  25. package/dist/tools/file.d.ts +2 -2
  26. package/dist/tools/file.d.ts.map +1 -1
  27. package/dist/tools/file.js +27 -7
  28. package/dist/tools/file.js.map +1 -1
  29. package/dist/tools/functions.d.ts +2 -2
  30. package/dist/tools/functions.d.ts.map +1 -1
  31. package/dist/tools/functions.js +197 -86
  32. package/dist/tools/functions.js.map +1 -1
  33. package/dist/tools/gateway.d.ts +2 -2
  34. package/dist/tools/gateway.d.ts.map +1 -1
  35. package/dist/tools/gateway.js +19 -4
  36. package/dist/tools/gateway.js.map +1 -1
  37. package/dist/tools/hosting.d.ts +2 -2
  38. package/dist/tools/hosting.d.ts.map +1 -1
  39. package/dist/tools/hosting.js +117 -89
  40. package/dist/tools/hosting.js.map +1 -1
  41. package/dist/tools/interactive.d.ts +2 -2
  42. package/dist/tools/interactive.d.ts.map +1 -1
  43. package/dist/tools/interactive.js +19 -6
  44. package/dist/tools/interactive.js.map +1 -1
  45. package/dist/tools/rag.d.ts +2 -2
  46. package/dist/tools/rag.d.ts.map +1 -1
  47. package/dist/tools/rag.js +32 -22
  48. package/dist/tools/rag.js.map +1 -1
  49. package/dist/tools/setup.d.ts +2 -2
  50. package/dist/tools/setup.d.ts.map +1 -1
  51. package/dist/tools/setup.js +15 -4
  52. package/dist/tools/setup.js.map +1 -1
  53. package/dist/tools/storage.d.ts +2 -2
  54. package/dist/tools/storage.d.ts.map +1 -1
  55. package/dist/tools/storage.js +19 -4
  56. package/dist/tools/storage.js.map +1 -1
  57. package/dist/types.d.ts +9 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/utils/tool-wrapper.d.ts +28 -0
  60. package/dist/utils/tool-wrapper.d.ts.map +1 -1
  61. package/dist/utils/tool-wrapper.js +67 -38
  62. package/dist/utils/tool-wrapper.js.map +1 -1
  63. package/package.json +1 -1
@@ -1,12 +1,27 @@
1
1
  import { z } from "zod";
2
2
  import { getCloudBaseManager } from '../cloudbase-manager.js';
3
3
  export function registerStorageTools(server) {
4
+ // 获取 cloudBaseOptions,如果没有则为 undefined
5
+ const cloudBaseOptions = server.cloudBaseOptions;
6
+ // 创建闭包函数来获取 CloudBase Manager
7
+ const getManager = () => getCloudBaseManager({ cloudBaseOptions });
4
8
  // uploadFile - 上传文件到云存储
5
- server.tool("uploadFile", "上传文件到云存储(区别于静态网站托管,云存储更适合存储业务数据文件)", {
6
- localPath: z.string().describe("本地文件路径,建议传入绝对路径,例如 /tmp/files/data.txt"),
7
- cloudPath: z.string().describe("云端文件路径,例如 files/data.txt"),
9
+ server.registerTool?.("uploadFile", {
10
+ title: "上传文件到云存储",
11
+ description: "上传文件到云存储(区别于静态网站托管,云存储更适合存储业务数据文件)",
12
+ inputSchema: {
13
+ localPath: z.string().describe("本地文件路径,建议传入绝对路径,例如 /tmp/files/data.txt"),
14
+ cloudPath: z.string().describe("云端文件路径,例如 files/data.txt")
15
+ },
16
+ annotations: {
17
+ readOnlyHint: false,
18
+ destructiveHint: false,
19
+ idempotentHint: false,
20
+ openWorldHint: true,
21
+ category: "storage"
22
+ }
8
23
  }, async ({ localPath, cloudPath }) => {
9
- const cloudbase = await getCloudBaseManager();
24
+ const cloudbase = await getManager();
10
25
  // 上传文件
11
26
  await cloudbase.storage.uploadFile({
12
27
  localPath,
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,wBAAwB;IACxB,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oCAAoC,EACpC;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3D,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAC7C,OAAO;QACP,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,SAAS;YACT,SAAS;YACT,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC;SACF,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxD,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,IAAI,CAAC,aAAa;aAC3B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,SAAS;wBACpB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE;wBACpC,UAAU,EAAE,KAAK;qBAClB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAG7D,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,uCAAuC;IACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEjD,8BAA8B;IAC9B,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEnE,wBAAwB;IACxB,MAAM,CAAC,YAAY,EAAE,CACnB,YAAY,EACZ;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;SAC3D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,SAAS;SACpB;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAA4C,EAAE,EAAE;QAC3E,MAAM,SAAS,GAAG,MAAM,UAAU,EAAE,CAAA;QACpC,OAAO;QACP,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,SAAS;YACT,SAAS;YACT,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC;SACF,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxD,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,IAAI,CAAC,aAAa;aAC3B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,SAAS;wBACpB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE;wBACpC,UAAU,EAAE,KAAK;qBAClB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -50,4 +50,13 @@ export interface DataModel {
50
50
  createdAt?: string;
51
51
  updatedAt?: string;
52
52
  }
53
+ export interface CloudBaseOptions {
54
+ secretId?: string;
55
+ secretKey?: string;
56
+ token?: string;
57
+ envId?: string;
58
+ proxy?: string;
59
+ region?: string;
60
+ envType?: string;
61
+ }
53
62
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,UAAU,CAAC,EAAE,GAAG,CAAC;KAClB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,UAAU,CAAC,EAAE,GAAG,CAAC;KAClB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -1,4 +1,32 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * 工具包装器,为 MCP 工具添加数据上报功能
4
+ * 自动记录工具调用的成功/失败状态、执行时长等信息
5
+ */
6
+ export interface ToolAnnotations {
7
+ /** 人类可读的工具标题 */
8
+ title?: string;
9
+ /** 如果为true,表示工具不修改环境 */
10
+ readOnlyHint?: boolean;
11
+ /** 如果为true,工具可能执行破坏性更新(仅在readOnlyHint为false时有意义) */
12
+ destructiveHint?: boolean;
13
+ /** 如果为true,重复调用相同参数没有额外效果(仅在readOnlyHint为false时有意义) */
14
+ idempotentHint?: boolean;
15
+ /** 如果为true,工具可能与外部实体交互 */
16
+ openWorldHint?: boolean;
17
+ /** 工具分类,用于工具组织和管理 */
18
+ category?: string;
19
+ }
20
+ export interface ToolConfig {
21
+ /** 工具标题 */
22
+ title?: string;
23
+ /** 工具描述 */
24
+ description?: string;
25
+ /** 输入参数schema */
26
+ inputSchema?: any;
27
+ /** 工具注解 */
28
+ annotations?: ToolAnnotations;
29
+ }
2
30
  /**
3
31
  * 包装 MCP Server 的 tool 方法,添加数据上报功能
4
32
  * @param server MCP Server 实例
@@ -1 +1 @@
1
- {"version":3,"file":"tool-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/tool-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiD/D"}
1
+ {"version":3,"file":"tool-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/tool-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE;;;GAGG;AAGH,MAAM,WAAW,eAAe;IAC5B,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,UAAU;IACvB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW;IACX,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAiDD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkD/D"}
@@ -1,5 +1,44 @@
1
1
  import { reportToolCall } from './telemetry.js';
2
2
  import { debug } from './logger.js';
3
+ /**
4
+ * 创建包装后的处理函数,添加数据上报功能
5
+ */
6
+ function createWrappedHandler(name, handler) {
7
+ return async (args) => {
8
+ const startTime = Date.now();
9
+ let success = false;
10
+ let errorMessage;
11
+ try {
12
+ debug(`开始执行工具: ${name}`, { args: sanitizeArgs(args) });
13
+ // 执行原始处理函数
14
+ const result = await handler(args);
15
+ success = true;
16
+ debug(`工具执行成功: ${name}`, { duration: Date.now() - startTime });
17
+ return result;
18
+ }
19
+ catch (error) {
20
+ success = false;
21
+ errorMessage = error instanceof Error ? error.message : String(error);
22
+ debug(`工具执行失败: ${name}`, {
23
+ error: errorMessage,
24
+ duration: Date.now() - startTime
25
+ });
26
+ // 重新抛出错误,保持原有行为
27
+ throw error;
28
+ }
29
+ finally {
30
+ // 上报工具调用数据
31
+ const duration = Date.now() - startTime;
32
+ reportToolCall({
33
+ toolName: name,
34
+ success,
35
+ duration,
36
+ error: errorMessage,
37
+ inputParams: sanitizeArgs(args) // 添加入参上报
38
+ });
39
+ }
40
+ };
41
+ }
3
42
  /**
4
43
  * 包装 MCP Server 的 tool 方法,添加数据上报功能
5
44
  * @param server MCP Server 实例
@@ -7,46 +46,36 @@ import { debug } from './logger.js';
7
46
  export function wrapServerWithTelemetry(server) {
8
47
  // 保存原始的 tool 方法
9
48
  const originalTool = server.tool.bind(server);
10
- // 重写 tool 方法
11
- server.tool = function (name, description, inputSchema, handler) {
12
- // 包装处理函数
13
- const wrappedHandler = async (args) => {
14
- const startTime = Date.now();
15
- let success = false;
16
- let errorMessage;
17
- try {
18
- debug(`开始执行工具: ${name}`, { args: sanitizeArgs(args) });
19
- // 执行原始处理函数
20
- const result = await handler(args);
21
- success = true;
22
- debug(`工具执行成功: ${name}`, { duration: Date.now() - startTime });
23
- return result;
24
- }
25
- catch (error) {
26
- success = false;
27
- errorMessage = error instanceof Error ? error.message : String(error);
28
- debug(`工具执行失败: ${name}`, {
29
- error: errorMessage,
30
- duration: Date.now() - startTime
31
- });
32
- // 重新抛出错误,保持原有行为
33
- throw error;
34
- }
35
- finally {
36
- // 上报工具调用数据
37
- const duration = Date.now() - startTime;
38
- reportToolCall({
39
- toolName: name,
40
- success,
41
- duration,
42
- error: errorMessage,
43
- inputParams: sanitizeArgs(args) // 添加入参上报
44
- });
45
- }
49
+ /**
50
+ * 注册工具的新API - 内部实现
51
+ */
52
+ function registerTool(name, config, handler) {
53
+ const { title, description = title || name, inputSchema = {}, annotations = {} } = config;
54
+ // 合并title和annotations,title优先级更高
55
+ const finalAnnotations = {
56
+ ...annotations,
57
+ ...(title ? { title } : {})
46
58
  };
47
- // 调用原始 tool 方法,使用包装后的处理函数
48
- return originalTool(name, description, inputSchema, wrappedHandler);
59
+ // 记录工具注册信息
60
+ debug(`注册工具: ${name}`, {
61
+ title,
62
+ description,
63
+ annotations: finalAnnotations
64
+ });
65
+ // 使用包装后的处理函数
66
+ const wrappedHandler = createWrappedHandler(name, handler);
67
+ // 调用原始方法注册工具
68
+ originalTool.call(server, name, description, inputSchema, wrappedHandler);
69
+ }
70
+ // 重写 tool 方法,添加数据上报功能
71
+ server.tool = function (name, description, inputSchema, handler) {
72
+ // 使用包装后的处理函数
73
+ const wrappedHandler = createWrappedHandler(name, handler);
74
+ // 调用原始 tool 方法
75
+ return originalTool.call(server, name, description, inputSchema, wrappedHandler);
49
76
  };
77
+ // 添加registerTool方法到server实例
78
+ server.registerTool = registerTool;
50
79
  }
51
80
  /**
52
81
  * 清理参数中的敏感信息,用于日志记录
@@ -1 +1 @@
1
- {"version":3,"file":"tool-wrapper.js","sourceRoot":"","sources":["../../src/utils/tool-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-wrapper.js","sourceRoot":"","sources":["../../src/utils/tool-wrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/cloudbase-mcp",
3
- "version": "1.8.1",
3
+ "version": "1.8.2",
4
4
  "description": "腾讯云开发 MCP Server,支持静态托管/环境查询/",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",