permamind
Version:
An MCP server that provides an immortal memory layer for AI agents and clients
55 lines (54 loc) • 1.63 kB
JavaScript
export class ToolCommand {
getMetadata() {
return this.metadata;
}
getParametersSchema() {
return this.parametersSchema;
}
toToolDefinition(context) {
return {
annotations: {
openWorldHint: this.metadata.openWorldHint ?? false,
readOnlyHint: this.metadata.readOnlyHint ?? true,
title: this.metadata.title ?? this.metadata.name,
},
description: this.metadata.description,
execute: async (args) => {
const result = await this.safeExecute(args, context);
if (result.success) {
return result.data;
}
else {
throw new Error(result.error?.message || "Tool execution failed");
}
},
name: this.metadata.name,
parameters: this.parametersSchema,
};
}
createErrorResult(code, message, details) {
return {
error: {
code,
details,
message,
},
success: false,
};
}
createSuccessResult(data) {
return {
data,
success: true,
};
}
async safeExecute(args, context) {
try {
const result = await this.execute(args, context);
return this.createSuccessResult(result);
}
catch (error) {
return this.createErrorResult("EXECUTION_ERROR", error instanceof Error ? error.message : "Unknown error occurred", error);
}
}
}