The Improviser · Lesson 10 — The Universal Socket ← Course

The universal socket — MCP.

Last lesson, a soloist called in specialists. But hand-wiring every specialist to every band doesn't scale. MCP is the universal socket: build a tool's plug once, and any model can use it.

In Lesson 9 a model reached past itself to call a tool — a metronome, a session log, an arranger. Useful, until you look at the wiring. Each tool needed its own custom cable, built around one model's particular way of talking to that tool. Add a second model, a third tool, a fourth, and every new pairing demands another hand-made cable. The tangle grows fast.

MCP — the Model Context Protocol — is the fix, and it works exactly like a universal socket. Just as a quarter-inch plug lets any guitar reach any amp, MCP is one agreed-on shape. A tool builds a single standard plug once, and every MCP-speaking app can use it — whether that app is a chat client, a coding tool, or an autonomous agent.

That's the whole win, and it comes down to counting. Without a standard, joining a handful of models to a handful of tools takes a cable for every pairing — models times tools. With the universal socket, each side wires up just once — models plus tools. The interactive makes that gap jump out.

Bands on the left, specialists on the right. Flip between hand-made cables and one universal socket, then add a band or a specialist and watch how the wiring count grows in each world.

Custom cables: every band wired to every specialist by hand. Switch to the universal socket and watch the tangle collapse.
12
custom cables · models × tools
7
standard plugs · models + tools
bands (models)3
specialists (tools)4

Build the plug once.

Without a standard, every model–tool pairing is its own integration. With MCP, a tool is an MCP server built once, and any MCP client (inside an AI app) can connect to it.

# before: a bespoke adapter for every pairing — models × tools
connect(bandA, metronome,   adapter="bandA↔metronome")
connect(bandA, session_log, adapter="bandA↔session_log")
connect(bandB, metronome,   adapter="bandB↔metronome")   # ...and on, and on

# with MCP: each side speaks one standard, so it just plugs in
metronome = MCPServer(tools=["bars", "click"])   # built once
bandA     = MCPClient()                        # speaks the standard
bandA.connect(metronome)                       # any client ↔ any server

One socket, everything plugs in.

MCP is a shared standard for how tools and AI apps talk. A tool exposes itself as a server one time; any app that speaks the protocol can use it — no custom cable per pairing. That turns a models × tools tangle into a tidy models + tools, which is what lets a whole ecosystem of ready-made connectors exist for you to just plug in.

Lesson 9 gave the model the ability to call a tool. This is the plumbing that makes calling any tool practical — the universal socket behind the whole thing.

Next: The Jam Session →
Go deeper — how the standard actually works optional

Two sides: server and client

MCP has a tool side and an app side. An MCP server wraps a tool or data source and exposes it in the standard shape. An MCP client lives inside an AI app and knows how to talk to any server. The model itself hasn't changed — it still just requests a tool the way Lesson 9 showed. MCP standardises how the app around it discovers and calls those tools, so the same app can reach any server.

What a server can offer

A server isn't only actions. It can expose tools (things to do — send, fetch, transpose), resources (data to read — files, records), and prompts (ready-made instructions). All in the same agreed format, so an app can walk up to a server it has never seen and ask “what have you got?” and understand the answer.

Why a standard is the whole point

The value isn't clever code — it's agreement, the same reason a USB port or a quarter-inch socket is useful. Because everyone builds to the one shape, a connector written once works across every app that speaks it, and an app supports every tool for free. That network effect is why a catalogue of MCP servers — for calendars, databases, design tools, code — sprang up so quickly.

Where the metaphor bends

A real socket is dumb wire; MCP also carries the descriptions the model needs to use a tool well, handles permissions, and runs over a defined transport. And it standardises the connection, not the model's judgement — a badly described server still gets used badly. The plug is universal; using it wisely is still on you.