We've been hearing so much about AI agents and all of the different protocols lately, right? So if you're wondering whether you need to use MCP or to

use ADK or maybe both of these or even neither for your AI agent, just know that you're not alone. Yeah, and before you search what is MCP, again,

we've got you covered. That's right. Because today we're going to be breaking down the model context

protocol and the agent development kit, talking about what they actually do, how they're different, some use cases, and when you would typically reach

for one versus the other. And spoiler, they're not really competing, but we'll get to that. Hey, whoa, no spoilers. Sorry, sorry, all right, let's

freak it down. Well, let's begin with the world that we're living in, right? Because AI agents, not

just chatbots, but agents that can actually do things are having a moment. Yeah, a very loud moment. Right. And as developers, when we start building

these things, we immediately hit two big questions. So, number one, how does my agent talk to external tools and data? But also, number two, how do I

actually build and orchestrate the agent? Yeah, so two different problems entirely. And that's

exactly where MCP and ADK come in. So the Model Context Protocol, or MCP for short, is an open standard created by Anthropic that answers the first

question. It's all about connectivity. How do you give an LLM access to things like APIs, and databases, and files in a way that's clean and reusable?

Right. And the Agent Development Kit, or the ADK, which comes from Google, is all about that second

question. How do you actually build, how do you structure to also run an agent? But let's say that you have multiple agents that you want to run, like

a team of engineers or developers. Well, how you structure all of these agents together to be orchestrated? Yeah, valid questions. I like to think of

it like this. MCP is about the LLM agents and how they talk to the outside world. And ADK is the

framework for building the agent itself. Okay, so model context protocol. Let's go a little bit deeper because before MCP, if you want in your LLM or

the agent that you're building, we have right here to access different resources that it needs to answer a question, which could mean, say for

example, accessing a database, so Postgres or something like that, or maybe scraping the web to find new

up-to-date information or maybe reading files that are on your directory or your file system. You had to write this custom integration every single

time. And I might write this integration, but Anna might write it, and other organizations are all doing the same thing just to retrieve data from

these different sources. Yeah, custom glue code, I mean, really accelerating work, don't you think? Fun

stuff, right? No, but MCP, what it did was standardize this interface and it defined a protocol, meaning a set of rules for how a client, so maybe

your AI agent or an LLM host here, would talk and communicate with these different types of servers, right, so what is actually exposing the tool or

the data that our agent needs in order to answer a question or perform task. Yeah, and how does the MCP

host communicate with the MCPs server? Do they have like their own secret language? Well, it's not actually much of a secret, because the message

format that MCP uses is JSON RPC, which is almost like plain text that is passed from the MCP server to the host agent and the LLM that's running. So

it depends, though, where the actual server is running. So for example, if we're running an MCP's server

locally on our machine, like an IDE plugin that's accessing your file system, or maybe a desktop application that's access accessing github. It's

going to use standard input and output to process and pass that data back and forth. Now, if we're trying to do this on the web with remote servers,

it's gonna use HTTP with streaming support in order to pass that information using things like

authentication tokens to authenticate that the host is actually talking to the server and back and fourth. Nice! So the MCP server is like a little

wrapper around your tool. You write it once and any MCP compatible client can use it. Exactly. And MCP has three main primitives. First off are the

tools, like what we've been talking about here. And these are functions that the LLM can call like

search the web or run this SQL query. Now, secondly, there's also resources. So resources are things that the LM can read. So files, documentation,

internal and external databases. And then finally, MCP also includes the capability for prompts that are pre-built prompt templates that you can use

and expose to the server so that you don't have to write them each time. Okay, and what happens if you

swap the model you use to build the application or maybe you build an entirely new one? Well, that's a great question. And actually, that is not a

problem at all, because since we're not rebuilding these integrations each time, we're actually able to reuse the same MCP server. And that's what

makes MCP such a time saver, because there's no need for countless hours spent building these custom

integrations to talk to our data sources. It's just plug and play. Nice. Yeah, and I think the thing that developers really appreciate about MCP is

that it's model-agnostic, right? So it doesn't matter if you're using Claude, GPT, Gemini, a local model, whatever. If it speaks MCP, it works.

Exactly, and the ecosystem is growing really fast. Actually, there's already MCP servers for a lot of the

resources that you use every day, like GitHub or Slack, Google Drive, Postgres as a database, Jira, Figma, and The List keeps growing because the

community is building them. All right, so you've got your tools figured out, maybe you've a couple MCP servers running, but now you need to actually

build the agent. And that's where ADK comes in. So ADK is an open source Python framework for building AI

agents, and specifically it gives you structure. Okay, so that's really interesting. What do you mean about having structure for these AI agents? So

at its core, ADK forces you to organize your agent in a way like you'd structure real software. Under the hood, it has a couple core building blocks.

Those are agents, tools, memory, events, and runners. All the primitives you need to build

