/** * Resource helper utilities for MCP resources */ /** * Create a JSON response for MCP resources * * @param data Data to serialize as JSON * @param uri Optional URI for the resource * @returns MCP resource response object */ export function createJsonResponse(data: any, uri?: string) { return { contents: [{ uri: uri || "data:application/json", mimeType: "application/json", text: JSON.stringify(data, null, 2) }] }; } /** * Create a binary response for MCP resources * * @param data Binary data (Buffer or base64 string) * @param mimeType MIME type of the binary data * @param uri Optional URI for the resource * @returns MCP resource response object */ export function createBinaryResponse(data: Buffer | string, mimeType: string, uri?: string) { const blob = typeof data === 'string' ? data : data.toString('base64'); return { contents: [{ uri: uri || `data:${mimeType}`, mimeType: mimeType, blob: blob }] }; } /** * Create an error response for MCP resources * * @param error Error message * @param details Optional error details * @param uri Optional URI for the resource * @returns MCP resource error response */ export function createErrorResponse(error: string, details?: string, uri?: string) { return { contents: [{ uri: uri || "data:application/json", mimeType: "application/json", text: JSON.stringify({ error, details }, null, 2) }] }; }