The Model Context Protocol is an open standard for connecting AI applications to external systems, data sources, tools and workflows, often described as a USB-C port for AI applications (MCP introduction). It was introduced by Anthropic as an open standard to replace fragmented, one-off integrations with a single protocol (Anthropic announcement).
Three roles matter, and you need to know which one you own before writing code:
- Host: the AI application the user actually interacts with, such as an IDE or chat client. It coordinates one or more clients (architecture overview).
- Client: a component inside the host that maintains a dedicated connection to exactly one server. A host with three servers runs three clients (architecture overview).
- Server: the program that provides context and capabilities, meaning tools, resources and prompts (specification).
Your job in this article is the third one. You are not building the chat UI or the model loop. You are building a small service that says "here are my tools, here are their schemas, here is what happens when you call them."
The payoff for building it once is structural. Without a standard, each AI application must integrate directly with each external service, which is N times M integrations; with MCP each side implements the protocol once, so the count drops to N plus M (Databricks explainer). For a single internal system this sounds academic, but it means the server you build for your ticket system also works in a coding agent, a chat client and a custom agent without a second wrapper.
One distinction worth fixing in your head. MCP is the protocol specification, and an MCP server is a program that implements it, the same way HTTP is a protocol and a web server implements it (Zuplo guide). You are writing the implementation.



