UNPKG

@gebrai/gebrai

Version:

Model Context Protocol server for GeoGebra mathematical visualization

72 lines 2.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.errors = exports.McpError = void 0; exports.createJsonRpcError = createJsonRpcError; exports.handleError = handleError; exports.validateJsonRpcRequest = validateJsonRpcRequest; const mcp_1 = require("../types/mcp"); const logger_1 = __importDefault(require("./logger")); /** * Custom error class for MCP-specific errors */ class McpError extends Error { code; data; constructor(code, message, data) { super(message); this.name = 'McpError'; this.code = code; this.data = data; } } exports.McpError = McpError; /** * Create a JSON-RPC error response */ function createJsonRpcError(code, message, data) { return { code, message, data }; } /** * Handle and format errors for JSON-RPC responses */ function handleError(error) { logger_1.default.error('Error occurred:', error); if (error instanceof McpError) { return createJsonRpcError(error.code, error.message, error.data); } if (error instanceof Error) { return createJsonRpcError(mcp_1.McpErrorCode.InternalError, error.message, { stack: error.stack }); } return createJsonRpcError(mcp_1.McpErrorCode.InternalError, 'Unknown error occurred', { error: String(error) }); } /** * Validate JSON-RPC request structure */ function validateJsonRpcRequest(request) { if (typeof request !== 'object' || request === null) { return false; } const req = request; return (req['jsonrpc'] === '2.0' && typeof req['method'] === 'string' && (req['id'] === undefined || typeof req['id'] === 'string' || typeof req['id'] === 'number' || req['id'] === null)); } /** * Common error creators */ exports.errors = { parseError: (data) => new McpError(mcp_1.McpErrorCode.ParseError, 'Parse error', data), invalidRequest: (data) => new McpError(mcp_1.McpErrorCode.InvalidRequest, 'Invalid Request', data), methodNotFound: (method) => new McpError(mcp_1.McpErrorCode.MethodNotFound, `Method not found: ${method}`), invalidParams: (message = 'Invalid params') => new McpError(mcp_1.McpErrorCode.InvalidParams, message), toolNotFound: (toolName) => new McpError(mcp_1.McpErrorCode.ToolNotFound, `Tool not found: ${toolName}`), toolExecutionError: (toolName, message) => new McpError(mcp_1.McpErrorCode.ToolExecutionError, `Tool execution failed for ${toolName}: ${message}`) }; //# sourceMappingURL=errors.js.map