PaPoo
cover

Microsoft’s MCP SDK just got more interesting than the spec drama

What jumped out at me is not the “biggest revision” language. That always sounds a little self-congratulatory. The interesting part is the shape of the change: Microsoft is clearly betting that MCP gets much easier to deploy once it stops assuming a sticky session by default.

image_0005.svg

image_0004.svg

image_0003.svg

image_0002.svg

image_0001.jpg

That feels like a real operational lesson, not just protocol theater. If you’ve ever tried to put an agent service behind a load balancer, the old “initialize, keep the session ID, carry it through every request” model is exactly the kind of thing that starts innocent and then turns into friction. Stateless-by-default is boring in the best possible way. It makes the protocol look more like something infrastructure already knows how to route, cache, and scale.

image_0011.svg

image_0010.svg

image_0009.svg

image_0008.svg

image_0007.svg

image_0006.svg

I’m a little more cautious about the celebration around MRTR, though. “Multi Round-Trip Requests” sounds like a sensible answer to a real problem — confirmation steps, follow-up input, and interactive tool use without pinning everything to one live session. But I don’t think this is free. Any time you replace an explicit session with a re-entrant request flow, you’re moving complexity somewhere else: client logic, state reconciliation, maybe even UX. The article makes it sound neat, and perhaps it is, but I’d want to see how ugly the edge cases get once real tools start asking for nested confirmations or partial responses.

image_0017.svg

image_0016.svg

image_0015.svg

image_0014.svg

image_0013.svg

image_0012.svg

The package split is also more revealing than it first looks. Moving Apps and Tasks out of Core says the SDK is trying to become more modular at the same time the protocol itself is becoming more opinionated about extensions being first-class. That’s sensible, but it also suggests the surface area is growing fast enough that Microsoft needed a cleaner boundary before things got messy. I’d actually like that if I were building against it: smaller core, opt-in extras, less accidental dependency baggage.

image_0022.jpg

image_0021.jpg

image_0020.jpg

image_0019.svg

image_0018.svg

The Roslyn analyzer detail is the kind of thing that makes me trust the release a bit more. Protocol SDKs are full of easy mistakes, and catching them at build time is better than discovering them in an agent demo that “sort of works.” That’s the sort of unglamorous feature that usually matters more than the headline architecture change.

image_0028.jpg

image_0027.jpg

image_0026.jpg

image_0025.jpg

image_0024.jpg

image_0023.jpg

If I were playing with Claude or any other agent framework on .NET, I’d try v2 for one reason: I want to know whether stateless MCP finally makes deployment feel normal instead of special. If it does, that’s a bigger deal than the version bump suggests. If not, then all the protocol elegance in the world won’t save it from becoming another clever standard people only half-implement.

image_0034.jpg

image_0033.jpg

image_0032.jpg

image_0031.jpg

image_0030.jpg

image_0029.jpg


image_0042.jpg

image_0041.jpg

image_0040.jpg

image_0038.jpg

image_0036.png

image_0035.png

Reference: 「MCP C# SDK」がv2.0に ~MCP登場以来“最大の改訂”に対応、既定でステートレスへ/セッションなしで対話的なツールを実現する「MRTR」も

image_0051.svg

image_0049.svg

image_0047.svg

image_0045.svg

image_0043.svg

同じ著者の記事