SDK Return Values
SDK code generated by MCP follows the return value conventions below. Understanding them helps you handle data correctly.
On success
SDK methods return the contents of the data field directly:
TypeScript
// API 完整响应: { success: true, data: { id: 123, name: "..." }, msg: "" }
// SDK 返回: { id: 123, name: "..." }
const result = await client.models.customer.create({ name: "张三" });
console.log(result.id); // 直接访问数据On failure
The SDK throws a LovrabetError:
TypeScript
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 queries
SQL queries return a different structure — check the execution status:
TypeScript
const data = await client.api.executeSql("sql-code", { param1: "value" });
// 必须检查执行状态
if (!data.execSuccess) {
throw new Error(data.execError || "SQL 执行失败");
}
// 获取结果
const results = data.execResult || [];What's New in v1.2.0
Modernized Architecture
v1.2.0 delivers a major upgrade to the MCP SDK architecture:
- McpServer API: Migrated from the deprecated Server API to the officially recommended McpServer API
- Tool metadata: All 8 tools support title and annotations (readOnlyHint, destructiveHint, idempotentHint)
- Full test coverage: 17 end-to-end automated test cases
Enhanced SDK Code Generation
A new aliasHint field provides smarter model access guidance:
TypeScript
aliasHint: {
defaultAlias: "customer", // 默认别名(camelCase 表名)
datasetSDKKey: "dataset_customer", // SDK key(需要 SDK >= 1.2.0)
note: "检查 createClient 或 registerModels 中的自定义 alias",
versionNote: "使用别名访问需要 @lovrabet/sdk >= 1.2.0"
}Two Access Modes
| Mode | Format | Description |
|---|---|---|
| Standard | client.models.dataset_[code].operation() | Stable, no configuration needed |
| Alias | client.models.[alias].operation() | Human-friendly, requires SDK >= 1.2.0 |
Enriched Field Metadata
Field info now includes database type fields:
TypeScript
{
name: "customer_id",
type: "NUMBER",
dbType: "BIGINT", // 数据库类型
dbTypeLen: 20, // 类型长度
autoIncrement: true, // 自增标识
}