Skip to main content
Glama
error-sanitizer.ts1.99 kB
/** * Developed by eBrook Group. * Copyright © 2026 eBrook Group (https://www.ebrook.com.tw) */ /** * Error response sanitizer * Removes sensitive information from error responses */ /** * Sanitize error response for client output * Only returns safe error information, logs full details * @param status - HTTP status code * @param body - Error response body * @returns Sanitized error message */ export function sanitizeErrorResponse(status: number, body: unknown): string { // Only return error code and safe message if (typeof body === 'object' && body !== null) { const errorBody = body as Record<string, unknown>; // Extract safe error information const errorCode = errorBody.ECODE ? ` (${errorBody.ECODE})` : ''; const errorMessage = errorBody.err ? String(errorBody.err) : 'Unknown error'; // Return sanitized error return `HTTP ${status}${errorCode}: ${errorMessage}`; } return `HTTP ${status}: Request failed`; } /** * Sanitize API response for logging or output * Removes sensitive fields like tokens, keys, etc. * @param response - API response object * @returns Sanitized response */ export function sanitizeApiResponse(response: unknown): unknown { if (typeof response !== 'object' || response === null) { return response; } const sanitized = { ...response } as Record<string, unknown>; // Remove potentially sensitive fields const sensitiveFields = [ 'token', 'api_key', 'secret', 'password', 'authorization', 'auth', 'bearer', 'credential', 'key', 'access_token', 'refresh_token', 'session_id', 'cookie' ]; for (const field of sensitiveFields) { if (field in sanitized) { sanitized[field] = '[REDACTED]'; } } // Recursively sanitize nested objects for (const key in sanitized) { if (typeof sanitized[key] === 'object' && sanitized[key] !== null) { sanitized[key] = sanitizeApiResponse(sanitized[key]); } } return sanitized; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tangbodie/clickup-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server