@cyanheads/toolkit-mcp-server
Version:
MCP server providing system, network, geolocation, generator, datetime, and security tools
37 lines (36 loc) • 1.06 kB
JavaScript
import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
export class McpToolError extends Error {
code;
data;
constructor(code, message, data) {
super(message);
this.code = code;
this.data = data;
this.name = 'McpToolError';
}
}
export function handleToolError(error) {
if (error instanceof McpToolError) {
return {
isError: true,
content: [{
type: 'text',
text: `Error ${error.code}: ${error.message}${error.data ? `\nDetails: ${JSON.stringify(error.data)}` : ''}`
}]
};
}
// Handle unknown errors
return {
isError: true,
content: [{
type: 'text',
text: `Internal error: ${error instanceof Error ? error.message : 'Unknown error'}`
}]
};
}
export function validateInput(input, validator, errorMessage) {
if (!validator(input)) {
throw new McpToolError(ErrorCode.InvalidParams, errorMessage);
}
return input;
}