# Protocols Evolve: Staying Current — MCP & Agent-to-Agent Protocols

Source: https://www.geekswithgeeks.com/en/mcp-a2a/t-evolve

> 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.

**Quiz:** What is a good defence against protocol and SDK churn?

- [ ] Never upgrade anything
- [x] 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.
