Overview
App Use is an open protocol and .NET SDK for turning any GUI application into an agent-drivable surface. The app publishes a declarative AppSpec, hosts a standard app.* tool vocabulary over loopback, and registers with a hub. Any agent that speaks the Model Context Protocol (MCP) — local or remote — can then describe, read, drive, and observe the app without bespoke per-app integration.
The problem
Agents talk to applications two ways today, and both leave the operator in the dark:
- Per-app CLI / API adapters. The agent shells out to a command line. Every new app needs a new adapter, and you approve opaque text in a terminal — never quite sure it matches what happens inside.
- Computer-use vision. The agent clicks around from screenshots. It is brittle, slow, and bypasses every accessibility and consent gate the operating system already provides.
The third path
App Use is the third path: the application participates explicitly. It declares what it knows, and the agent reads from and writes to it through a single protocol the SDK provides for free. You see exactly which app and which feature the agent is operating, every action is metered through the app's real UI state, and dangerous steps stop for human approval.
The protocol is portable on purpose. There is no assumption about which agent or framework sits on the other end — any MCP-capable client can drive any app that exposes an App Use surface, and the SDK ships the wire side so the app only writes the surface.
The three layers
- The app implements
IAppUseSurface. It declares an AppSpec (screens + elements + actions) and answersread_screen/get_value/set_value/invokeand a few more. - The SDK (
AppUseHost.StartAsync) hosts the surface over a loopback SSE MCP server with a per-instance bearer token, and writes an instance-registration file so a hub can discover it. - The hub brokers many apps to one MCP client. Agents see
apps.list,apps.launch,apps.stop, andapp.call <instance> <tool>, and drive every running app through one connection.
Where to next
- Architecture — the runtime components and how a call flows.
- The AppSpec model — the declarative shape an app publishes.
- 5-minute quickstart — make your own app drivable.
- Federation — one agent driving apps across many devices.