Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014mBuCaQSgWwqhtzsmTBQuM
gandora MCP spike
A throwaway experiment, not part of the page. Question: can a gandora player run as an MCP App inside claude.ai and play audio, and by which path?
The chat Visualizer sandbox (Oct 22 2026) played Web Audio but refused <audio> from dev.gandora.lol and teahub.xyz
(MediaError code 4: CSP). An MCP App's UI resource can declare its own domains, and can call its server's tools
through the host, so this probe tests three paths:
- synth: Web Audio, no network (control)
- remote:
<audio>from dev.gandora.lol, declared in the resource's_meta.ui.csp.resourceDomains - blob: the UI calls
get_trackthrough the host bridge, gets base64 mp3, plays it from ablob:URL
worker.js is a single stateless Cloudflare Worker speaking MCP over Streamable HTTP (POST /mcp, JSON replies).
Tools: open_probe (shows the UI) and get_track (app-only). Deployed as gandora-mcp at
https://gandora-mcp.yolopreneur.lol/mcp by teahubxyz/time › Actions › gandora-mcp (reads this file from dev).
Try it: add the URL as a custom connector in claude.ai, then ask Claude to open the gandora probe.
No auth, no keys: it only serves public test clips. Don't grow it in place; the real player server gets designed from what this answers.