跳到主要内容

SDK 返回值说明

MCP 生成的 SDK 代码遵循以下返回值规范,理解这些规范有助于正确处理数据。

成功时

SDK 方法直接返回 data 字段的内容:

// API 完整响应: { success: true, data: { id: 123, name: "..." }, msg: "" }
// SDK 返回: { id: 123, name: "..." }
const result = await client.models.customer.create({ name: "张三" });
console.log(result.id); // 直接访问数据

失败时

SDK 抛出 LovrabetError 异常:

try {
const result = await client.models.customer.create({ name: "" });
} catch (error) {
if (error instanceof LovrabetError) {
console.error("错误信息:", error.message);
console.error("HTTP 状态码:", error.status);
console.error("业务错误码:", error.code);
console.error("完整响应:", error.data);
}
}

SQL 查询

SQL 查询的返回值结构不同,需要检查执行状态:

const data = await client.api.executeSql("sql-code", { param1: "value" });

// 必须检查执行状态
if (!data.execSuccess) {
throw new Error(data.execError || "SQL 执行失败");
}

// 获取结果
const results = data.execResult || [];

v1.2.0 新特性

现代化架构

v1.2.0 完成了 MCP SDK 架构的重大升级:

  • McpServer API:从废弃的 Server API 迁移至官方推荐的 McpServer API
  • 工具元数据:所有 8 个工具都支持 title 和 annotations(readOnlyHint、destructiveHint、idempotentHint)
  • 完整测试覆盖:17 个端到端自动化测试用例

SDK 代码生成增强

新增 aliasHint 字段,提供更智能的模型访问建议:

aliasHint: {
defaultAlias: "customer", // 默认别名(camelCase 表名)
datasetSDKKey: "dataset_customer", // SDK key(需要 SDK >= 1.2.0)
note: "检查 createClient 或 registerModels 中的自定义 alias",
versionNote: "使用别名访问需要 @lovrabet/sdk >= 1.2.0"
}

两种访问模式

模式格式说明
标准模式client.models.dataset_[code].operation()稳定,无需配置
别名模式client.models.[alias].operation()人类友好,需要 SDK >= 1.2.0

增强的字段元数据

字段信息新增数据库类型字段:

{
name: "customer_id",
type: "NUMBER",
dbType: "BIGINT", // 数据库类型
dbTypeLen: 20, // 类型长度
autoIncrement: true, // 自增标识
}