@trishchuk/ai-think-gate-mcp
Version:
Model Context Protocol (MCP) server that provides AI-powered thinking and code architecture tools
83 lines (82 loc) • 2.29 kB
JavaScript
/**
* Base class for all tools
*/
export class BaseTool {
constructor(name, description, inputSchema, annotations) {
this.name = name;
this.description = description;
this.inputSchema = inputSchema;
this.annotations = annotations;
}
/**
* Format tool result
*/
formatResult(text, isError = false, annotations) {
return {
content: [{
type: "text",
text,
annotations
}],
isError
};
}
/**
* Format result with multiple content items
*/
formatMultiContentResult(contentItems, isError = false) {
return {
content: contentItems,
isError
};
}
/**
* Format error with appropriate annotations
*/
formatError(errorMessage, userFriendlyMessage) {
// More user-friendly message
const userMessage = userFriendlyMessage ||
`An error occurred while executing the ${this.name} tool. Please try again later.`;
// Detailed message for assistant
const assistantMessage = `Error executing ${this.name} tool: ${errorMessage}`;
return {
content: [
{
type: "text",
text: userMessage,
annotations: {
priority: 1.0,
audience: ["user"]
}
},
{
type: "text",
text: assistantMessage,
annotations: {
priority: 0.8,
audience: ["assistant"]
}
}
],
isError: true
};
}
/**
* Create progress content for long operations
*/
createProgressContent(current, total, message) {
return {
type: "text",
text: `${message} (${current}/${total})`,
annotations: {
priority: 0.5,
metadata: {
progress: {
current,
total
}
}
}
};
}
}