Lesson 29 / 31
Protocols Evolve: Staying Current
Handle spec and SDK changes without breaking production.
Both protocols are young
MCP and A2A are recent and changing: protocol versions are dated (the server in this course reported 2025-06-18), new features such as elicitation, structured tool output and richer authorisation have appeared over time, transports have been replaced (HTTP+SSE by Streamable HTTP), and SDKs have made breaking changes (for example the Python class rename from FastMCP to MCPServer in version 2). Protect yourself: pin SDK and protocol versions, read changelogs before upgrading, keep contract tests that fail loudly on breakage, negotiate versions and capabilities at connect time rather than assuming, isolate protocol code behind a thin adapter in your own codebase, and plan upgrades like any dependency migration. When this course and the official documentation disagree, the documentation wins.
Wrap the SDK
Call the SDK through your own small module so a renamed class or changed signature is fixed in one place.
Quick check: What is a good defence against protocol and SDK churn?
- Never upgrade anything
- Pin versions, keep contract tests and isolate protocol code behind an adapter
- Copy the SDK into prompts
- Ignore changelogs
Answer
Pin versions, keep contract tests and isolate protocol code behind an adapter — Controlled upgrades with tests catch breakage early.