The Model Context Protocol is a communication protocol and a technical standard. It was developed by Anthropic, published on 25 November 2024 under the MIT License, and it is built on JSON-RPC. Its documentation is at modelcontextprotocol.io. This post is about what it does, and why the galaxy exposes itself through it rather than through an interface of our own design.
The problem it addresses
A software agent is a type of tool — a subclass of computer program, of tool, and of artificially intelligent entity. Give one a large language model and it can decide what to do. It still cannot do anything without something to call.
Before a shared protocol, every pairing of a model and a capability was bespoke. Each tool defined its own shape, each host wrote its own adapter, and none of that work transferred. The cost was quadratic in a way nobody chose: with a dozen tools and a handful of hosts, the integrations outnumbered the things being integrated.
The Model Context Protocol replaces that with one interface. A server describes what it offers; a client discovers it and calls it. The model does not learn a new convention per tool, because there is only one.
What actually happens when an agent calls a tool
Being built on JSON-RPC matters more than it sounds. JSON-RPC is deliberately small: a request names a method and carries parameters, a response carries a result or an error, and that is close to the whole specification. The protocol inherits that plainness, so the interesting part is not the transport.
The interesting part is discovery. A client asks a server what it can do, and the server answers with a list of tools, each with a name, a description and a schema for its arguments. The model reads those descriptions and chooses. Then it sends a call, and receives a result.
The consequence people underestimate: the tool description is a prompt. It is the only thing the model sees when deciding whether this tool is the right one. A description that is vague or that describes the implementation rather than the situation the tool is for produces a model that calls the wrong tool confidently, and no amount of correctness in the implementation repairs that.
The same applies to what a tool returns. A large language model uses prompts and the transformer architecture; it has no channel for a result except the text it gets back. A tool that returns a bare success is asking the model to invent the details, and it will.
Why the galaxy is built this way
The 4ort properties are separate systems — search, a knowledge graph, personal memory, simulation, inference routing, hosting. Each is useful alone. The reason an agent can treat them as one nervous system is that each speaks the same protocol, so adding a property costs one server rather than one integration per client.
That is the honest argument for adopting a standard rather than designing an interface: not that the standard is elegant, but that an interface only we implement is one an agent has to be taught about specially. The Model Context Protocol was published openly under the MIT License, which is what makes it worth building against — the licence is the reason the choice is not a bet on somebody else’s roadmap.
What it is not
It is a communication protocol. It is not a permission model, not an identity system, and not a guarantee that a tool does what it says. Those remain the host’s problem, and they get harder rather than easier when a model can reach many tools through one interface: the protocol’s whole value is making capabilities uniformly reachable, which is also the property you have to bound.
Nor does it make a model good at using tools. It makes the calling mechanism uniform. Whether the right tool gets called still comes down to descriptions and schemas, which is to say it comes down to writing — which is why the tool descriptions in our servers are drafted with more care than most of our prose.
The summary
The Model Context Protocol is a small, open, JSON-RPC-based standard from Anthropic, published in November 2024, for letting a software agent discover and call tools. Its value is that it is shared: one interface instead of one per pairing. Everything hard about agent tooling — naming, describing, bounding, returning enough for the model to be honest about what happened — is still hard. The protocol just stops it from being hard a different way for every tool.