UNPKG

@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
/** * 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 } } } }; } }