Sonilo Audio Playback
Play a local audio file out loud through the system's default output device. This is the one Sonilo tool that makes no network call — it's pure local playback, useful right after a generation so the user can hear the result without leaving the conversation.
Setup: just needs the Sonilo MCP server connected — no API key required (see setup-api-key if the server itself isn't connected yet).
Quick Start
MCP tool call
play_audio(input_file_path="~/Desktop/thunder.m4a")
There is no REST, Python/JS SDK, or CLI equivalent — this is local-only playback specific to the MCP server, not a Sonilo API call at all. If you're integrating via the SDK or CLI instead of MCP, just play the saved file with whatever your own language/platform normally uses for local audio playback.
Tool
| Tool | Description |
|---|---|
play_audio(input_file_path) |
Play a local audio file through the system's default speakers. |
Parameters
| Parameter | Type | Notes |
|---|---|---|
input_file_path |
string | Absolute path, or relative to SONILO_MCP_BASE_PATH. Supports .wav/.mp3/.m4a/.aac/.ogg/.flac. |
Workflow Tips
- Natural follow-up after any generation tool. Once
text_to_music,text_to_sfx,video_to_music, etc. return a saved path, offer (or default, if the user's phrasing implies it — e.g. "play what you just made") to callplay_audioon that same path. - Platform playback path: macOS uses
afplay; Linux prefersmpg123for.mp3oraplayotherwise. Windows has no native-player branch at all and always falls back to thesounddevice/soundfilePython packages, same as Linux when neithermpg123noraplayis installed — that fallback needs the systemPortAudiolibrary installed separately (brew install portaudioon macOS,sudo apt-get install libportaudio2on Debian/Ubuntu). Everything else in this repo works without PortAudio. - Respects the same file-access confinement as every other tool: a path outside
SONILO_MCP_BASE_PATHis rejected unlessSONILO_MCP_ALLOW_ANY_PATH=trueis set.
Error Handling
Raises if the file doesn't exist, isn't a recognized audio format, is outside the confined base path, or if no player is available on the platform (with a message naming what's missing).