Agent-native app vs MCP server
Agent-native app vs MCP server is the most common category confusion, so here is the short answer. An MCP server exposes tools to a model over the Model Context Protocol. An agent-native application is a portable, inspectable, user-owned package carrying identity, judgment, governance, workflows, and durable state. MCP is a binding an ANA can use; it is not the ANA.
Last updated: 2026-08-07
Is an agent-native app an MCP server?
No. MCP is a supported binding: an agent-native app can speak MCP; it is not itself an MCP server. The server is one transport through which a Host reaches tools. The ANA is the artifact that declares which transports it uses, under which rules, with which data custody.
The distinction matters because transports multiply. A package that is defined by one transport is locked to that transport's ecosystem. A package that declares its bindings can add adapters as Hosts evolve, and MCP's own growth, including provider app platforms built on top of it, makes it a high-leverage binding to support first.
What does an MCP server not carry?
The contract. An MCP server has no constitution hash, no declared data custody, no entitlement, and no durable user-owned state. It answers 'what tools can be called?' An agent-native app answers 'who is this, what may it do, under whose rules, with whose data, and what does it remember?'
Can one product be both?
Yes, in the sense that an agent-native app frequently ships with or connects to MCP servers among its declared tools. The servers do transport; the app does identity, governance, and state. Wrapping a single MCP server in a manifest doesn't make it an ANA; declaring the full contract does.
| Dimension | Agent-native app | MCP server |
|---|---|---|
| What it is | A portable, inspectable, user-owned package: identity, judgment, governance, workflows, durable state | A server exposing tools and context to a model over the Model Context Protocol |
| Role in the stack | The application artifact a Host mounts and runs | One transport the application may declare as a binding |
| Governance | Constitution with escalation rules, anchored by a constitution hash | None defined by the protocol; behavior is up to the caller |
| Data custody | Declared as a verifiable field in the package | Undeclared; depends on the server operator |
| State | Durable, user-owned, portable across compatible Hosts | Server-side or none; not part of the protocol's contract |
| Relationship | Can declare and use MCP among its bindings | Can serve an ANA as one of its declared tools |