MCPcopy Index your code
hub / github.com/codeaashu/claude-code / transformResultContent

Function transformResultContent

src/services/mcp/client.ts:2478–2591  ·  view source on GitHub ↗
(
  resultContent: PromptMessage['content'],
  serverName: string,
)

Source from the content-addressed store, hash-verified

2476 * Transform result content from an MCP tool or MCP prompt into message blocks
2477 */
2478export async function transformResultContent(
2479 resultContent: PromptMessage['content'],
2480 serverName: string,
2481): Promise<Array<ContentBlockParam>> {
2482 switch (resultContent.type) {
2483 case 'text':
2484 return [
2485 {
2486 type: 'text',
2487 text: resultContent.text,
2488 },
2489 ]
2490 case 'audio': {
2491 const audioData = resultContent as {
2492 type: 'audio'
2493 data: string
2494 mimeType?: string
2495 }
2496 return await persistBlobToTextBlock(
2497 Buffer.from(audioData.data, 'base64'),
2498 audioData.mimeType,
2499 serverName,
2500 `[Audio from ${serverName}] `,
2501 )
2502 }
2503 case 'image': {
2504 // Resize and compress image data, enforcing API dimension limits
2505 const imageBuffer = Buffer.from(String(resultContent.data), 'base64')
2506 const ext = resultContent.mimeType?.split('/')[1] || 'png'
2507 const resized = await maybeResizeAndDownsampleImageBuffer(
2508 imageBuffer,
2509 imageBuffer.length,
2510 ext,
2511 )
2512 return [
2513 {
2514 type: 'image',
2515 source: {
2516 data: resized.buffer.toString('base64'),
2517 media_type:
2518 `image/${resized.mediaType}` as Base64ImageSource['media_type'],
2519 type: 'base64',
2520 },
2521 },
2522 ]
2523 }
2524 case 'resource': {
2525 const resource = resultContent.resource
2526 const prefix = `[Resource from ${serverName} at ${resource.uri}] `
2527
2528 if ('text' in resource) {
2529 return [
2530 {
2531 type: 'text',
2532 text: `${prefix}${resource.text}`,
2533 },
2534 ]
2535 } else if ('blob' in resource) {

Callers 2

getPromptForCommandFunction · 0.85
transformMCPResultFunction · 0.85

Calls 5

persistBlobToTextBlockFunction · 0.85
toStringMethod · 0.65
hasMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected