In the summer of 2006, I discovered the blossoming world of web APIs: HTTP APIs like the Flickr API, JavaScript APIs like Google Maps API, and platform APIs like the iGoogle gadgets API. I spent my spare time making "mashups": programs that connected together multiple APIs to create new functionality. For example:
- A search engine that found song lyrics from Google and their videos from YouTube
- A news site that combined RSS feeds from multiple sources
- A map plotting Flickr photos alongside travel recommendations
I adored the combinatorial power of APIs, and felt like the world was my mashable oyster. Mashups were actually the reason that I got back into web development, after having left it for a few years.
And now, with the growing popularity of MCP servers, I am getting a sense of deja vu.
An MCP server is an API: it exposes functionality that another program can use. An MCP server must expose the API in a very strict way, outputting the tools definition to follow the MCP schema. That allows MCP clients to use the tools (API) from any MCP server, since their interface is predictable.
But now it is no longer the programmers that are making the mashups: it's the agents. When using Claude Deskop, you can register MCP servers for searching videos, and Claude can match song lyrics to videos for you. When using GitHub Copilot Agent Mode, you can register the Playwright MCP server for browser automation, and it can write full documentation with screenshots for you. When using any of the many agent frameworks (Autogen, Openai-Agents, Pydantic AI, Langgraph, etc), you can point your Agent
at MCP servers, and the agent will call the most relevant tools as needed, weaving them together with calls to LLMs to extract or summarize information. To really empower an agent to make the best mashups, give them access to a Code interpreter, and then they can write and run code to put all the tool outputs together.
And so, we have brought mashups back, but we programmers are no longer the mashers. That is a good thing for non-programmers, as it is empowering people of all backgrounds to weave together their favorite data and functionality. It makes me a bit sad as a programmer, because I love to make direct API calls and control the exact flow of a program. But it is time for me to start managing the mashers and to see what they can create in the hands of others.
No comments:
Post a Comment