Refactor config loading (completed)
This commit is contained in:
@@ -32,40 +32,6 @@ export class McpError extends Error {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an authentication missing error
|
||||
*/
|
||||
export function createAuthMissingError(
|
||||
message: string = 'Authentication credentials are missing',
|
||||
): McpError {
|
||||
return new McpError(message, ErrorType.AUTH_MISSING);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an authentication invalid error
|
||||
*/
|
||||
export function createAuthInvalidError(
|
||||
message: string = 'Authentication credentials are invalid',
|
||||
): McpError {
|
||||
return new McpError(message, ErrorType.AUTH_INVALID, 401);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an API error
|
||||
*/
|
||||
export function createApiError(
|
||||
message: string,
|
||||
statusCode?: number,
|
||||
originalError?: unknown,
|
||||
): McpError {
|
||||
return new McpError(
|
||||
message,
|
||||
ErrorType.API_ERROR,
|
||||
statusCode,
|
||||
originalError,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an unexpected error
|
||||
*/
|
||||
@@ -164,77 +130,3 @@ export function formatErrorForMcpTool(error: unknown): {
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Format error for MCP resource response
|
||||
*/
|
||||
export function formatErrorForMcpResource(
|
||||
error: unknown,
|
||||
uri: string,
|
||||
): {
|
||||
contents: Array<{
|
||||
uri: string;
|
||||
text: string;
|
||||
mimeType: string;
|
||||
description?: string;
|
||||
}>;
|
||||
} {
|
||||
const methodLogger = Logger.forContext(
|
||||
'utils/error.util.ts',
|
||||
'formatErrorForMcpResource',
|
||||
);
|
||||
const mcpError = ensureMcpError(error);
|
||||
methodLogger.error(`${mcpError.type} error`, mcpError);
|
||||
|
||||
return {
|
||||
contents: [
|
||||
{
|
||||
uri,
|
||||
text: `Error: ${mcpError.message}`,
|
||||
mimeType: 'text/plain',
|
||||
description: `Error: ${mcpError.type}`,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle error in CLI context with improved user feedback
|
||||
*/
|
||||
export function handleCliError(error: unknown): never {
|
||||
const methodLogger = Logger.forContext(
|
||||
'utils/error.util.ts',
|
||||
'handleCliError',
|
||||
);
|
||||
const mcpError = ensureMcpError(error);
|
||||
methodLogger.error(`${mcpError.type} error`, mcpError);
|
||||
|
||||
// Print the error message
|
||||
console.error(`Error: ${mcpError.message}`);
|
||||
|
||||
// Provide helpful context based on error type
|
||||
if (mcpError.type === ErrorType.AUTH_MISSING) {
|
||||
console.error(
|
||||
'\nTip: Make sure to set up your API token in the configuration file or environment variables.',
|
||||
);
|
||||
} else if (mcpError.type === ErrorType.AUTH_INVALID) {
|
||||
console.error(
|
||||
'\nTip: Check that your API token is correct and has not expired.',
|
||||
);
|
||||
} else if (mcpError.type === ErrorType.API_ERROR) {
|
||||
if (mcpError.statusCode === 429) {
|
||||
console.error(
|
||||
'\nTip: You may have exceeded your API rate limits. Try again later or upgrade your API plan.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Display DEBUG tip
|
||||
if (process.env.DEBUG !== 'mcp:*') {
|
||||
console.error(
|
||||
'\nFor more detailed error information, run with DEBUG=mcp:* environment variable.',
|
||||
);
|
||||
}
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user