predictable and testable systems. Okay, that's great. So, what does it actually look like in practice? Yeah, so let's start with the agent itself. In

ADK, an agent isn't just an LLM with a prompt, it's a defined execution unit. So it has a model, it has sets of instructions, tools it's allowed to

use, and a controlled reasoning loop. An ADK gives you different types of agents. So you can have

LLN-driven ones for reasoning, which are more flexible, or deterministic workflow agents. So these can be sequential, parallel, and loop, when you

want strict control form. And we also have the flexibility of creating our own custom agents. So that's really cool because ADK lets you pick between,

hey, we can let the model figure it out and other situations where we need to do these steps exactly

in order each time. That's exactly right. And behind the scenes, a user query is received by the runner and then passed to the agent. And once the

agent has a response, so a tool call request or a state change to report, it yields back and passes it to the runner. And the runner can then process

the update produced by the agent and can pass it upstream. That's super cool. And I'm assuming that the

runner executes these tools and it commits that change to the overall agent session state, right? Yeah. Exactly. So in this loop here, the agent is

suspended at each yield, so it's giving the runner full control to handle consequences before the agent sees what's going to happen next. And that's

what makes debugging and tracing behavior so much easier with ADK than with ad hoc agent code. I

understand that, I get that because I like predictable behavior and our agents historically don't always provide that, right? Yeah, and that's why ADK

also gives you proper session state and memory. So state is short-term. It's the working memory inside a single conversation. And memory is long-term,

it's what the agent remembers across sessions, such as user preferences. And for anything

external, ADK lets agents use tools to run code, call APIs, or even use other agents as tools. That's awesome. And ADK, I guess, it gives you this

entire framework, right? You've got structure, you've got state, the orchestration, the debugging, the whole thing. Yeah, it's pretty great. And

that's the power of it. ADK isn't just making an LLM do stuff. It's a full stack system for building

reliable, multi-agent architectures. Right, and I've heard ADK is great for these multi-agent systems where you could have a root orchestrator agent

that delegates subtasks to specialized sub-agents. So instead of one general purpose agent that we have, we've got a research agent, a writing agent,

a validation agent, all of these different individual roles that work together that are specialized

for each use case, and ADK supports different types of agents out of the box. Yeah, right, so you've got LLM agents, like we spoke about, which are

the classic think and act loops, but you also have workflow agents, so those are the sequential, parallel, and loop-based agents. And if you know

ahead of time that certain steps need to happen in order, you can hard code that structure instead of

leaving it up to the model. That's huge for reliability. Less LLM decision-making stuff that we don't always need and more ability to build custom

workflows to fix our problems and solve what we need. Yeah, exactly. An ADK supports multiple model backends, so you're not locked in. And the cool

thing is that ADK is a tool framework agnostic at the integration layer. So that means. Well, it means it

works with MCP servers. You can plug any MCP server in as a tool source for your ADK agent. Okay, let's make this concrete with a real scenario for

when you should use MCP or ADK, because it depends. It's a valid answer, I think, but it makes for a terrible video. That's fair. So let's say that

you built your own coding assistant that can search your repo, open up files, run tests for you, and

help you debug problems that you might have. So first question, how are you actually building the agent's logic, right? The memory, the tool use, the

reasoning that it's going to have, and the retries when it inevitably makes something worse. Yeah, so that's ADK territory. You're defining what the

agent's behavior is, how it decides to search the repo, for example, when to run tests, and how it

should react to inevitable failures. Agreed, and ADK helps you structure the cognition of the agent, so this involves the planning and the tool

orchestration and the guardrails so it doesn't delete your production database for debugging purposes. Yeah, that's some real nightmare fuel. Tell me

about it. But let's say now that your assistant needs standardized access to that repository, and to your

test runner, and access to your issue tracker. That's where MCP comes in. And so MCP is going to help us out to standardize how the model and the

agent talks to those external tools in a consistent way. It's that protocol layer. Okay, I like this. So, ADK defines what the agent should do, and

MCP defines how it actually does those things by communicating with the world while doing them. So

different layers, but complementary roles. It's not Rivals, right? Yeah, only in the title of the video. Well, listen, the algorithm demanded we have

some conflict. I get it. So, to wrap it up, if you're building AI agents, you're going to hear a lot about both MCP and ADK. Don't let the names

confuse you. Right? Because MCP solves this connectivity problem and ADK solves the orchestration

problem. They're complementary and they're not competitors. Yeah, and the real question isn't which one, it's what problem am I solving right now? And

hopefully this video gave you the context that you needed. That was good. I see what you did there. It's corny, but I'll allow it one time. You like

that one? I think, you know, I've got more if you'd like to hear some more. Well, how about we save

some for the next video? Alright, I tried. I tried, but if you're using ADK, MCP, or both, let us know down below. And if this helped you finally make

sense of these two concepts, please make sure to hit the like and subscribe to the channel for more content like this.