The Art of Network Engineering
The Art of Network Engineering blends technical insight with real-world stories from engineers, innovators, and IT pros. From data centers on cruise ships to rockets in space, we explore the people, tools, and trends shaping the future of networking, while keeping it authentic, practical, and human.
We tell the human stories behind network engineering so every engineer feels seen, supported, and inspired to grow in a rapidly changing industry.
For more information, check out https://linktr.ee/artofneteng
The Art of Network Engineering
You Don’t Need Python Anymore: Hello World For AI
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
For years, network engineers were told the same thing:
“Learn Python… or fall behind.”
But what if that’s no longer true?
In this episode, we walk through a real Hello World for AI in networking: connecting an AI agent to NetBox using Model Context Protocol (MCP) and querying network data in natural language.
No scripts.
No Python expertise.
Just results.
This is a live, unfiltered build, from cloning a repo to debugging JSON to finally asking:
“How many sites do I have in New York?”
…and getting an answer instantly.
What You’ll Learn:
- Why Python is no longer the entry point to network automation
- What MCP is and how it connects AI to your network
- How to query NetBox using natural language
- How AI handles tasks that used to require scripts
- Where human-in-the-loop still matters
Why This Matters:
Most network engineers haven’t started automation, not because they don’t want to, but because the barrier felt too high.
AI just lowered it.
This episode shows you exactly where to start.
This episode has been sponsored by Meter.
Go to meter.com/aone to book a demo now!
Find everything AONE right here: https://linktr.ee/artofneteng
00:00
The network engineer's role is changing as fast as the job market. A1 Labs is how you keep up. Hands-on labs with new technologies built for engineers who can't afford to fall behind. Show up, suit up, and level up in A1 Labs. Welcome to the Art of Network Engineering podcast. My name is Andy Lapteff, and in this episode, we have John Cappabianco back for the hello world of AI. How you doing, John?
00:26
I'm doing great. I've been really excited about this. I know he put a little bit of prep time into it. I think this might be one of the more valuable things that I've done recently, actually starting with and meeting you where you're at and starting right from how to clone a repo that has an MCP server, how to connect it to VS code, hopefully how to connect it to cloud desktop. And I hope the viewers get something out of this. I think this is, this could really set a lot of people onto their journey. think. Yeah.
00:52
So first of all, thank you for being so naked and open and honest. It takes a lot of courage to learn in public like this. No, I'm serious. It takes a lot of courage to put yourself out here like this and do something for the very first time. Right? So the feedback I've got has been great because like when I was a kid, I didn't ask questions in school because I thought everybody knew everything. And then when I went to college and had to pay my own way, I'm like, well, hell, this is expensive. I'm going to make sure I know this stuff. And since then.
01:16
I am the person that asks the questions and yeah, it's a vulnerability in it. What I'd like the audience to hear upfront, obviously, is the last time we were talking, you know, we talked about 70 % of networks aren't automated, which means 70 % of network engineers aren't doing any automation stuff. You know, they may or may not be displaced by folks who are leveraging AI in the future. So I always try to keep
01:37
those folks in mind, the 70 % of like folks. We can stay employed, but we have to skill up. always have. And the coding stuff, the dev stuff, it's, been painful for me, but
01:48
like anything you just keep your head down you learn you push through and so now I'm at a point where you know we had this conversation and I think it was Mike Bushong on the last episode he's like hey John what is the hello world for AI and you came up with this brilliant idea so I'm very excited and I want to just tell everybody out there I spent about a half an hour today doing some pre work just to make tonight a little smoother so they'll be in the notes they'll be just a document it's not that heavy but there's four or five things you have to do prior to what we're about to do you can look in the notes and find it you create a couple
02:18
accounts, you grab an API key, you install a thing or two, it's really not that bad. And in full transparency, which we'll get to soon, I got to the part in GitHub where I had to clone a repo and I got scared and I ran away and we're going to save that for tonight. So I guess with that all said, when we get to the end of this, if and when this is successful, we'll be speaking to our source of truth in natural language and we'll be querying our network on.
02:39
things like, you what circuits are in Atlanta or how many routers are in such and such. And I find that really compelling. And if you can get that far in all this and then maybe build something like that at your job, how valuable would you be at a place like, I got, you know, I created this cause that box is free, correct? I don't want to speak out of term and push people in a weird direction, but is it a free source of truth? is open source and they all also have a cloud commercial offering in net box labs. So tonight we're going to be using the always on 24 hours a day.
03:08
demo instance that's always available for people to play with. So in terms of Hello World, I typically actually use Netbox for a lot of Hello Worlds. I'm trying to do something with a REST API, because the public sandbox has data, it actually has some records in it that you can play with for free. And I thought, you know, what better way to learn MCP than through abstracting the REST APIs in Netbox via MCP.
03:35
But tonight we're actually going to be using the official Netbox MCP, another great hello world, and I'll show you why. So Andy, if you want to start sharing your screen, we could probably get into it. We're going to be on the Netbox Labs GitHub repository for their official MCP. Now it's three tools that are all read-only. So in terms of starting with human in the loop and starting with read-only safe activities.
04:01
This Git repo and this MCP is a really good example to start with. So as you can see, Andy installed VS code, installed Cloud desktop, he made sure he had Git. He went ahead and got himself an API key. And we sort of hit the point where it says go here and to go to that Netbox Labs MCP server and follow their instructions. So that's where we're going to pick up where we left off here. And anyone at home... Between the API key and the MCP server, there was the install copilot VS code, which I was happy to see was already there.
04:31
Like I just saw it down in the bottom right and it was there. So that's going to be our intelligence in the system, I guess, right? That'll translate my questions to the. It really is an agent and it's a react agent, meaning it's going to use reasoning capability from the LLM and it's going to use tool calling the action and react to reach out to net box on our behalf. So if you want to click on the hyperlink there, Andy, and we'll go to the net box repo.
04:55
So if you scroll down, this is why I like to start here and maybe point network engineers here, because a lot of people use Netbox and a lot of people want to start with safe read-only activities. And you can see here, right here, this is a simple read-only MCP server for Netbox. It enables you to interact with your data directly via LLMs that support MCP. It has three tools, get objects, objects by ID and change logs. And we're sort of at the installed dependencies. So if you want to scroll up, Andy,
05:24
We're gonna click on the green button all the way to the top. There we go, yeah, code. then click on the copy and paste buffer and get the link, yeah. And then let's head into VS Code or your terminal. And we're gonna do git clone. And for listeners, don't be afraid. I'm already like, oh God, I'm in a terminal. I'm in VS Code, git clone. Like this isn't, if you can work in the Cisco CLI, you can work in a VS Code terminal.
05:53
I'm saying it for my people out there. that's great Andy. It's a good point. And this might be Andy's first Git clone. So big round of applause. then before I do this, do we have to install dependencies first? We'll get to that. Yeah. So let's go first and then we'll go back to the base. Yep. So right there. Okay. Enter. Okay. So now CD space and then net box and then tab and go into that folder. Okay. So now what we want to do first is create a Python virtual environment.
06:22
Inside of this folder, there's a bit of lag here. Yeah. So how did you know that was there? Cause at the end of that path, that's the folder. Cause I'm learning Linux as I go. So I would have done an LSC once in there and then which directory to go into. But the second line cloning into and then net box. Oh, so that's the, so that's the destination. oh So now the instructions sort of jump right to doing install using UV, but let's make a virtual environment first. So what we're going to do is Python three.
06:50
Is this the time to ask you what pip install and UV means or should I just? so this is a package. It's all packaged up and we want to install that package into our virtual environment or Python virtual environment to extend that virtual environment with this MCP server. So it's going to say run pip install requirements. And if we look at the requirements dot text file, it's going to list all of the packages that are made up. It's probably fast. MCP is probably one of them. I'm not sure what other packages that this net box.
07:20
MCP server needs right? That doesn't come included in the in the repo. We have to go install it separately. The repo will give you a requirements dot text file and we're going to use pip install to install those required packages. OK, so if I were to look in here somewhere, I'd see the required, but in the new LS or do a cat read me or something like that. So I would do a cat on read me. OK, and it's to the same thing as uppercase.
07:49
It's going to be the same thing as the, the get repository, but you'll see what the next steps are here. Yeah. Watch the hyphen there though. No, no, we need.md. Yeah. So this would have been in the, this is the same child that's in the GitHub repository. Yeah. So if you go back to the get repository or, uh, the read me, if you want to scroll up,
08:16
It will tell you what the instructions are on how to install it. So let's just keep going up. Okay. So that's in here somewhere, right? So dependent, we're looking for the dependencies, right? That's in here somewhere. Uh, there's, if you just keep going all the way to the top of this file, it's going to explain. it's a lot. I would look at it in the browser. I would go back to your browser and not read it in tech. And if you scroll down, so it's going to say installed dependencies, right? So you can do a UV sync and they recommend that. So let's go ahead and just follow the instructions.
08:45
So let's do the UV think from inside that folder. So I'm in the right folder, UV. Think is it all one word contextual stuff here? Uh, S N Y C. Yeah. And this is selling the dependencies. Yeah. So the MCP is quite literally installed and ready to go. So now how do we connect that MCP server to VS code? So if you click on the gear in the bottom left of VS code, there's a little gear icon with the number one on it here.
09:16
Oh yeah, gotcha. go to command palette and just type in MCP to show the users at home. So there's a few different ones in here. Now don't get tripped up and go to add server. Add server is a way to add other like official MCPs. What we want to do is open the user configuration. This guy here, boop. And then Andy, if you go to the text I sent you, let's just paste it in here to save people time.
09:40
Sure. That JSON. Yeah. That JSON blob that I sent you. Now, where did you get that? If we didn't have John Capi Bianco giving us this. It's right in the readme file yet. So if you cop... Do I need all these cute little... Yes, do. The mustaches. The mustaches. Is that what they're called? That's funny. Yeah. I like that. Okay. So inside of servers, Andy, between the mustaches, there, the purple. So go inside there and press enter like twice. Go to the very beginning of the line.
10:08
and paste in what you copied there, the JSON blob. And let's just see here, it's a bit of a mess. Okay, there's on line four, there's an extra mustache if you get rid of that one. So I wanted to ask you about this. That's the beauty, I guess, of VS Code. I don't really know JSON well, if at all, but VS Code's gonna tell us when there's syntactical issues here. It's a good point. know the file name itself is red and there's a white circle.
10:34
So that means the white circle means it hasn't been saved yet, right? I kind of remember that. Red means it's not valid JSON right now. Okay. So this red squiggly guy, it says view problem, but we just know to delete it. then all the way to the bottom and delete this guy here. he a problem? Yeah. So he has a red squiggly. Okay. And see how it's no more space is a problem. Well, it should be better formatted, but it will work. This will work as it is. Don't worry about the formatting. Fair enough. See how it says on line 10.
11:04
path to Netbox MCP server. So in your terminal type PWD and that will give you the absolute path to where the server is. Okay, so replace that line 10 with that path there. Okay, starting at four slash users. Yeah. The whole thing. Okay. So between the quotes, guess, is that? Yeah, correct. Okay. And again, for folks who don't have John at home, you can watch this and follow along. You'll have all the documentation and I believe.
11:30
the documents and GitHub tell you all this. Yeah, I encourage you to watch and just pause the video and catch up and rewind the video. Honestly, seriously follow along at home. So then on line 15, we need to update the URL with the demo dot. Yeah, let me see. Is that somewhere in here? I think you put it up here. Demo dot that box. And then your API key inside of the JSON question while we're doing this. When I went to get the API key,
11:58
It was called a token in there. they synonymous? Yes. Kind of the same thing. Correct. Correct. And the other thing is normally we wouldn't share the token with the world like this in BS code and with the world, but it's, it's a demo ephemeral by the time people watch this, this key will be obsolete. This whole sandbox will be obsolete. So other people could like use this and correct things. I just want to bring up in, in real life, there is, there's a lot of practice put into key handling with environment, variable files and other.
12:27
other methods. For now, this will be fine. Okay, so page. It's like a password, right? You don't want to share it, right? Now save this file. Control S command S and for folks watching at home, look at the white dot. Go away. Command S and see how there's a start button. Andy, we're off to the races here. So I write about MCP servers on line four. Oh, that's it. Start. Oh, hang on. What's the error? Let's click on the error. That's not great.
12:55
Can we try to restart it? Can we hit restart? And I can check my side and see maybe what we've done wrong here. I'm fairly certain I screwed something up. No, can we? Okay. So can we scroll down? Let's take a look at it again. Yeah. Look at the Json. Let me look at my side. I can double check my token. Sorry. Can you go back up to the, it's command UV args directory users run.
13:23
Netbox MCP server. Yes. And then your environment. Yes. All of that dude was fine. Okay. Let's, did we do a virtual environment or anything? we have to say we, used you install it. let's go ahead and, let's go back to our terminal. So let's go back to our terminal and install it the other way, the long way. thought it was in the terminal. So click on the three little dots there beside output. Got it. Okay. And then terminal gotcha.
13:52
Okay. So what we're going to do is scroll down. That's weird. You should have taken care of that. Okay. So what we're going to type in is Python three dash M space V E N V. And then just call it demo or something space or no space. That's fine. Let's do it like that. Yep. that creates our virtual environment. Can you explain why we need that? So what we're going to do is we're going to be installing this net box MCP server as a Python package.
14:20
And this kind of protects our main instance of Python and it lets us do development. So let's say there was a new version of this net box instance. I wanted to test it, but not break my working one. can make a V V E N V called new version of net box MCP and install it there and not break this one. So now you're going to type in source and then demo slash bin slash activate. Oh, but there's no space. You got rid of the space.
14:48
Yeah. Just Linux syntax. Is this what you're doing to me? Yeah, it is. You're doing really good though. You have to learn Linux folks. Well, once you do this, you'll see that your, your CLI will change. Yeah. Enter. You're going to see your, that'll put me in the virtual environment, the virtual environment. now what you're going to do is PIP three. Let's go to the net box instructions real quick. I'll get the command. Hang on. I have it open in front of me. Yeah. Pip pip three installed dash E and then a period. Yeah. So run that command.
15:17
This is how I did it locally, the way, earlier today to prepare for this. whatever you do with the UV is either still there or getting overwritten by this. that like, we don't have to roll back the UV stuff. I don't think, I don't think so. So let's hopefully this will work or we're not going to get much further because I'm not sure what the error we're getting is. Um, I didn't get that error. Let's, let's try it this way. The other thing I think in the instructions, they show you how to test it with a one line command to start the MCP server to make sure it runs.
15:47
Okay. So now let's try that start button again inside of VS codes. Same place as before. Yeah. restart. Restart. Yeah. That is very strange. Error sending message to file undefined. it trying to see on my side? I have the exact same code as you. And I discover four tools. I'm on a Mac. We had the virtual environment and installed everything. Let's try their manual command. Andy.
16:17
Let's do that next. And you're going to need your API key and the URL. So you scroll down a little bit and take that guy. Yes. So we're gonna export it. Where do I? Where do I put that? And then put that in terminal. So what they want you to do is export a couple of environment variables and then run the net box MCP server. Make this smaller. Let's just try the run command run net box MCP. So UV
16:45
run the net box MCP servers terminal and back in the terminal and just try you run and then that box MCP server and if it complains about the environment variables, then we'll set those my auto complete this command net box dash MCP dash server. Yeah, I think so. Gotcha.
17:09
to see that on your side. Yeah, that's just a warning. Okay. So what do we get here? URL and token. Okay. So we do have to export those. So if you type in export and then in all caps net box underscore URL, uh, URL or an actual URL equals. Okay. And then the HTTPS. Yeah. The thing from, uh, grab it from the actual net box site or the word document you had. Oh, I got you this thing here. Right? Yep.
17:39
I think that's correct. didn't. that's I clicked that. That's right. Yep. That's it. So I think when I grabbed it from the LinkedIn DM, you see the path there, it's actually like a LinkedIn URL that might not. don't know that that's the problem though, because in your VS code, it's fine in the VS code. Paste that URL into your environment variable that you're exporting. Uh, so here, and then I need, I guess the API key. Yeah. And it's, um, no, no, just press enter now.
18:10
Enter. Yeah. And then do the same thing. Export and the next thing. Okay. And then my, yeah, but make sure you say export. Okay. That's really strange. I didn't have that same friction on my end. That's really too bad, but let's, let's just try it. We'll go through the motions here. So export after equals no before just export first. Yeah. Yeah. John, there are certain people in the world that attract every weird bug. ah I'm one of them. That's okay. So press enter. think I'm kidding.
18:39
And then press up arrow like three times and we'll run that UV command again. Yeah, let's try it again. Yeah, don't worry about that warning. Okay. See, look, so it runs. It does. It runs just fine. So why doesn't, why can't we connect it with VS code? Let me, let me do something here. Okay. Well, so that's a good sign. That means everything's installed and everything should be working. Let me send you something in chat.
19:09
Can you take that and paste it over top of your MCP settings? Sure. So just grab the whole, it's a Jason, right? Yeah. Grab that whole thing and let's paste it over the servers that you have running there. And don't even worry about the token. That token should work. Uh, you're going to have to change the path to where the MCP server is. So paste it over the whole thing here. So the whole thing. Yep. Start at 22.
19:37
I control view this or I got to wipe it out first control V. Yeah. You can paste over it. Okay. Now scroll up and change the path there from users, John.Capobianco to users, Andy lab. Tef online seven. So just change the users there to your username. it indie.Lab. Tef? don't remember. it's just Andy lab. Tef. Okay. Now save it and let's try to start it again. I don't have to change the,
20:06
No, that's my token that should work. So scroll up now. I don't see the start button anymore. Do you? Okay, so close VS code and relaunch it and go back. Okay, so now try start There it is. Haha running for portals. Okay must not have liked the JSON Okay, so if you click on run, okay If you click on running it will show you the output of the logs of your server and you see how it discovered four tools
20:35
Yeah. So that's the key here. So if you scroll all the way to the bottom, we can keep an eye on this. So is this now reaching out to the sandbox and they're doing their MCP magic? What do you do? What do you do? What commands can we tell each other? We're not quite there yet. So open up your copilot now. Control, uh, shift I. I'm going to click Mickey Mouse instead down here. Uh, or whatever. No, no, we need to bring the whole copilot back up. Okay. So control. Command shift. Okay.
21:05
Now you see the little wrench looking thing. Yes. We want to click there. And now if you scroll down, you're going to see net box in here and expand that. You're going to see the four tools that are available to your co-pilot now. Hot dang. So now just try this say in your co-pilot, say, hello, can you please get me a list of all of my sites in that box? Oh my God.
21:34
So I do it down here in the copilot chat, right? Yep, that's right. Hello. Can you show me a list of sites? In that box.
21:46
Yep. Enter. And you can close that tool selection now. Just click OK. OK. So we're going to hit enable here. we hit a little friction there, but that's OK. That's OK. It was just the JSON. Do we know? Oh, right. OK. So I screwed up the JSON format. We used yours and it worked. So.
22:06
Audience. This was me, not John. I screwed up the Jason. No, no. every time somebody gives me a file, it happened to me in a yaml at work and I screwed it up. Apparently I can't copy and paste. We worked through it and I'm glad we started it. So here, if you hit the drop down beside allow and I would change that to always allow. Is that okay? Yeah. Otherwise it's going to be always. So if you expand that, you can see that it tried to grab some net box objects, right? You can actually expand that box there, Andy. All right here, ran.
22:32
Yeah, know, you can click on that and expand it and it'll show you the payload. So it's checking this here. Right. So that's so this is right. No code, no Python, no nothing. It's going to go ahead and use the MCP tool. If you keep scrolling down now. So hold on. So the tool it's using is net box, get objects. I think we saw that tool in one of the lists on the get hub and I guess it's
22:54
Using this is this json. I guess I see mustaches. I think json, right? is this the stuff it looks for mcp and get objects mcp uses json rpc 2.0 So yes, this is under the hood what the mcp is sending to netbox Okay, and then if you give me all these things. Yeah, if you keep going down, there's the output that netbox returned So there's certain if you keep going down copilot's going to turn that into natural language
23:22
Right. So if you keep going, this hurts my brain. Right. You don't want to get all that. Oh my God. But this is like a, this is format of data that now can be given to my brain in a way that I can understand. Well, you don't even necessarily have to look at this. If you collapse that field, this is just, this is just developer stuff to see what's happening under the hood. Right. But under the hood, that's all the stuff. now all the way to the bottom. Now
23:51
drag and drop the scroll bar on the side because there's going to be a lot of them. Let's go all the way to the bottom. Right. So there you go. So it actually gave you a table with all of the Netbox information. Right. So now you can just keep, you just can keep probing it. Now the advantage of being in VS code is if you see in the top left of VS code, there's two like files on top of each other. Can you click on that? So open a folder and just make a new folder called demo or whatever.
24:21
Just, we just need a placeholder folder to work in. I don't know what I have, John. I can't figure out how to navigate in a Mac. This is where I'm at. Do I just put it in? I don't even know how to get, how about desktop? Is desktop good? No, no, we want a new folder. Don't do desktop. I was going to put a folder on my desktop. Okay. Where do you want it? can do that. You can put a folder on your desktop. Well, I have a Python folder. Just don't do the root of it and just call it demo. And you'll see why I'm doing this in a second because we don't want to make files. Sure. MCP demo. That's fine.
24:51
And then we want to open that folder. Open. Okay. Now, yes, I trust the authors and let's go back into your MCP settings and make sure that it's still turned on. Go into your command palette, bottom left, the gear. And then go into the user settings and just turn on the MCP again. we did. Yeah, that's right. Gotcha. And then hit start. And now, okay, now what you can do is in your question, ask the same question.
25:21
but say, can I please get a list of my sites in Netbox and then go ahead and create a local file called netboxsites.csv. Now this is the power of VS code is that it's a file editor with folders and other extensions and stuff, right? Can't do two things at once. So can I get a list of sites in Netbox and create a local file called local sites CSV? Okay. And that's going to send that, guess, to our folder or ask where we want it. So if you just go ahead and send that.
25:49
So it's still going to give me all the JSON gobbledygook and at the end I'll have a CSV. Yeah. The only reason why we, saw the JSON gobbledygook is cause we expanded the, we expanded the box. Oh, right. I'm not anti-JSON gobbledygook. mean, the more I'm exposed to this stuff, the less scary it is. Like, so I, I like seeing it. I'm glad you showed me that. It's like a trust, but verify, right? So, know, instead of just blindly trusting this list of sites, if I wanted to, I can look in the payload and see where it got that list of sites from.
26:18
So we're just gonna let this cook here. Well, this is cooking. Can I ask you a question? Um, I guess I just did. So I ask you another question. I'm trying to get my head around what's happening. So we're talking to co-pilot in VS code, asking it a question. The MCP server is the connection between this instance of co-pilot running on VS code and this sandbox running in the cloud for net box. Is that correct so far?
26:44
And co-pilot is talking to net box over that connection. Like I'm trying to, I'm trying to get my head around what's happening. We have to stop this right now. Can you hit the stop button and we'll just start a whole new chat and we'll, we'll answer your question again. It's trying to write a Python script to do this instead of using the MCP hit undo there. Do we get an error? Yeah, it's sort of hallucinated. It didn't use the MCP server. So scroll down again on the wrench and just make sure that the MCP for net box is turned on still.
27:13
Cause we started a new folder, right? So I just want to make sure that it's still turned on. So scroll down net box. Okay. In the co-pilot say, please use the net box MCP to achieve this. We don't need a Python script or something like that. It just needs a little help. It needs a little nudge to know that you have an MCP. use the MCP server for net box to achieve this or something like that.
27:39
Now I missed the outputs of somewhere in here. It's like, it tried to a Python file and wanted you to do a book. So, so, yeah. So it just didn't know for whatever reason. hit enter. Sometimes we have to be explicit and say like, please use the net box MCP to get me a list of sites or something. You know, it's outside of the scope of this, John, but you know, I used to be like tinfoil hat, you know, our jobs are going to go away. And then I read something. I forget what hyperscaler it was, but the guy laid off 16,000 people, replaced them with AI. It melted the world. And now they.
28:08
Have a new thing where every script written by AI has to be reviewed by humans. So I say all that to say that like here, this is an amazing tool. I love it. It's awesome. But it also seems really helpful to have a human looking at it to make sure. oh absolutely. You know, outside of the parameters human in the loop is the way to start. Absolutely. It's just like network automation, right? We, when we have those books, it usually was a human operator running the playbook. So now this is what we want it to do is to get to the MCP.
28:37
and then make the CSV file directly. Right now. And just because I'm endlessly curious, we don't know why it didn't know of the MCP server. Like it did the first time. It's about the prompt engineering, Andy. So when you just say, go get me a list of sites in that box, it took that literally and just said, okay, well, here's a Python script that will do that. Sometimes you have to make it aware of the tools that are connected to it. Right. So here we go. Sometimes part that's interesting. The first time
29:05
I didn't specify MCP and it used it. So yeah, the prompt is it is all about the prompt. is it's all about the prompting. I'll write the local file with the 32 net box records and it's we should have a file in just a second or two here. There we go. So if you click on hit keep and click on the CSV file now that it created. So Andy, you see the extensions box there. Yeah, just type in CSV and grab the first one. It's got a lot of stars. Yeah, install that.
29:34
And then there should be. when you're looking for extensions, look at the stars and the amount and just like anything, right? exactly. So now if you close this and go back to the local CSV files, the CSV file that we created, there should be a button to preview that close it and open it again. Maybe. Yeah. The VS code, right? No, no, Just the tab. Just close the tabs and reopen it. So close local sites. Yeah. And close that. And then the double files.
30:01
Would that be in the file list over here? Oh yeah, there it is. Right there. Okay. Cool. There we go. Look at that. You can follow up with questions like, do I have any devices in site ID 15 or right? Like you literally can just talk to it to your point and the hello world. So the hello world is successful. Andy, give yourself a hand. Bravo. You've just, well, give yourself a hand, sir. You've just cloned the repo.
30:26
Set up a virtual environment, install the requirements, install the MCP settings, connected it to Co-pilot, and now you're literally talking to Netbox, right? Like you've achieved. question someone would ask me is like, how many sites do we have in New York, right? Like I'm thinking back to my operations days, like you said the other day, you know, how many circuits in Atlanta or like whatever. So I just asked it, you know, give me a list of sites in New York and it's going to use the MCP server. Great. But no, this is super powerful, John. I mean, you know how it used to go, right? You had spreadsheets and jump boxes and like that was a nightmare ask.
30:56
something simple like how many sites do we have in such and such or how many circuits are in whatever how many of this so like if this was populated with make models and I could ask you know how many switches of certain models do we have and give me an inventory like that's compelling man yeah I used to manually right we have a new rack going into Atlanta do I have the circuits for it or whatever right so does this have like circuits devices I mean I know it's a free instance so maybe it's limited
31:22
Yeah, you might need to poke around the actual instance itself in the Dewey and then see, but here we go. There's your list of New York sites based on the slugs, 10 of them, right. But I'm thinking of all the things that we were building in a source of truth in production when I was there and all the questions I could ask. So I think the Python thing happened and we got interrupted, but are you able to like simply explain to me what happens when we.
31:48
Ask a question here, like all the moving parts and how it works. Like was my description close or no? Yeah. So MCP, you notice how it has four tools, Andy, right? It actually advertises that it has four tools. So it's kind of like DHCP in that way. The MCP server advertises the tools that it has. And then the LLM has tool calling capability and will pass JSON RPC 2.0 to the MCP that then communicates with.
32:16
Netbox. Now I think in Netbox's case it's likely a wrapper around the REST API, but it might not be, right? So it's a remote procedure call under the hood with JSON 2.0. If you were to do a Wireshark you'd see that JSON 2.0 payload and we saw some of the payload when we expanded that developer box. So do you want to, yeah there's lots to take in here.
32:39
There's a lot to take. No, I'm listening. I'm just, I need a picture and I'm looking for your best reference. Your best reference is model context protocol.io. If you want to visit that right now, it really is a one-stop shop for everything about servers, about clients, about the protocol. John, this is the problem with my curiosity is like, honestly, man, I don't probably need to know every branch and screw and, you know, grease fitting under the hood. Like I'm curious, but as soon as you started talking, I'm like, uh-oh.
33:08
I think this is a lot of things I don't know. know, header wrappings and... We sort of covered everything you need to know from a consumer point of view. If you want to use these, you don't need to know anything more than what we did today. Go to the GitHub repo. Which is success. Like this is successful, right? I think this is the perfect Hello World for AI, right? Like you do Hello World encoding to do the very basic and like have an output like, look, I did it. I did some thing, a new skill, and I got it to do something. To me, this is the equivalent.
33:36
Holy crap. just got AI. Do you want to try Claude desktop while we're here? Just to see if we can get that going. However much time you have, man, I could do this forever and I want to be respectful your time. Let's launch Claude desktop just to show people another another client. So I love the S code. This is instead of copilot. No, no, no, we're going to instead of using the S code at all. We're going to use. Okay. Can I shut this down or does it matter? I would keep it open and go into that MCP settings because we're going to be copying the MCP settings from the S code, not
34:06
Exactly, but pretty close. You know what? I'm so silly. I thought that Cloud was going to be what we're going to use instead of Copilot because I see them both, know, Copilot is part of VSCode. So in a way, yes, we're going to be using Cloud instead of Copilot and VSCode, but it doesn't have the same look and feel that VSCode does. It's just a chat.
34:27
interface. So should I just open cloud desktop? Yeah, I'm not sure if you've gone through the installer steps or anything yet. Probably not. I think I just downloaded it. So apologies. no, no, don't apologize. Just a couple menus. We've got to click through, think. Okay, there we go. up here. The problem is your mouse disappears. Like when you go into the virtual thing, it disappears and then you're just completely hosed. All right, so get started. Cloud for Mac. I don't remember.
34:56
No, I should just sign you in through Google. Do you have any opinions on using your Google stuff to sign in? It's not a attack vector, right? It's safe. I always use it. I'm not a big, I'm like the least convenient person. All right. So continue. Uh, continue. Okay. So now what we want to do is in Claude in the top left corner, uh, we want to, in the very top left in your Mac where it says Claude, we want to do settings and then we want developer.
35:26
And then we want to edit config here. Okay. And it's going to be the exact same thing that we just did in VS code, except it's going to be a different. So it should have brought you to a folder with a JSON file. Double click that JSON file and let's open it in VS code. I like right click and tell it? Yeah. Let me see. Open with.
35:45
VS code. we go. That's better. You open and let's go to the read me of the net box because they have the exact exact code. Okay. A little further to the bottom. me a little further to the bottom. More and more and more right there. So copy this and then paste that. It's that inside code file that you and I would put it overwrite this whole thing or no. No, I would put it.
36:16
Uh, how does this go? I would put a comma after the purple one on line six. That's what I would do too, John. then enter and go to the, the start of the line and paste in what you had. Paste here. Yeah. Paste there. Okay. And then change the path. So line 13, 18 and 19. If you want to get that from BS code, actually, you know what you can do Andy from here, go to the command palette and MCP user config.
36:46
And you can get them from here. All right. So if you just, this guy, yeah. Uh, no, it's right there. It's beside you here. Exactly. Is this the right place? Snap up. It looks like there's Jason's wrong. So, uh, let's, let's get your copy paste done and then we'll fix the Jason afterwards.
37:07
I think I did that right. Yeah, and I need the net box URL. Yeah, sorry, I'm starting to get loopy. uh That's OK. We'll get this going and then we can wrap it up. This is probably I love this. I just I feel like my brains. Well, it's probably just enough actually to get it working in Claude and then we can wrap it up and then I need the token to yeah and the token. I love this man. I've John you know how it is. These are one of those things man. I could be up.
37:34
for days and all night. It's just so cool. So paste in that and then online. And I think you kind of have to put in that time to like really figure out the documentation is good. But yeah, I do. So go back and get rid of line 22. Yep. I saw that and 23. 24. Anywhere I see a red squiggle. They're out of here. No, hang on. I see. I'm going crazy here.
38:05
Get rid of that online seven. No, hang on. All right. Now we're in, now we're, now we've got it all screwy. Okay. So take, no, no, it's not your fault. This is kind of my fault in the copilot in the hacks. Just, just the AI to fix it in the copilot and say, can you clean up my claw desktop config.json? That's what I would do is just cheat and let the AI fix it for you. I didn't know I could do that. That's amazing. Do I have to give it the whole path? I would. Yeah. Okay.
38:35
That's it, right? Just ask it to clean it up. Wow. See, this is why I love LLM tooling. Like, absolutely. You know, there's like, come on, man. Like how can you, I did this with a different tool and somebody handed me YAML and I messed it up and I'm like, dude, I don't know what to do with this thing. And the LLM fixed it for me. I'm like, oh, thank God. It's still configs. Oh, updating. Yeah. It's always making to-do lists. Anyway, I see why. So just keep scrolling. Let's see what's happening here.
39:04
should fix it for us. I'm just seeing why we went wrong. I did it. We not need a comma there. And then so hit allow. Should I keep all edits? So it's making a backup first. And then it's going to, and then it's going to file. yet. All right. Hit allow.
39:27
And keep, okay. So now that it's saved, can we go back to Claude desktop? And I think you have to actually exit out of Claude desktop and then relaunch Claude desktop for it to pick up the MCP server. So if you just exit it, yeah.
39:47
Thank you enough, John. This is so cool. Let me drag it back in the- Fingers crossed on the MCP integration. Let's see what happens. We'll see. Let me try to get it over to our screen here. MCP Netbox server disconnected for troubleshooting open developer settings. It didn't work. I don't know. No, if it's through an error like that, didn't, it means it didn't launch. I don't know why it's so uh more, so much more difficult than the VS code. I should have tried it on my own cloud desktop. uh
40:17
We're learning. is great. Well, I, know, whatever you want to do, man, I can, let's go back to the Jason file and just take, let's just take a quick look at it. Oh, I see. You see how the net box tokens redacted there? Yeah. We've to put the token back in. I think that's likely the problem. So just grab it from the back. I'll there. Yeah. Right there. Yeah. All right. Put it here.
40:41
paste that in, paste that in and then let's file exit out of Claude and relaunch Claude again. you still feel like you're learning every day with all this? Like you're my resident expert, but every, every day, every minute of every day, there's something new to learn. It never stops. It's an unbelievable pace of change. And that's exciting for someone like me. I'm always chasing the shiny new thing. I get very bored. Once I figured out some problem and you know, I cracked the case.
41:08
So it's not working. think it's super exciting, man. So if you hit open developer settings there, we can debug if you want. I'm in no huge rush, but I'm keep you to the old error server disconnected. So there is a logs there that we could dig into and some of them into, uh, in the VS code, into the co-pilot. oh Yeah. the whole thing. And let's go back into the VS code.
41:35
And you can, you can exit right out of Claude for now. We're going to have to relaunch it anyway. paste in those logs and then tell the co-pilot here. Uh, I'm trying to use this MCP for Claude desktop. Use the net box MCP for Claude desktop. But I get the errors, the following errors and then paste in the logs. It would be fun to get this going and it's going to be something small and trivial. It's probably the way we've structured this file.
42:05
I'm not sure if MCP servers need to go inside of preferences, maybe like inside of preferences. That might be the case. I get to watch John Cappabianco learn something in real time, that's exciting for me. So let's keep going. I think, I think that it's going to be, that's going to be the case. me, really like that you can use it right within the time. On my side here. Let me, I would have went to like a different browser to try to ask a NLM a question. really liked it. It's embedded right in VS code.
42:31
Can you use different LLMs and VS code or does it have to be? yeah. No, you can, you can change them. There's a drop down there that lets you change them. Okay. But there's, but there you have, hang on. I'm going to look at your V at your Jason and you have a preferences section. My current Jason has a preferences section. ah Um, so what is this saying here? Uh, let's see. Okay. Scroll down. What I can do for you now. I can update the cloud config.
43:01
Set command to UV. Fighting with the virtual environment. It might be the UV thing from Claude. Maybe not though. Scroll down. Can you say, um, just fix it? Honestly, you say just fix it. It's getting late and then I'm getting a little, a little fussy with this. That should have just worked. So can you close the Actually, we're all done with the terminal there. You can close that. I want to take a look at the JSON real quick. Okay. So UV is the command directory and that's the directory. Let's let it cook.
43:30
This should have worked. I don't know why I hit, um, uh, keep and then put in your, your key again from the file. Let's give us a little more go here. So instead of using UV, it's going to try to use the Python directly. So save this and now let's relaunch, uh, cloud or a cloud. Okay. And this is truly honestly, Andy, this is the friction around MCP. They're all different. They all install a little bit differently on different clients.
43:58
There is still some friction around it. It's not a perfect. Well, it's new, right? Exactly. I sort of give it a little bit more leeway and a little bit more totally patience than some of the other mores. None of this stuff's perfect, right? Like it's a miracle. I think all this stuff is a miracle. People are smart enough to create all this. So far be it for me to stand here and say this isn't perfect. Like, love this. And if I have to troubleshoot a bit, it's no big deal. So did Claude pass or did Claude throw another arrow at you?
44:27
No, it's not. Let's open that up. Okay. So now let's go back into those developer settings. What we should see is the net box. Yeah. Cloud desktop or a developer. Where was developer developer? Let's scroll up. Running. Okay. So now it's running. So now let's do a new chat. So was that the Jason again? was just some weird. Yeah. Yeah. We switched it from using UV to using Python directly. So let's do a new chat.
44:56
We can get out of the settings here. And then if you hit the plus there, connectors, I think maybe your skills net box, see how net box is connected. So let's go ahead and ask it and say, can I please, can you please use the net box MCP and give me all of my sites in New York like we did earlier? And this will wrap things up. So everyone, probably did leave the warts included.
45:26
to show you that even myself and Andy, we had some hiccups. It's him and I doing our best remotely, and it's gone very, very well. I'm really impressed with how Andy's got the MCP going in two different clients now. We had to mess with some JSON, we had to mess with some virtual environments, we had a couple of things here and there along the way. But given this is less than an hour, 45 minutes or whatever we've been going, really, really successful. So now... I have a question.
45:53
It's going to be hopefully the same experience, Andy, except it's inside of cloud desktop. do we put that? Jason? I'm confused because we did a Jason and VS code, but now we're in each of them have their own Jason file that are their settings and their configurations and where you add the MCP servers in VS code. It's just called MCP dot Jason in cloud desktop is called Claude underscore desktop underscore settings dot Jason. Oh, is it that folder that we modified?
46:20
Yeah, that was that file. Exactly. So that's where I put the token. Okay. I got you. So it's just in the file structure somewhere in Claude and we found it and adjusted it. Right. That's how we did the config. Yeah. Now I'm wondering, can you scroll down or anything? Is there anything under loading tools or is that it? Okay. Here we go. So always allow. Let's use net box. Always allow. That was my bed. Okay. Permission. So dude, dude, VS code co-pilot and now Claude desktop. uh Dude. uh
46:50
Uh oh, uh oh. Oh my God. Oh my God. So like, that's all. This was amazing. Let me kill the screen share and I just want to see your face and ask you a question. Yeah. An hour and 10 minutes. got two of the MCP going in two different environments with real questions, real value, CSV files, chatting with Netbox and natural language. Andy's mind's blown. He's not going to sleep tonight. No, was all, dude. It was awesome. Well here, like, here's the thing. We're two guys, neither of us work for Netbox or like
47:20
You know, this is exciting and we're not here trying to sell you the thing that we do with our car. This is genuine. oh my God, this is because I've sat and you too, we've sat in that seat. We know how hard it can be just to like do the job and to be able to do the job in natural language. And this wasn't that bad. We got this working in like 30 ish minutes. I think harder things in your life, right? Oh my God. Like such, such harder things. And this isn't why I love this. I'm just going to say that like it's not coding like.
47:48
And when the JSON was wrong, the agent fixed it. Like you're not telling me Andy, become a Python expert so you can do this, which has been the narrative prior. Like you have to learn coding and development and like, and I'm trying, this is easier. uh As far as I'm concerned. said, just fix it. We literally said, and it fixed it. Right. So the last parting thoughts for me, at least is for folks like me and that 70 % that doesn't automate in code. And though the folks that I'm concerned.
48:17
could be displaced when all this agentic AI magical awesomeness takes over industry completely. This is a great place to start, I think. In the notes, we'll send the documentation and everything you have to do and all that. But if you can follow along with this and like, this is like a lab, This is your home lab. So try it out, see if you can get it working. Once you do that, John, I would think if I'm trying to differentiate myself and keep my career progressing, I would want to try to do this at work. That's a whole different episode in conversation, but like, do you have to talk to work?
48:45
Hey, this is an idea I have. What do you think? Or do you just get the free net box open thing, open source, populate it, do a thing and then show them. I know it's culture to culture and company to company, but what next after you figure this out? Like, what do do at work? I would approach your leadership and ask them, there approved LLMs that I can get an API key for? Right. Are we using Co-Pilot? Are we using Amtropic? Are we using Google? What is the tool of choice? What is the approved corporate LLM?
49:14
If they don't have an answer for that, do that as an opportunity. Say, well, I have this wonderful idea. I can show you the demo. I've done it in my home lab with my own key. And maybe we can something we can put on the roadmap for starting to incorporate AI. Use this as leverage, Andy. Use this to move forward and be the AI expert in your shop. Do you know what I mean? Like you can be that person and become completely invaluable and irreplaceable. If you become that subject matter expert on bringing
49:43
these kind of ideas on board, right? I almost want to go back to production, John, just so I can do this. I'm going to call Michael Winston at Fiserv and go back like, look what I can do now. Well, Andy, again, you deserve a lot of credit for putting yourself out there like that. I'm glad that you didn't feel that this was too painful. You asked some great questions. And you know what? I really hope this the community. I really do. I do too.
50:06
John, thank you so much. You were so generous with your time and your effort and your teaching. You're helping me, you're helping all of our listeners, you're helping the entire networking community. Keep doing what you're doing, please. Thank you so much for being here. For all things Art of NetEng, check out our linktree at linktree.org slash artofneteng. As always, I like to call out our Discord server, it's all about the journey. There's about 3,500 people in there studying. We have an artificial intelligence channel, I will tell you John, and there's been a lot of chatter in there lately. And some of it has been about us talking about this publicly that...
50:34
you this is something that folks can do. if you're trying to get into networking or in networking, don't do this alone. Find a community. And if you don't have one, you can always check out ours. It's free. You get the link in the thing and you can check it out. Thank you so much, John, for being here. Thank you folks for watching and listening. And we'll catch you next time on the Art of Network Engineering podcast. Hey, folks, if you like what you heard today, please subscribe to our podcast and your favorite pod catcher. You can find us on socials at Art of NetEng and you can visit linktree forward slash Art of NetEng.
51:04
for links to all of our content, including the A1 Merch Store and our virtual community on Discord called It's All About the Journey. You can see our pretty faces on our YouTube channel named the Art of Network Engineering. That's youtube.com forward slash art of net edge. Thanks for listening.
Podcasts we love
Check out these other fine podcasts recommended by us, not an algorithm.
The Hedge
Russ White
Heavy Networking
Packet Pushers
Your Undivided Attention
The Center for Humane Technology, Tristan Harris, Daniel Barcay and Aza Raskin
Cables2Clouds
Cables2Clouds