Model Context Protocol (MCP) Explained in 20 Minutes
Video by Shaw Talebi on YouTube · 20 min · uploaded April 2025
Notes and analysis by BrainTube, written from the video. Not affiliated with Shaw Talebi. Watch on YouTube
In short
The video explains MCP as a client-server standard, then builds a Python server for a personal assistant with one prompt, three resources and a Gmail draft tool, tested in the MCP Inspector and Claude Desktop. The concepts are accurate and the demo shows a lesson most tutorials miss: Claude calls tools on its own, but you must attach prompts and resources yourself. Its description of remote transport is already dated.
The argument
The argument is that MCP is useful because it separates a tool set from the app that uses it. Shaw had built an assistant called Ava with tools to write Gmail drafts, a contact directory and email templates. Locked inside one script, those tools only serve Ava. Wrapped as an MCP server, the same functions can be used from Claude Desktop, Cursor or any app with an MCP client, and switching editors no longer means rebuilding your setup. The client's job is discovery, fetching data and running tools, and most people will never write one. The server is the part you build, and with the official Python SDK it is a handful of decorated functions.
Key ideas, with timestamps
- 1:08
Three reasons to care
He gives concrete benefits: plugging Slack or Google Drive into Claude, carrying a personal tool set of templates and helpers from one editor to the next, and letting an app you ship use the open ecosystem of third-party servers by implementing only a client. The portability point is the strongest and comes back in the demo.
- 3:55
What the client does
The client lives inside the AI app, such as Claude Desktop, and can connect to many servers. It discovers what each server offers, fetches data the server exposes, and runs tools on the model's behalf, since the model only produces text. He notes that app users rarely need to write a client themselves.
- 6:11
Prompts, resources and tools
Prompts are templates with slots, like a resume rewrite prompt that swaps in a resume and a job post. Resources are lookups of data such as files or a database, similar to GET requests, and he says they should be cheap to compute. Tools are arbitrary functions such as API calls or image processing.
- 7:18
Two transports
Local servers talk to the client over standard input and output. For servers in the cloud he describes HTTP with server-sent events. This is the one point in the video that has aged: the spec has since moved remote servers to a newer HTTP transport, so check current docs before building a remote server.
- 10:06
Building the Ava server
Using the SDK's FastMCP class he adds a prompt that fills a user's name and title into Ava's instructions, resources for a three-way intro template, a call follow-up template and a contacts CSV, each at its own URI, and a write email draft tool that uses the Gmail API. At 12:56 he stresses that docstrings are what the model reads when choosing.
- 14:37
Test with the Inspector first
Before touching Claude Desktop he runs the SDK's dev command through uv, which opens the MCP Inspector in a browser. It lists every prompt, resource and tool and keeps a history of requests. It needs Node installed. This is the right order and saves many restarts.
- 16:50
Claude Desktop config
He pastes the server entry into the config from Developer settings. Plain uv did not work for him, so he used its full path. The arguments point uv at the project folder and run the script, and uv sets up the environment each time Claude Desktop launches the server.
- 18:29
Tools are automatic, context is not
Asked to write a follow-up to Sarah Chen, Claude called the Gmail tool but ignored the template. Only when he attached the call follow-up resource did the draft match the template, with an opening line, bullet points from the call and a close. His conclusion is that you have to choose prompts and resources yourself.
What it gets right
The demo at 18:29 is the best part of the video. It shows the control split in MCP without naming it: tools are model-controlled, while resources and prompts are surfaced for the user or app to pick. Many people expect a connected template to be used automatically and are confused when it is not. Seeing the first draft ignore the template, and the second one follow it, explains the design better than a diagram.
The build order is also sound. Testing in the Inspector before wiring up a client separates server bugs from client config bugs. And the example is a real one: a tool that writes Gmail drafts plus the templates and contacts it needs is the kind of small personal server that makes MCP worth learning.
The advice that resources should be cheap lookups is a good rule of thumb. If something takes real work or has side effects, it belongs in a tool.
What it leaves out
- Transport has changed. As of the April 2025 upload, the spec had already replaced the old HTTP plus SSE transport with a newer HTTP transport. The local stdio part still holds.
- Credentials. The Gmail tool runs with OAuth access to a real mailbox. The video skips where the token lives, what scope it has and what happens if a prompt injection in an email or web page asks the model to draft something. Drafts are a sensible limit. A send tool would need much more care.
- Getting resources used. He ends by saying you must specify them yourself, but there are other options. You can expose a template as a tool the model can call, or say in the tool's docstring which template to read first. Resource support also differs between clients, so test in each one you use.
- The leftover print statement. At 13:30 he notes the copied code still has a print call. In a stdio server, printing to standard output can corrupt the protocol stream. Log to standard error instead.
- Overlap with other explainers. The coffee shop analogy at 2:50 adds little if you already know client-server basics. Developers can skip to 10:06.
How this applies to memory across AI tools
The Ava server is a small memory layer: contacts and templates that any MCP client can read. The video's own result shows the catch. Memory exposed only as resources is easy to ignore, because the model does not fetch it on its own. For memory that should come up when relevant, a search tool with a clear description usually works better, since the model can decide to call it mid-task. That is how most MCP memory servers are built.
The portability argument at 1:42 applies most to knowledge. BrainTube saves YouTube videos with their transcripts, articles, PDFs and podcasts into one compiled knowledge base and exposes it as an MCP server, so Claude, ChatGPT, Cursor and other MCP clients can search it. Like Shaw's tool set, it moves with you when you change apps. For more on that idea, see one memory across ChatGPT, Claude and Cursor.
Who should watch it
Watch it if you want the core MCP concepts and one complete Python build in under 20 minutes. Beginners should watch from the start. Developers who know client-server basics can jump to 5:36 for the server primitives and transports, then 10:06 for the build, 14:37 for the Inspector and 18:29 for the template lesson. Skip it if you need a remote deployment, authentication or a current transport guide, and pair it with the official docs for the Gmail OAuth setup, which the video defers to an earlier episode.
Frequently asked
- What is the difference between an MCP client and an MCP server?
- The client is built into the AI app, such as Claude Desktop or Cursor. It asks servers what they offer, passes that to the model and runs the tools the model picks. The server is a separate program that exposes prompts, resources and tools. You usually build servers and use existing clients.
- How do I test an MCP server before connecting it to Claude?
- The official Python SDK has a dev command, run through uv, that starts your server and opens the MCP Inspector in a browser. You can list and call every prompt, resource and tool and see the request history. It needs Node installed.
- Why does Claude ignore my MCP resources and prompts?
- In MCP, tools are chosen by the model, but resources and prompts are meant to be picked by the user or app. In Claude Desktop you attach them to the conversation yourself. If you want the model to fetch something on its own, expose it as a tool or point to it in a tool's description.
Keep videos like this one searchable
BrainTube saves YouTube videos with their transcripts into one compiled knowledge base that Claude, ChatGPT, Cursor and other MCP clients can search.
Go deeper
More video notes
- MCP Servers Explained & Built · Tech With Tim
- MCP Explained Simply — What It Is and Why It Exists · TechWorld with Nana
- How Model Context Protocol (MCP) actually works · Google Cloud Tech
- MCP Tutorial: Build Your First MCP Server and Client from Scratch (Free Labs) · KodeKloud
Are you the creator and want this page changed or removed? Contact us and we will act within 48 hours.