The 2026 spec defines four tools/call content types: text, image (base64 plus mimeType), audio (base64 plus mimeType, added 2025), and resource (URI reference). Mixed arrays are allowed; the set is closed.
Think of a tool result as a small package that can hold different kinds of items. MCP gives tools four kinds of boxes to put things in. A text box holds written messages. An image box holds a picture encoded as data. An audio box holds a sound clip. A resource box holds a card that says 'the actual thing lives at this address, go fetch it when you need it.' A single package can contain several boxes at once, like a written summary next to a chart picture, and the host figures out how to show each piece to the model. Servers cannot invent new box types on their own.
Detailed answer & concept explanation~5 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
4 min: enumerate the four content types with their shapes, note that audio was added in 2025, explain why resource exists (lazy fetch), give one example of a mixed-type result, and close with the isError vs JSON-RPC error distinction.
Real products, models, and research that use this idea.
- A browser automation server returns a text description of the loaded page alongside an image screenshot; multimodal models read the screenshot as visual input to decide what to click next.
- A speech synthesis server returns an audio block with a wav payload and a text block describing the utterance; voice-capable hosts route the audio to the user, text-only hosts display the description.
- A filesystem search server returns text matches plus per-file resource blocks pointing to the full file content; the host fetches a resource only when the model decides to inspect that specific file.
- MCP Inspector surfaces each content block separately with its type label so server authors can verify typed output rather than discovering everything was accidentally stringified into text.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy does MCP define a resource content type instead of always inlining data in text or image blocks?
QWhat should a host do when a server returns an unrecognized content type?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Assuming every tool result is plain text. MCP tools can return images, audio, and resource references in the same array, and a single call can mix types freely.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.