Skip to content
N
intermediateAI

MCP in Practice

The Model Context Protocol, from the handshake to a server your team actually uses.

18 lessons3h 8m5 sections
Need to Know HQPractical engineering courses, written by people who ship
$24.99$34.99
  • Lifetime access to all lessons
  • 18 lessons across 5 sections
  • Progress tracking across devices

What you'll learn

  • Explain what MCP standardizes and what it deliberately leaves alone
  • Choose correctly between tools, resources and prompts
  • Build and ship a server your team connects to in one line
  • Pick the right transport and get the auth model right
  • Recognize the security failure modes before they become an incident

Course content

5 sections · 18 lessons · 3h 8m

What the protocol is3 lessons
  • The problem it solves, stated honestlyFree preview9m
    Read this lesson
    You have M AI applications and N systems worth connecting them to. Without a standard that is M × N integrations, each written against a proprietary plugin interface, each rewritten when either side changes. With one, it is M + N. That is the entire pitch, and it is the same pitch as the Language Server Protocol — which is the right analogy to hold in your head. LSP didn't make editors smarter; it made "add Rust support" a thing you do once instead of once per editor. MCP does that for context and actions. What it deliberately does *not* do: it does not tell the model what to do, does not run the model, does not decide permissions, and does not make a badly-designed API pleasant. It standardizes the wire, so the interesting problems are the ones left over.
  • Hosts, clients, serversFree preview11m
    Read this lesson
    Three roles, and confusing them makes every other document unreadable. The **host** is the application the user is actually using — an IDE, a desktop assistant, an agent framework. It talks to the model, owns the UI, and enforces permission. A **client** lives inside the host and maintains one connection to one server. Ten servers means ten clients inside the host. The one-to-one pairing is deliberate: it keeps each server's capabilities and session state isolated from every other's. A **server** exposes capabilities — a wrapper around Postgres, GitHub, your internal deploy system, the filesystem. It is usually small, usually stateless, and it can run as a local subprocess or a remote HTTP service. The chain to keep straight: the **model** decides it wants a tool, the **host** approves it, the **client** sends the request, the **server** does the work. The model never touches the server, which is exactly why the design is safe enough to be useful.
  • The handshake, and why capabilities are negotiated10m
The primitives4 lessons
  • Tools, resources, prompts12m
  • When something should be a resource, not a tool11m
  • What the client can offer back10m
  • Designing tools models actually call well13m
Connecting it up3 lessons
  • stdio and Streamable HTTP11m
  • Auth, and the one rule you must not break13m
  • Wiring servers into a host10m
Building one4 lessons
  • Your first server12m
  • Four servers worth building on Monday12m
  • Testing without a chat window10m
  • Servers that behave in production11m
Security4 lessons
  • Prompt injection through tool results13m
  • The confused deputy, and other trust problems11m
  • A checklist before you connect it to anything real9m
  • Where to go next

Requirements

  • Comfortable with HTTP, JSON and a language that can run a server
  • Some exposure to LLM tool use — the previous course is enough

Description

Every AI assistant needs the same things: your files, your database, your tickets, your docs. Before MCP, every one of those integrations was written once per assistant, in that assistant's plugin format, and thrown away when you switched. The Model Context Protocol — open-sourced by Anthropic in late 2024 and now implemented across most serious AI tooling — is the boring, correct fix: one protocol, one server, every client. This course covers what it actually specifies, how to design a server that models use well rather than one that merely exposes an API, and the security properties you have to supply yourself. It is practical throughout: by the end you should be able to ship something your team plugs in on Monday.

Student reviews