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, // 自增标识
}