From checking our bank balances to planning our workout routines, APIs facilitate the interactions we take for granted. We're witnessing a new layer of interaction emerging with Model Context Protocol (MCP), a fascinating shift worth architectural examination.
"Yet another protocol?" I thought. But as I dug deeper, I realized we're looking at an intriguing evolution in how we interact with digital services. Let's dive into the architecture, constraints, and some honest assessments of what MCP brings to the table.
When Roy Fielding introduced REST in his 2000 dissertation, he outlined a methodology for defining architectural styles:
This approach helps us understand why certain architectural decisions were made, not just what they are. Let's apply this methodology to MCP.
In the null style, there are no constraints. Components can interact in any way, with no distinguished boundaries between them. It's architectural anarchy, freedom but chaos.
For MCP, this would mean AI assistants and tools interact without any standardized pattern. Each assistant would need custom integration with each tool, resulting in the "MN problem": M assistants needing N distinct tool integrations, creating MN integration points.
If I were architecting MCP from scratch, I'd identify these desired properties: