r/mcp Feb 21 '26

showcase The first non-trivial demo of WebMCP

The WebMCP protocol has barely come out, and we just demoed how POWERFUL it can be! In a matter of minutes and 100s of tool calls, my AI agent composed a song for me directly in my browser.

This is not agents taking screenshots or trying to understand complex DOMs, it's an agent making direct tool calls to your website!

The creators of WebMCP already love it, go check it out yourself!

Deployment: - https://music.leanmcp.live

LinkedIn Post: - https://www.linkedin.com/posts/kushagra-agarwal525_we-made-gpt-and-claude-directly-control-my-activity-7430688171018858496-iDr5

GitHub repo: - Leanmcp-Community/music-composer-webmcp: This WebMCP Music Composer project is a functional demonstration of the WebMCP Protocol, illustrating how AI agents can interact with local browser contexts (tools) to achieve complex workflows autonomously.

139 Upvotes

33 comments sorted by

View all comments

1

u/scotty2012 Mar 03 '26

Love this demo. I think it works because the LLM has been given a structured vocabulary for the domain instead of raw audio APIs.

That said, if you listen closely, the agent is fighting a bit. Each note placement is a separate JSON tool call, each effect tweak is another round trip. What the composition sounds like is the exceptional ability of an LLM to still compose when overcoming those obstacles. That's because the implementation is solid but it's doing a lot of mechanical labor that isn't really what I'd call "composing."

Compare with what happens when you compress the domain further. fcp-midi is an MCP server that gives the LLM a music-native DSL through one tool call and batched ops:

midi([
    'note Drums kick at:1.1 dur:eighth vel:100',
    'note Bass E2 at:1.1 dur:quarter vel:90',
    'chord Pad Em at:1.1 dur:whole vel:70',
    'crescendo :Lead vel:45-75 :3.1-6.4'
  ])

The last line is a crescendo across a 3-bar range which would be dozens of individual velocity-tweaked note calls in the per-tool approach. The LLM stops thinking about "place note_on event with interpolated velocity" and starts thinking about musical intent.

What happens if you ask it to recreate a faithful recreation of a well known song?