The Apology of MCP (aaazzam.substack.com)

🤖 AI Summary
This piece is a defense of the Model Context Protocol (MCP) against a critique that it’s an unnecessary, temporary layer layering over tool calling. The author concedes that many early MCP deployments look like static tool wrappers, but argues MCP’s real purpose is to standardize stateful, identity-aware conversations and distribute that runtime context consistently across multiple LLM clients. Unlike static APIs or stuffing specs into ever-larger context windows, MCP is designed to communicate which capabilities are actually accessible to a given authenticated user (e.g., “delete database” only for admins, “rollback” only after a failed deploy), and to notify clients when capabilities change during execution. Technically, MCP defines patterns for capability negotiation, runtime change notifications, approval elicitation, and streaming progress—bidirectional primitives that OpenAPI/gRPC/CLI do not specify. This matters for multi-tenant systems where permissions and dynamic state determine what an agent can do across Claude, ChatGPT, Cursor, etc. The author admits MCP has real issues (messy transport, debates over state, and a permissive spec causing a bootstrap trap where clients implement only baseline features), but argues those are fixable, and that without a protocol you'll end up reinventing fragmented, client-specific coordination logic.
Loading comments...
loading comments...