Consuming MCP Servers from .NET: When Your App Becomes the Client

Last time we built an MCP server in C# and plugged it into Claude Desktop and Claude Code. Both of those are somebody else's app. You wrote the tools, handed them over, and a client you didn't write got all the benefit.

So here's the other half of the story: what happens when your .NET app is the thing that needs those tools? Not Claude Desktop — your internal support console, your worker service, your CLI. This post writes the client side, connects it to the same Aurora Coffee Co. server from last time, and ends somewhere satisfying: the hand-rolled agent loop from the tool-use post — the one we wrote by hand in about sixty lines — collapses into three.

The client side of the protocol

A server post talks about exposing capabilities. A client post is the mirror image, and it's just three verbs: