you need to learn MCP RIGHT NOW!! (Model Context Protocol)

Duration

38:40

Captions

1

Language

EN

Published

Sep 12, 2025

Description

🐳 Try for FREE the Docker MCP Catalog: https://dockr.ly/3UFTCj4 🖥️ Download Docker Desktop: https://dockr.ly/3HgjIGj You need to learn MCP Right Now!! The Model Context Protocol (MCP) changes everything. It gives LLMs like Claude and ChatGPT the ability to use real tools through APIs instead of clunky GUIs. In this video, I’ll break down how MCP works, why it’s so powerful, and how you can run it using Docker containers. I’ll even show you how to build your own custom MCP servers so you can connect AI to literally ANYTHING: Obsidian, Brave, Kali Linux, and more. Grab your coffee. Let’s go. RESOURCES: 📄 Guide/walkthrough (with MCP prompt example): https://github.com/theNetworkChuck/docker-mcp-tutorial 🐳 Docker Desktop Install Docs: https://docs.docker.com/desktop 🤖 Model Context Protocol Official Site (Anthropic): https://modelcontextprotocol.io 🐙 Docker MCP Gateway (github): https://github.com/docker/mcp-gateway TIMESTAMPS: 0:00 - Intro 0:40 - Problem: LLMs Suck at Accessing Code 2:40 - What is MCP? 4:06 - Running Your First MCP Server 7:32 - Client 1: Claude Desktop 10:12 - Client 2: LM Studio (Local Models) 11:48 - Client 3: Cursor (IDE) 12:31 - Build YOUR OWN MCP Server 19:05 - Building More Complex MCPs 23:19 - Kali Linux HACKING MCP 28:00 - How does this actually work? 32:51 - MCP Gateway, Explained 35:53 - Running an MCP Gateway with n8n 🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy **Sponsored by Docker SUPPORT NETWORKCHUCK --------------------------------------------------- ➡️NetworkChuck membership: https://ntck.co/Premium ☕☕ COFFEE and MERCH: https://ntck.co/coffee Check out my new channel: https://ntck.co/ncclips 🆘🆘NEED HELP?? Join the Discord Server: https://discord.gg/networkchuck STUDY WITH ME on Twitch: https://bit.ly/nc_twitch READY TO LEARN?? --------------------------------------------------- -Learn Python: https://bit.ly/3rzZjzz -Get your CCNA: https://bit.ly/nc-ccna FOLLOW ME EVERYWHERE --------------------------------------------------- Instagram: https://www.instagram.com/networkchuck/ Twitter: https://twitter.com/networkchuck Facebook: https://www.facebook.com/NetworkChuck/ Join the Discord server: http://bit.ly/nc-discord AFFILIATES & REFERRALS --------------------------------------------------- (GEAR I USE...STUFF I RECOMMEND) My network gear: https://geni.us/L6wyIUj Amazon Affiliate Store: https://www.amazon.com/shop/networkchuck Buy a Raspberry Pi: https://geni.us/aBeqAL Do you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!! fast and reliable unifi in the cloud: https://hostifi.com/?via=chuck What is MCP? Model Context Protocol Explained How to Use MCP with Docker Containers MCP Tutorial: Connecting Claude, ChatGPT, and More Build Your Own MCP Server from Scratch MCP + Docker = Insanely Powerful AI Tools Why Every Developer Needs to Learn MCP How to Connect Claude to Obsidian with MCP Using MCP to Supercharge Your AI Workflow Model Context Protocol Full Guide and Demo Running MCP with Kali Linux for AI Hacking The Future of AI Tools: MCP with Docker How to Make LLMs Actually Useful with MCP Installing and Running MCP in Docker Custom MCP Servers for Any App You Want Docker MCP Tutorial: Step-by-Step Setup Unlocking AI Superpowers with MCP Claude, ChatGPT, and MCP: Next-Level Integrations Using Docker to Run MCP Locally Build MCP Endpoints for Your Own Apps Model Context Protocol: The Missing Piece of AI #MCP #Docker #AI

Captions (1)

00:00

You need to learn MCP right now. MCP

00:03

makes AI do things overpowered things.

00:05

Like when I connected Claude to my

00:07

Obsidian vault. What? Or Brave or Kali

00:11

Linux? My jaw dropped. I mean, look at

00:13

this. Claude is hacking with Kali Linux

00:15

right now. So, in this video, I'm going

00:16

to show you the magic of the model

00:18

context protocol. I'll break down what

00:20

it is, show you how to use it with

00:21

Docker containers. It's all local, and

00:23

even how to build your very own custom

00:25

MCP servers for literally anything you

00:27

can think of. My goal by the end of this

00:29

video is to create a Kali Linux MCP

00:31

server so our LLMs can hack for us.

00:34

Doesn't that sound awesome? Get your

00:35

coffee ready. Let's go.

00:38

And shout out to Docker for making this

00:40

video possible. So, giving LLM access to

00:42

our tools makes them insanely powerful

00:44

and it's necessary if we want them to do

00:46

anything productive. But to do this is

00:49

kind of hard. And I hate to say this,

00:50

but you have to think about LM like

00:52

people to a point. Now, for us humans,

00:56

when we want to use tools like a task

00:57

manager or an email manager, we're not

00:59

going to be interacting with the code,

01:01

right? No, no one would use it. That's

01:03

why we have user interfaces or guies.

01:05

This nice, friendly interface abstracts

01:07

away the complicated code, making it

01:09

easier and possible for most humans to

01:11

use it. Solution found. Let's just give

01:13

the LLM a guey. They'll love it. No,

01:16

they won't. They hate gooies. At least

01:18

for now. LLMs, they love text. So giving

01:21

them a gooey, it's like they can do it.

01:24

It's hard. It takes forever. Okay, fine.

01:26

Just give them the code. LLMs love code,

01:28

right? Not going to work. They need

01:30

access to that code and your apps are

01:31

not going to give it. But hold up. What

01:33

about APIs? That would be perfect,

01:35

right? Application programming

01:36

interfaces were built so that one

01:38

program could use the tools of another

01:40

program. You can't give a program a

01:41

guey, but you can expose API endpoints

01:44

that allow a program to programmatically

01:46

use these tools in a language it

01:47

understands. So, for example, my real

01:49

task manager, ClickUp, they expose an

01:51

API endpoint that allows a program to

01:53

create a task for you. And when I

01:55

pretend to be a program, watch what

01:57

happens. Boom. Task comes in. Or I can

02:00

use the Obsidian REST API, pretend to be

02:02

a computer, and create a new note. How

02:05

cool is that? So, what's the point of

02:07

this video? Problem solved. Give the LLM

02:09

API access. Hold on. Let's say we did.

02:12

First of all, this API stuff, that's

02:14

code. in order to interact with the API

02:16

endpoints. That's going to be running

02:17

some sort of code, which the LLMs often

02:19

don't have access to. And even if they

02:21

did, look at this API documentation. I

02:23

mean, look at ClickUps. It's super

02:25

intense. You'd have to code each one of

02:27

those API interactions and instruct the

02:28

LLM on how to do it. Now, don't get me

02:30

wrong, people do this and it works, but

02:32

it's kind of a pain, right? And there's

02:33

no standard way to do it. There's got to

02:35

be an easier way, right? Check the title

02:37

of the video. MCP came in to save the

02:40

day. MCP is the model context protocol,

02:42

a standardized way to give tools to LLM.

02:45

It's kind of like how USBC solved our

02:47

cable issues. Created by Anthropic, it

02:49

did not take long for this to become the

02:50

industry standard. And here's why. Check

02:53

this out. So, instead of the LLM having

02:55

to run code to interact with the APIs,

02:57

we'll throw in what's called an MCP

02:58

server. This server is abstracting away

03:01

all the complexity of these API calls.

03:03

Now, what does that mean? It means all

03:04

the code that you would normally have to

03:06

write to interact with the API, the MCP

03:08

server is handling that. It has that

03:10

written into its code. It'll do all that

03:12

for you or for the LLM. So, all we have

03:14

to do is say, "Hey LLM, connect to this

03:16

MCP server." Slot right in. We'll say,

03:18

"Hey, Mr. AI, when you want to create a

03:20

task or get a task, you don't have to

03:22

code anything. Just simply ask the MCP

03:24

server to do it." The MCP server will

03:26

have these tasks or tools exposed like

03:28

create a task and all the LLM has to do

03:30

is simply ask and use that task. It

03:33

doesn't have to know anything about API

03:34

endpoints, anything about the code,

03:36

authentication, none of that. The MCP

03:39

server abstracts all that complexity and

03:41

makes it kind of stupid simple for our

03:43

AI. We essentially created a guey for

03:46

our LLM. They just have to click a

03:47

button. And the most exciting part about

03:49

this is that this MCP thing is now the

03:52

standard. So if your AI, if your LLM has

03:55

the ability to connect to an MCP server,

03:57

which most do now, everyone's adopting

03:59

it. Then you can connect to a ton of

04:01

applications because everyone's exposing

04:03

their APIs via an MCP server. Enough

04:06

talking about it. Let's have you try an

04:07

MCP server right now. Quick sip of

04:09

coffee.

04:11

Let's get you connected to one. I just

04:13

heated up my coffee. It's super hot.

04:15

Now, I've got good news. It's actually

04:17

crazy easy to run your own MCP server

04:19

right now locally on your computer. Let

04:21

me show you. It's going to be using

04:22

Docker. Shocker. That rhymed. And you

04:25

can do this on pretty much any machine

04:26

you want. Mac, Linux, Windows. The one

04:28

requirement is that you're running

04:29

Docker Desktop. Actually, let me do a

04:31

whole what you need thing real quick.

04:32

I'm not sure why I did jazz hands there.

04:34

That felt very weird. I can't imagine

04:36

how it felt for you. So, Docker Desktop

04:38

and you'll also need an LLM app,

04:40

something that can run large language

04:41

models and something that can use MCP

04:43

servers. I'm going to demonstrate three

04:45

options. I'll show you cloud desktop, my

04:47

personal favorite. It's free. This will

04:49

be using the cloud models, which are

04:50

fantastic. I'll show you LM Studio for

04:52

local models like Llama. And for all you

04:54

people who love, I'll show you Cursor.

04:57

Let's get started with our Docker

04:58

desktop install. It's really easy. I've

05:01

got a fresh Mac here. I'm going to go

05:03

out to docs.docker.com.

05:04

docker.com/destop

05:07

and that's it. I'll have all the links

05:08

below in a guide. For me, I'll do Docker

05:10

Desktop on Apple Silicon. I'm not going

05:12

to walk through Windows or Linux

05:13

installs, but they'll all be below. Keep

05:14

in mind, Windows does involve the extra

05:16

step of getting WSL 2 or HyperV set up

05:18

as a backend. We're not going to cover

05:20

that here, but there are docs in the

05:21

description below. All right, I'll go

05:23

ahead and install Docker Desktop and

05:25

then launch it. We'll sign our life away

05:27

by accepting all terms. Use recommended

05:29

settings. And now here, you can create a

05:31

Docker login if you want. You don't have

05:33

to, but I recommend it. It's free. No

05:35

pressure. Now, Docker Desktop is great

05:37

at running Docker containers. You

05:38

probably saw that coming, but maybe what

05:40

you didn't see coming is they're great

05:41

at running MCP servers with their MCP

05:44

toolkit. This is brand new, hot off the

05:46

presses. And when I first heard about

05:47

it, I didn't care so much. Honestly, I'm

05:49

like, so what? Then I tried it. And now

05:52

I use it every single stinking day. It's

05:55

amazing. Now, to get this working, we

05:56

have to turn on a few things. The main

05:58

thing is the MCP toolkit. We'll click on

06:00

that real quick. Actually, is it already

06:01

installed and set up? Let's go make

06:03

sure. Let's go to our settings. We'll go

06:04

to beta features. Okay, I already had

06:07

Docker MCP toolkit enabled. Go check

06:10

there right now to make sure you don't

06:11

already have it enabled. And that's um

06:14

all we had to do. Now, let's pick an MCP

06:16

server to run. They have a whole

06:18

catalog. Look at all this. Now, these

06:20

are official MCP servers that are part

06:22

of their catalog. As I mentioned, we can

06:23

make our own. I'll show you that here in

06:25

a moment. But let's search for one that

06:26

will be really fun right now. Obsidian.

06:28

So, yes, there is an Obsidian MCP

06:30

server. I'll just add the sucker. And

06:32

all I have to do is paste in my Obsidian

06:34

API key, which I can get from Obsidian

06:35

here. Now, Obsidian is a local open-

06:37

source notes application, my favorite. I

06:39

use it every day. And they have a

06:40

community plugin called local REST API

06:43

that I installed. We already used it

06:44

earlier. I'm going to grab this API key

06:46

that it provides and paste it into this

06:48

field here.

06:50

And that's it. Getting back to my

06:52

servers tab here. You can see I have an

06:54

Obsidian server, 12 tools available. If

06:56

I jump in there, I can see what the

06:57

tools are. Click on tools and you can

06:59

see that it's describing these tools in

07:01

plain language. Use Obsidian append

07:03

content to append content to a new or

07:05

existing file in the vault. Behind the

07:06

scenes, it's doing all these API calls

07:08

to the Obsidian REST API. But for you,

07:11

me, and the LLM, we just know we say,

07:14

"Hey, get some changes. Hey, do a simple

07:16

search." And it does it for you. You

07:19

ready to see it happen? Now, you're

07:20

about to see some slide of hand here.

07:21

Really just some magic behind the

07:23

scenes. Something absolutely crazy is

07:25

happening. Something called the Docker

07:26

MCP gateway. Okay, I'm not going to show

07:27

you that just yet. We'll cover more on

07:29

that later, but just know it's doing

07:30

some extra magic behind the scenes. Now,

07:32

notice under MCP toolkit, we have the

07:34

option for servers, the catalog, and

07:36

then we have clients. These are the LLMs

07:39

that can interact with the Docker MCP

07:41

servers. Look at that. Cloud desktop is

07:43

right here. What do you say we connect?

07:46

And that was it. I just did it. So, I

07:49

have Cloud running right now. This is a

07:51

free account. I don't pay for anything.

07:52

I'm going to restart it. Launch it

07:55

again. And by the way, ignore this. We

07:57

won't need this right now with our own

07:58

custom tools. Now, I'm going to click on

08:00

this setting box right here. And you're

08:01

gonna see something amazing. MCP Docker.

08:04

That's us. That's what we just did. If I

08:06

click on that, it's going to show you

08:07

the tools that we just added to Claude.

08:10

So, watch this. Yo, create a note in my

08:14

Obsidian detailing the best way to make

08:17

French press coffee. Let's go. Now, it's

08:21

going to start thinking. Then it's going

08:23

to realize, oh, I have a tool available

08:24

to me. I'm going to try and use that.

08:26

Let's look behind the scenes here. Yeah,

08:28

it's getting it ready now. It's going to

08:29

ask you permission to use that tool

08:31

because it is accessing things outside

08:32

of its normal purview. Sure, I will

08:34

allow it just this one time, though.

08:37

Okay, so it said it did it. Let's go

08:38

take a look.

08:41

There it is in my notes. Are you

08:43

stinking kidding me? H, it works the

08:46

same way for search. I'm going to create

08:47

a fun note here. Just something random.

08:51

Cool. Now I'm going to ask it to search.

08:54

Hey, search my vault for something about

08:58

drinking tea. I'll allow one time to do

09:00

the simple search.

09:03

It's going to do a broader search. It'll

09:04

try a few times. It's going to read the

09:06

note or get the file contents. But see,

09:08

here's what's happening here. This is

09:09

why this is amazing. It's not having to

09:10

authenticate. Doesn't know anything

09:12

about that. Doesn't care. Doesn't know

09:13

any code or API, anything at all. It

09:16

just knows that it can call that tool,

09:18

use that task tool, and that's it. And I

09:21

got the information. This is so powerful

09:23

for us. Are you kidding me? Coffee break

09:26

for that.

09:28

Hey, never chat from the future here.

09:30

What I'm showing you here, it's cool,

09:31

but it's all local. At this time stamp,

09:33

I'm going to show you the Docker MCP

09:35

gateway and how we can make any tool you

09:36

build remotely accessible from things

09:38

like, I don't know, N8N. Dude, it's so

09:40

cool. I'll see you there. Back to the

09:42

video. I seriously have goosebumps just

09:43

talking about this. And I've been using

09:44

this for a minute now. What do you say

09:46

we go add a few more MCP servers?

09:47

Because we can add a lot. We can go

09:49

crazy. Let's go to the catalog. duck.go.

09:52

Sure, I want one. It's already there.

09:54

Fetch. It'll grab URLs. Got it. Or it'll

09:56

grab the contents of a website given a

09:58

URL. Oh, they have so many cool ones.

10:01

Oh, they have Brave search. I need an

10:03

API key. I don't feel like getting that

10:04

right now. Oo, Airbnb search. Let's do

10:06

that. Ooh, YouTube transcripts. We can

10:09

do that. That's crazy. Okay, let's try

10:11

it out. Now, this time I'm going to add

10:13

some more clients. Let's add um cursor.

10:16

Click connect. Done. LM Studio. Click

10:18

connect. Done. Now, it's that easy

10:20

because I already have cursor in LM

10:22

Studio installed. And behind the scenes,

10:23

all it's doing is updating an MCP server

10:26

config file that each one of these apps

10:27

has. Now, let's try LM Studio. I'm going

10:29

to restart it real quick to make sure

10:31

I've got everything I need. And LM

10:32

Studio again is what we can use to run

10:34

local um LLMs. I'll load a model. We'll

10:36

do Gemma 312B. And then I think I'll go

10:38

down here to my plug and see. Oh, yep.

10:41

There it is. We'll connect our MCP

10:42

tools. MCP Docker sitting right there.

10:44

If I click that tool icon, we can see

10:46

all the tools, I think. Oh, yeah. There

10:47

it is. Beautiful. Now, let's ask it to

10:49

do something. So, I'll say, "Find the

10:51

top 10 best Japanese restaurants in

10:52

Dallas. Use the dot.go tool and then

10:54

create a note in my vault with your

10:56

findings using the Obsidian tool. Local

10:58

model. Let's see how you do, buddy."

10:59

Keep in mind, these MCP servers are

11:01

running locally on my computer. I'll

11:02

give it permission. Go ahead, bud. Okay.

11:05

But it didn't create the note in my

11:07

vault. Let's try it again. Okay. Gemma's

11:10

kind of dumb. Let's try DeepSeek, a

11:12

model that can think.

11:16

Give her permission. Come on, buddy. You

11:17

can do this. All right. Gave permission

11:19

to Obsidian. Okay. It found the Japanese

11:22

restaurants. Let's check Obsidian. It

11:24

did it. Oh no.

11:28

Local models are dumb. But it did the

11:31

tool call, which is what we cared about.

11:32

If we did that same thing in Claude, it

11:34

would move very quickly.

11:43

Okay. Said I did it. Let's check it out.

11:45

Oh, I did a great job. Check that out.

11:47

That's so fun. Let's see if Cursor can

11:49

do the same thing. I'm going to restart

11:50

Cursor.

11:52

Grab the transcript

11:54

for this YouTube video. Look at that.

11:58

Run the tool. And this is the free

12:00

version of Cursor, too. Oh my gosh, it

12:02

grabbed it. Now, let's add that to my

12:04

Obsidian Vault. It's so powerful, man.

12:08

Okay, it finished. Let's go check our

12:09

note. There it is. Grabbed my YouTube

12:12

video, summarized it, put it in our

12:15

note. Come on. Are you not excited about

12:18

that coffee stinking break?

12:22

You know, people ask me, "Is that

12:24

enthusiasm? Is that fake? Is that

12:26

scripted?" No, it's not. Ask my wife.

12:29

I'm always like this. All right, here we

12:31

go. It's time for you to build your very

12:33

own MCP server. Custom, just how you

12:35

want it. Because there may not be an MCP

12:37

server out there that does what you want

12:39

it to do. So, right now, I'm going to

12:40

walk you through building three MCP

12:42

servers. Yeah, three. Because it's kind

12:44

of easy. I did a lot of work to figure

12:45

out how to make this work well. I went

12:47

through the pain for you. The first one

12:48

will be a fun demo, a simple dice roller

12:51

just to kick the tires, make sure things

12:52

are working. Then I'll show you how to

12:53

build some real tools involving APIs.

12:55

But seriously, you're going to feel like

12:57

you can do anything after learning how

12:58

to do this. The world we're living in

13:00

right now is crazy. Let's get started.

13:03

Now, the secret sauce behind all this is

13:05

this prompt that I built. Here it is.

13:07

Network Chuck's MCP server build prompt.

13:09

contained in this one prompt is

13:11

everything an AI will need to build you

13:13

an MCP server. All you have to do is

13:15

describe what you want. Let's do it

13:17

right now. By the way, if you don't want

13:18

to run all this LLM stuff right now, I

13:20

do have this entire example in my GitHub

13:22

link right here. Just around maybe here,

13:24

we'll tell it something. Okay, I want to

13:25

build a very simple dice roller MCP

13:27

server. I wanted to do coin flips, DND

13:29

stuff, any kind of dice roller mechanic.

13:31

Bake that in, make it simple and clean.

13:33

Let's copy and paste this whole thing.

13:35

Pick an LLM that you know is pretty good

13:36

at coding. Your quality will vary. I

13:39

right now love Claude Opus 41. He's kind

13:41

of amazing. Just going to paste this in

13:43

and go. Coffee break while AI makes

13:45

magic things happen. And what this will

13:48

spit out is everything you need to build

13:50

this server. It'll walk you through it

13:51

step by step. I think I asked it to do

13:53

too many things.

13:56

It's almost done. Okay, it finally

13:58

finished. It gave us a lot of stuff and

14:00

we're going to follow it step by step.

14:01

Now, it created us five files. A Docker

14:03

file, requirements, dice server, readin,

14:05

and a cloud. MD file. You really only

14:07

need the first four unless you're using

14:09

clot. And all the files should be right

14:11

above it here. So, first I'll create a

14:13

directory. Call it my dice or something.

14:15

I don't know, something stupid. Jump in

14:16

there. cd my dice. And we'll create our

14:18

Docker file real quick. I'm just going

14:19

to PB paste that in there. It's a

14:21

special thing on Mac.

14:23

The Docker file will describe how to

14:25

build a Docker container, which we're

14:26

about to do. We'll then do the

14:27

requirements file, which is almost

14:29

nothing. Requirements.txt

14:33

and then the server, which will be the

14:34

biggest piece of this.

14:36

dice_server.py.

14:40

And by the way, to create these files in

14:41

the command line, you can use nano them,

14:43

I don't care. And then finally, the

14:44

readme file, which is just nice to have.

14:48

Now, that's all we really need to do

14:50

this. We're going to run one command

14:52

right now. We'll follow the instructions

14:54

here. Yep, right here. Docker build.

14:56

Paste that in. And it's going to build a

14:59

Docker container right now. Quick coffee

15:01

break.

15:04

And what it's doing, if you're not

15:05

familiar with this, is it's taking all

15:06

that stuff, the Docker file, which

15:08

describes how to build the Docker

15:10

container. It's going to add our Python

15:11

server config. And it's done. If we type

15:14

in Docker image ls, we'll see our DICE

15:18

MCP server right there along with our

15:20

other MCP servers that we added through

15:22

the Docker catalog. Speaking of catalog,

15:25

we need to make our own. Now, see here

15:26

in the instructions, they say you can

15:27

make a catalog directory if you don't

15:29

already have one. You probably already

15:31

have one. And if we type in ls do our

15:33

home directory look in Docker the Docker

15:36

directory. It's hidden inside MCP and

15:38

cataloges. See I already have a few here

15:41

just kind of chilling out. If you just

15:42

install this you'll just see

15:43

dockermcp.yaml.

15:45

We're going to make our own right now.

15:46

Your AI prompt should spit out a custom

15:48

YAML. We'll grab that. We'll create our

15:51

own right now in that location.

15:54

Docker MCP cataloges. I'll call it my

15:57

custom catalog.

16:00

Done. And there's one more thing we have

16:02

to do and it's going to tell us right

16:03

here. We need to edit the registry. Now,

16:05

this is how the Docker MCP gateway is

16:07

going to work. Docker has their built-in

16:08

catalog. You can also add custom

16:10

cataloges like this or like this. And

16:12

that's just a catalog. Like you shop for

16:14

the MCP server you want to add. Once you

16:17

do add them, they get added to what's

16:19

called the registry, which if I ls

16:22

the Docker MCP directory, you can see

16:24

the registry file is right there.

16:25

registry.yaml. Let's look inside that

16:28

real quick.

16:33

And there is simply a reference to our

16:35

installed servers. And it's when you

16:36

actually install it and register it that

16:38

it shows up here. Now, we're not going

16:39

to be able to do that through the guey.

16:40

So, we have to add ours manually here.

16:42

It's actually pretty easy. We're going

16:44

to do nano or whatever you want to use

16:45

to edit this file. And at the very

16:48

bottom, using the same format, keeping

16:50

everything lined up, we will add our

16:51

server. It's called dice according to my

16:54

prompt here. And we put that ref thing.

16:56

Crl + xy. Enter to save. That's all we

16:58

got to worry about. And let me tell you,

17:00

uh, we're almost done. I was going to

17:01

say we're done, but we're not done yet.

17:03

We do need to edit our cloud MCP server

17:05

config. We're going to change it to look

17:06

something like this. I'm just going to

17:07

copy this and paste it into my cloud

17:09

config here. And there's a few things

17:10

happening. Notice it's still running the

17:12

Docker MCP gateway command. It's just

17:14

running a few more options. And I

17:16

actually need to change two things here.

17:17

First, I'll need to make sure I change

17:19

my home directory to be the exact home

17:21

directory I'm using. It's going to mount

17:22

that as a Docker volume. And look,

17:24

cursor is like, let me help you out.

17:25

Thank you, cursor. And then down here,

17:27

you can notice that with the Docker MCP

17:29

command, we can run more than one

17:30

catalog. And that's the secret sauce

17:32

here. We're referencing the main Docker

17:34

catalog. And then also our custom one,

17:36

which I need to change that name because

17:37

I did not name it custom. I named it my

17:41

custom catalog.

17:44

That should be it, I think. And then

17:45

notice we're referencing this registry

17:46

that we already edited. And that should

17:48

be all we have to worry about. Going to

17:50

save this file. And I'm going to launch

17:52

Claude. Fingers crossed we get no

17:54

errors. Claude, don't disappoint me,

17:56

buddy. Here we go. You'll get a scary

17:59

error if it doesn't like it because it

18:00

tries to test the containers. So far so

18:02

good. Click on my tools. Go down to my

18:04

MCP toolkit gateway and see if my tools

18:09

are there. Come on. Flip a coin. That

18:11

looks nice. Oh, come on. Come on. Come

18:14

on. Roll. There's all the stuff. There's

18:16

all the tools. Cool. It's showing up.

18:19

The MCP tools are available, but do they

18:21

work? Let's try it out. Now, the read me

18:23

file gave me some options to say or try.

18:26

Okay, let's roll a 2d6

18:31

for me using the dice tool.

18:36

Come on. Come on. I will give you

18:37

permission, buddy. You got this.

18:41

It worked. Yes. Oh, let's do something

18:44

simple like flip a coin using the dice

18:48

tool. Man, so cool. I can generate D and

18:52

D stats. Let's try this.

18:56

I don't play D and D, so I don't know

18:58

what that means. Oh my gosh, what's it

19:00

even doing? Well, that's cool either

19:02

way, which I have no idea what's

19:04

happening, but it seems awesome. Okay,

19:05

we got a simple MCP server out of the

19:07

way, but what about something that is a

19:09

bit more complex? For example, I use a

19:11

timer tool called toggle, which I use to

19:13

track how much time I'm using to script

19:15

and and film. So, for example, right now

19:18

over here in my browser, I'm currently

19:21

filming and I've been doing that for 51

19:22

minutes. Toggle has a great API, but no

19:25

MCP server. I would like to use an MCP

19:27

server so I can chat with Claude or

19:29

whatever LLM I have and control my

19:31

timers or check in on my timers. Let's

19:33

do that right now. So, back here at the

19:35

prompt, I just got to describe what I

19:36

want.

19:38

I want to create a toggle MCP server.

19:43

This will

19:45

use the toggle API. Now, I'm not going

19:48

to sit here and talk about this the

19:49

entire time. You'll see what I write,

19:51

but I'm having to make sure I answer all

19:53

these questions here.

19:59

All right, that's what I want. I want it

20:00

to do three things. Start a timer, stop

20:02

a timer, and view existing timers. And

20:04

I'm just pasting the link to the toggle

20:06

API documentation. Let's go find it.

20:09

Okay, it should be able to figure

20:10

everything out past that. All right,

20:12

Claude, new project for you. Go coffee

20:14

break while I build this another MCP

20:16

server.

20:19

I also have it programmed to ask any

20:22

questions that aren't answered that it

20:23

needs to have answered to complete this

20:25

task. Now, remember, when you're working

20:26

with AI, it's all about context. If you

20:28

provide it enough context, good context

20:30

for what you want to do and you describe

20:32

it well, you're going to have amazing

20:34

results. Okay, it finished. Same steps

20:36

as before with one minor difference. So,

20:38

I'll do my Docker file. So, I'll create

20:41

a new directory, add in all the files.

20:43

All right. Now, I'll build that new

20:44

server.

20:47

This is so cool. And then I'll need to

20:49

add my API key. Now, remember the cool

20:51

thing about Docker MCP gateways, we can

20:53

manage our secrets with Docker.

20:54

Remember, I haven't told you that yet.

20:56

The Docker MCP gateway, it can help you

20:58

manage your secrets, things like API

21:00

keys and tokens. Keep that stuff out of

21:01

your code and nestled safely inside

21:03

Docker MCP secrets. Anyways, back to me.

21:05

Also, I explain more about Docker MCP

21:07

gateways later in the video. As I

21:09

mentioned before, you don't want to miss

21:10

that part. So I'll do docker mcp secret

21:14

list or ls rather to see what we have

21:17

just our obsidian API key that we added

21:19

earlier in the guey but we can do it

21:21

manually here as well. So I'll do docker

21:23

mcp secret and it's going to be set and

21:27

my toggle API token environment variable

21:29

and then I'll add in my API key right

21:31

now. Done. Secret set. Let's do ls once

21:35

more to see if it's there. Yep, there it

21:37

is. Now it's time for the catalog piece.

21:38

Now I could make a new catalog. You can

21:40

have a bunch or I can just add this to

21:42

my existing catalog to make it easy. And

21:44

I think I'll just do that. So I'll grab

21:45

just the part I need, the toggle server

21:48

itself describing all of its tools. And

21:50

then edit my custom catalog

21:57

and add it right after dice. I think

22:00

it's all lined up. Awesome. Crl + XY

22:02

enter to save. And then we'll update our

22:04

registry. adding that tool right below

22:07

dice.

22:12

Now, because that catalog is already in

22:13

our Claude configuration, we don't have

22:15

to worry about it. We'll just restart

22:16

Claude. And that should be all we have

22:17

to do. Fingers crossed. Here we go. I'm

22:20

doing this live. Like, what you saw was

22:22

real. Everything past this point. No

22:24

errors. Oh my gosh, that's so good.

22:25

Okay, let's check our tools. The timer

22:28

stuff might be at the bottom here. Ah,

22:30

there it is. Start, stop, view, timers.

22:33

Oh, okay. So, currently I'm filming and

22:35

I have a timer for that. Do I have any

22:38

current timers right now? I'm not even

22:41

going to tell it what tool to use. Let

22:43

it figure it out. Come on. Come on. Of

22:46

course, buddy. Here you go.

22:49

Yes, it's I almost spilled my coffee.

22:51

Oh, no. I did. But it worked. I got to

22:53

clean this up.

22:56

You'd be surprised how often this

22:58

happens. Okay, now let's say um stop

23:01

that timer.

23:04

Can it do it? No, you didn't. It totally

23:08

did. Okay, now restart it. Come on. Oh

23:12

my gosh, it did. That's so cool.

23:15

Isn't that just the most insanely

23:17

powerful thing you've ever seen? You can

23:19

do whatever you want. How about we build

23:20

a hacking MCP? Yes, I'm going to show

23:24

you how to build right now a Kali Linux

23:26

hacking MCP. This one is interesting and

23:29

we won't need any special uh API stuff.

23:31

We're just going to run a Kali Linux

23:33

container, which is actually supported

23:35

now on a Mac. So, that's really cool.

23:37

We're going to run it right here on our

23:39

machine. And I've got a description here

23:40

that I've used. Let's see how well this

23:42

does. Okay, that should give it a lot of

23:44

information. Let's throw it in there and

23:46

let it go to work. Now, it may kick back

23:49

on you because you're trying to build a

23:50

hacking container, but if you frame it

23:52

the right way, it'll be fine usually.

23:54

Okay, I like that. Happy authorized

23:56

testing. It's done. Let's build it out.

23:58

Same story as before. for we'll create a

24:00

new directory, create all our files,

24:03

build our container, which might take a

24:05

moment. So, perfect time for I mean,

24:07

well, you know, by this point. Tell you

24:09

what, while you're sitting there, have

24:10

you hacked the YouTube algorithm today?

24:13

Let's make sure you do. Hit that like

24:14

button, subscribe, notification bell,

24:16

comment. You got to hack YouTube today.

24:19

Ethically, of course.

24:23

Okay, that actually was pretty fast,

24:25

which makes me a little bit nervous, but

24:27

we'll see how it goes.

24:30

right under our toggle server and edit

24:33

our registry.

24:36

All right, it's done. I really hope this

24:38

works. We're going to restart Claude.

24:42

No errors. No errors. Come on. Come on.

24:47

Okay, let's see if our Cali tools are in

24:49

there. We should see some pretty crazy

24:51

stuff in there. If it's all working

24:52

correctly. H, it's not there. What tools

24:56

am I looking for? There should be like

24:57

an end mapap scan. Nothing. It hates me.

25:01

Let's double check our work. Maybe it

25:03

wants my secret set. That's why it's

25:05

failing.

25:08

I feel good this time.

25:10

Yes. Okay. I just wanted the secret set.

25:13

Okay, cool. Now, let's test some Kali

25:15

Linux

25:18

scan on network 10.70.2.024.

25:26

do a pretty quick one. Okay, we're

25:29

allowing the tool if this works. Oh my

25:31

goodness. Oh, there's a white list. Did

25:33

I put in a white list myself? Oh, yes.

25:36

Yes, yes, okay. Okay, it put in guard

25:40

rails for me, Claude. Oh, all right.

25:45

So dumb.

25:47

Remove the white list stuff. I want this

25:50

wide open.

25:54

put in guard rails

25:57

can't stop me from hacking. Okay, I got

25:59

it to give me what I what I needed. I

26:02

think I'll have to adjust the Docker

26:04

file and the server. I'll just do them

26:06

all. Who knows what this LLM changed

26:09

requirements is the same.

26:12

Let's build it again. That should be it.

26:14

I want restart Claude. Let's check our

26:16

tools. Make sure they're there. There

26:18

they are. Okay. Again. Okay. Okay, I'm

26:21

going to change it to make sure I'm

26:22

running as root. Okay, that should do

26:24

it. Building again. Restarting Claude.

26:28

Come on. What the heck? Oh, the Docker

26:31

file was screwing me up. Yeah, comment

26:33

out the user.

26:36

That's what it was. This is so dumb.

26:38

Let's build it again.

26:41

All right, better work this time.

26:44

It's driving me nuts.

26:47

Let's do a Docker PS. See if it's

26:50

running. It's running, but it's only

26:52

running while we're doing this. Kelly

26:54

Linux is being used right now by an LLM,

26:57

by AI. I can talk to my hacking box with

27:00

plain language. Hey, go hack that thing.

27:02

And it does it. Now, while that's

27:04

scanning, I'm going to show you one I've

27:05

already built using the exact same

27:07

methods we've used here so far. It's on

27:09

my MacBook. I want to show you this one

27:10

because I've played with this one a lot.

27:12

This will all be in the documentation

27:13

below. Got a few more tools here. Let's

27:15

try this. It's just so crazy. We can do

27:18

this. All right. Doing an end mapap

27:19

scan. This is so awesome. I finished in

27:22

endmap not necto durb buster. And in

27:25

case you're wondering, you can use all

27:26

these things with claw code as well.

27:28

This one I don't know what's going on

27:29

with him. He's taking forever.

27:34

So in case you're wondering, I'm using

27:35

the DVWA web app. An app that's

27:38

intentionally insecure so you can try

27:40

and hack things. And there's a log of it

27:42

right here. Me hitting it. Oh, cool.

27:44

This one's working now. WordPress scan.

27:46

WP scan. And dude, this thing's killing

27:49

it.

27:53

SQL map coming in. I'm like using AI to

27:55

hack this from like three different

27:56

computers right now. This one finished.

27:59

It found out what it was. Now, if you're

28:01

like me, you got to be wondering, how is

28:02

this all working? Like, are these MCP

28:05

servers actually running as Docker

28:06

containers? Are they running all the

28:07

time? If I run Docker PS right now, am I

28:10

going to see containers running? No.

28:12

Then what's happening? And are all MCP

28:14

servers local like this? or are there

28:16

remote MCP servers? Let's talk about

28:18

that right now. We're about to get super

28:20

nerdy. I hope you're ready for this.

28:24

Let's dive in. Now, first thing I want

28:26

to show you is that whenever we're

28:28

actually engaging with an MCP server

28:30

here with Docker Desktop, it's running

28:32

those MCP server containers

28:35

briefly and then taking them down. You

28:37

want to see? Watch. Let's do this

28:38

command. Hope it works on Mac. I haven't

28:41

tried this. do watch dash n0.5

28:44

docker ps

28:47

brew install watch

28:52

dang.

28:54

All right, we'll just run it while we're

28:56

doing stuff. Let's use claude to call a

28:58

tool and we'll just spam docker ps. Use

29:00

Airbnb tool to find a house in Tokyo for

29:05

a family of eight for two weeks starting

29:08

October. Let's get our command ready.

29:11

Allow once. Let's watch. Oh, wait. I

29:13

wasn't ready. Ah, here we go.

29:18

It was too fast. I didn't catch it in

29:20

time. We'll just use this watch command

29:22

here or this while true loop. Ah,

29:24

perfect.

29:26

Let's see if it shows up now. Ah, there

29:28

it is. We briefly caught it. It's so

29:31

fast. That took longer than I thought it

29:33

would be to track it. All that to say,

29:34

every time we engage with an MCP server,

29:37

a Docker container for the MCP server is

29:39

spun up and spun down. They're not

29:41

running all the time, only when we need

29:42

them, which is kind of cool. But that's

29:44

only running an MCP server locally.

29:45

There's actually other ways to access

29:47

MCP servers, specifically remote MCP

29:49

servers. There's one from Coin Gecko,

29:51

which is a popular site we can use to

29:53

find out the prices of cryptocurrency.

29:54

So, we'll have this Coin Gecko MCP

29:56

server to cursor, for example. We'll go

29:58

to our cursor settings and go to our MCP

30:00

and integrations config and we'll add a

30:02

new custom MCP server. And what it's

30:04

going to do is open up a MCP server

30:06

file. And by the way, this is exactly

30:07

how most of the applications we use

30:09

look. In fact, watch. Look at Claude.

30:11

This right here is Claude's config. I'll

30:13

open that in cursor too. And now you're

30:14

not seeing double. These are two

30:16

different uh config files, but it's a

30:18

standard, right? So they look the

30:19

stinking same. But here for cursor, I'm

30:21

going to change this config. Adding coin

30:23

gecko right here. Notice our Docker MCP

30:26

server is running a command with the

30:28

Docker command and all these arguments.

30:30

We'll cover that in a second. But this

30:32

one here is actually just reaching out

30:33

to an external URL. This is an external

30:36

MCP server. We're not hosting it.

30:38

Someone else is. And it's using this

30:39

transport SSE. We'll cover that here in

30:41

a moment. I'm going to save it. We'll

30:42

open up a new chat here and say, what is

30:44

the current price of XRP? Use the Coin

30:48

Gecko MCP server. We'll let it run the

30:51

tool. Let it get the sample price. And

30:53

there it is. So, that's super handy. But

30:55

this kind of drove me crazy. And if

30:56

you're like me, you probably thought the

30:57

same thing. Like, how is this

30:58

communication working? What do MCP

31:00

servers use for communication for

31:01

transport? Well, it depends on if you're

31:03

running local or remote. The most

31:05

interesting one that I'm like, how is

31:06

this working was docker because we're

31:08

simply I mean this all this is doing.

31:09

It's configured to run the Docker

31:11

command plus MCP gateway run. Like

31:14

literally, the command will be like

31:15

this. I can probably run it right now.

31:16

Docker MCP gateway run. Like, yeah,

31:20

that's what it's doing. And look, it's

31:22

actually running. and listing all those

31:24

tools and the server is now up. I'll

31:26

stop that. So, what's really interesting

31:28

is every time you try to use an MCP

31:30

server with Docker, it's actually going

31:31

to run the MCP gateway and then run the

31:34

specific MCP server. It's kind of crazy.

31:36

We'll cover that here in a second. I

31:38

know I keep saying that, but again,

31:40

seriously though, if we're just running

31:41

commands, how is this working? What's

31:43

the communication? It's actually just

31:45

using standard out, standard input and

31:47

output via the command line. That's it.

31:49

This is direct communication between

31:50

local processes on the same machine.

31:52

JSON RPC messages are exchanged through

31:54

pipes. Meaning the transport is almost

31:57

nothing. It's just like you sitting next

32:00

to me and I go, "Hi." Like that's it.

32:02

There's no need to go over a network or

32:04

anything, which is fantastic because

32:05

there's like no latency, no network

32:07

overhead. And you'll see that in

32:08

situations like this where we're running

32:09

Docker MCP servers locally. Now, you can

32:12

run MCP servers without Docker. Docker

32:14

is just making it crazy easy for us. But

32:16

most of the time when you're running on

32:17

your local machine, you're going to be

32:18

using standard input and output. But

32:20

what about when it's remote, not on the

32:22

same computer, not on the same network.

32:24

Well, we're going to be using HTTP. And

32:26

in most cases, it should be HTTPS.

32:29

And that's for client to server. It's

32:30

going to be using SSE or server side

32:32

events, which is what we see right here

32:34

as our transport for server to client.

32:36

And this is a lot more complex, right?

32:38

Like you're setting up a web server at

32:40

this point. You're setting up

32:40

authentication. So operating a remote

32:42

MCP server is a whole thing. Whereas

32:45

running your own MCP server in your own

32:46

Docker container on your local machine,

32:48

you're just using standard input and

32:49

output. All local, man. It's awesome.

32:52

But now, real quick, I want to talk

32:53

about this MCP gateway thing because

32:56

it's a little crazy. And by crazy, I

32:58

mean awesome. Normally, you'd have to

32:59

configure an MCP server like this, one

33:01

at a time, one service. So, we'd have

33:04

multiple entries here for whatever

33:05

service we want. But we saw that in

33:07

Docker, we didn't add just one server to

33:09

our config, did we? We added a bunch.

33:11

Here's our list of servers right here.

33:12

We have what, how many? six. Yet in our

33:15

MCP server list here in cursor, we have

33:18

one MCP server set up with Docker.

33:20

That's the gateway. If I already use

33:22

some marketing speak right now, buckle

33:23

your seat belts. The Docker MCP gateway

33:25

provides secure, centralized, and

33:28

scalable orchestration of AI tools

33:29

through containerized MCP servers. What

33:32

does that mean? It means when we have

33:34

Claude or Cursor, our clients, we just

33:37

connect them to one MCP server. We only

33:39

need to manage one connection. And this

33:41

one connection, this one MCP server

33:43

gives us access to a lot of stuff, a lot

33:46

of other MCP servers. So, I don't know

33:48

about you, but it seems like this is a

33:51

lot cleaner than this. And of course,

33:53

we'd also have to deal with all the

33:55

authentication, the secrets for each

33:57

connection, for each client that

33:59

connects. But not with Docker MCP

34:01

gateway. It's all centralized right

34:02

there. Killer. I hope you're starting to

34:04

see how cool this is. Or is it just me?

34:06

I don't know. Comment below if it's just

34:08

me or if you're joining me in this

34:10

excitement. Hold on. I need some more

34:11

coffee. I'll be right back. You can get

34:13

some more coffee, too.

34:18

Okay, that's steaming, man. Check that

34:20

out.

34:24

Almost don't even need to drink it.

34:25

Yeah, I do. Now, let's get to the CLI

34:27

real quick. My favorite place in the

34:29

entire world. Let's go. You saw that we

34:31

have some new commands with Docker.

34:33

Things like Docker MCP gateway. We just

34:35

tried that out. Our LLM app is actually

34:37

going to run that command for us or we

34:39

can run this manually. We don't really

34:41

need to unless we want it to be accessed

34:43

remotely. We can actually do this.

34:47

We can specify the transport to be

34:49

standard input output SSE streaming to

34:52

make it available over the network. I

34:55

know right. Imagine running your own

34:57

Docker MCP gateway server for all the

35:00

things in your home network or your

35:02

business. just okay we're on the same

35:05

page here. I think we also have the

35:07

docker mcp catalog command which we can

35:10

look at our if we do ls we can see we

35:12

have our default docker mcp catalog and

35:14

there is an official way where you can

35:17

create your own docker mcp server and

35:19

submit that to be added to the official

35:21

catalog. You can do that but you have to

35:23

get it approved. You have to wait and

35:25

I'm not very patient. I don't know about

35:26

you. Docker actually does help us manage

35:29

our secrets. So Dr. MCP secrets. Now

35:31

what's a secret? What are you talking

35:32

about? Things like API keys, ooth. You

35:35

can securely manage your secrets with

35:36

Docker. Now, two more crazy things I

35:38

want to show you. Right now, we're

35:39

running Docker MCP gateway with Docker

35:42

Desktop. That's like the official way to

35:43

do it right now because they have the

35:44

MCP gateway in beta that you can run

35:46

alongside of it. But if you check out

35:47

the documentation, and I bet they're

35:49

going to make it better and better and

35:50

better and better. Dude, this coffee is

35:51

like hitting me like crazy. I love it.

35:53

I'll put this link below, but you can

35:55

run the Docker MCP gateway as a Docker

35:57

container totally apart from the Docker

35:59

MCP toolkit and Docker Desktop. Been

36:02

saying Docker a lot. Coffee break. Which

36:04

means yes, you could run a headless

36:06

server somewhere else running all kinds

36:07

of crazy stuff. And I'm going to show

36:09

you this real quick. I'm going to run

36:10

the gateway Docker MCP gateway run

36:14

transport. I'm going run it with SSE. I

36:16

think that's how we do it. Yes. So now

36:18

it's actually running over the network

36:19

instead of standard input output. It's

36:21

on port 8811. That's my IP address. So,

36:23

real quick, I'm going to jump into NAN,

36:25

my local NAN configuration here in my

36:27

studio. This is going to be so powerful.

36:29

I'll create a new workflow. I'll have an

36:31

AI agent come in and do something crazy.

36:33

And I'll give it a tool. How about an

36:35

MCP server? I think it'll just be HTTP

36:38

slash the IP address port 8811.

36:42

Let's see.

36:45

Oh, it sees everything. Yes. Look at

36:47

that. Over the stinking network. Okay.

36:50

Okay. So, let's um I'm too excited. I'm

36:52

so sorry. Let's give it a crazy prompt.

36:57

Okay. Three steps. Find the best

36:59

restaurant and Airbnb next to it and

37:00

then put it in my Obsidian vault using

37:03

three different tools. Can it do it? I

37:04

have no idea. Let's see. I'm so excited

37:07

to see if this works.

37:09

Something broke, though.

37:11

How to tell to ignore robots. See if

37:13

it'll be okay. Oh, yeah. Yeah, it's

37:15

great. Yes.

37:17

Look at the logs here in the terminal.

37:19

It using all these things, all these

37:20

tools, but I forgot step three. Oh, I

37:23

didn't give it memory. Hold on. You know

37:24

what? Let's try to oneshot this.

37:29

Let's go. This is magic. This is pure

37:31

magic.

37:32

You did it. There it is. All right. So,

37:35

where's the best restaurant? Okay. So,

37:36

it gave me a lot of options. Needs some

37:38

work on the prompt, but still, it used

37:40

all the tools just like that over the

37:42

network. And it was with one command I

37:45

did, right? Like that wasn't that hard.

37:47

Okay, you just learned MCP. Not only can

37:50

you use an MCP server, but you learned

37:52

how to build one yourself and you know

37:54

how it works. That's a skill. Put that

37:56

on your stinking resume. Who do you know

37:58

that knows how to do this? The list is

38:00

not very long right now. Now, I would

38:02

love to know what you thought of this

38:03

video and what you plan on building with

38:05

MCP servers. Please comment below and

38:06

let me know. Also, if you like more

38:09

stuff like this, more AI automation,

38:11

which is like more real world, right?

38:13

Check out my other video on N8N, an

38:15

automation platform that's just

38:17

mind-boggling. That video was so fun to

38:19

make and I plan to make another one on

38:21

top of that. And of course, you saw how

38:22

I connected our MCP environment, the

38:24

Docker MCP gateway to N8N, opening up

38:27

just a billion possibilities. It's

38:29

endless. We're in a gold rush

38:30

opportunity right now just to learn and

38:33

create and do things like crazy. Don't

38:35

waste it. That's all I got. I'll catch

38:37

you guys next time.

Video Information

YouTube ID: GuTcle5edjk
Added: Sep 16, 2025
Last Updated: 5 months ago