# MCP tools now return audio

> Agno's MCPTools now keeps audio that an MCP server returns and attaches it to the run output, next to any images the tool returned.

- Published: 2026-09-16
- Author: Devansh Bhargava
- Categories: Changelog
- Canonical: https://www.agno.com/articles/mcp-tools-now-return-audio
- Markdown: https://www.agno.com/articles/mcp-tools-now-return-audio.md

When an MCP tool returns audio, Agno's `MCPTools` decodes it and adds it to `run.audio`. Say your agent calls a text-to-speech server. Until now, `MCPTools` discarded the audio and told the model the content type was unsupported.

```python
from pathlib import Path

from agno.agent import Agent
from agno.tools.mcp import MCPTools

async with MCPTools(transport="streamable-http", url="https://tts.example.com/mcp") as tts:
    agent = Agent(tools=[tts])
    run = await agent.arun("Read the release summary aloud")

    for audio in run.audio or []:
        Path(f"summary.{audio.format}").write_bytes(audio.content)
```

Each audio item keeps its MIME type, and `MCPTools` derives the format from it, so `audio/mpeg` becomes `mp3` and `audio/wav` becomes `wav`. When `MCPTools` can't decode the audio, it reports that to the model and keeps the rest of the tool's result.

Learn more about [MCP tools](https://docs.agno.com/tools/mcp/overview) in the documentation.
