What is MCP?
MCP, the Model Context Protocol, is an open standard for connecting AI assistants to external tools and data. It defines a common way for a server to advertise what it can do and for an assistant to call it, so one integration works across many assistants instead of being rebuilt for each.
What are the parts?
| Part | Role |
|---|---|
| Host | The application the person is using — an editor, a chat client, a build tool |
| Client | The connector inside the host that speaks the protocol |
| Server | The thing being exposed: a database, an API, a file store, a service |
| Tool | An action the server offers, with a described input shape |
| Resource | Readable data the server offers, addressed by URI |
| Prompt | A reusable instruction template the server suggests |
The model never connects to anything itself. It emits a request to use a tool; the host performs it and returns the result as text the model can read.
What does a tool definition look like?
{
"name": "search_orders",
"description": "Find orders by customer email",
"inputSchema": {
"type": "object",
"properties": { "email": { "type": "string" } },
"required": ["email"]
}
}The description is not documentation for you — it is the instruction the model reads when deciding whether this tool fits the request. A vague description produces a tool that is called at the wrong moments.
Why does a standard matter here?
Before it, every assistant needed a bespoke integration for every service: N assistants times M services. A shared protocol turns that into N plus M. Write one server for your service and any compliant host can use it.
What are the security implications?
- A tool runs with whatever credentials the server holds, not the model's — so scope those credentials narrowly.
- Content returned by a tool is untrusted input. Text inside a fetched page or database row can attempt to instruct the model.
- Write actions deserve confirmation. Reading a row and deleting a table should not feel the same to the person supervising.
- Log what was called and with what arguments, or you cannot audit a surprising outcome afterwards.
The interesting failure is not a tool that breaks. It is a tool that works perfectly on the wrong record because the model misread the request.
Where does MCP show up in an AI-assisted build?
Mostly in the tooling around your project rather than in the app you ship: giving your editor or assistant access to a database, a documentation set, a design tool, or your own service. Your deployed application rarely speaks MCP itself — it calls ordinary APIs.
Frequently asked questions
- Is MCP a model or an API?
- Neither. It is a protocol describing how a host and a tool server talk to each other, independent of which model is being used.
- Does using MCP send my data to the model?
- Whatever a tool returns becomes context for the model. That is the point, and it is why scoping matters.
- Do I need MCP to build with AI?
- No. It is a way of extending an assistant's reach, not a requirement for building anything.
Practice this in MessyDev
Reading it once helps. Doing it once sticks. These are the hands-on parts of MessyDev that cover the same ground.
Keep going
- MCP explained for beginnersA plain-language introduction to what MCP is for, using the everyday situations where an AI assistant needs something it cannot see.
- How AI agents use toolsThe loop that turns a language model into something that takes actions: tool descriptions, arguments, results, retries, and where supervision belongs.
- How AI coding tools workInside an AI coding tool: the model, the context window, the tool calls, the build loop, and why the wrapper around the model matters as much as the model.