Hey everybody, I’m again to exploring how agentic AI may match right into a community engineer’s workflow and turn out to be a priceless software in our software chest.
In my weblog put up, Making a NetAI Playground for Agentic AI Experimentation, I started this journey by exploring how we are able to make the most of Mannequin Context Protocol (MCP) servers and the idea of “instruments” to allow our AI brokers to work together with community units by sending present instructions. In the event you haven’t learn that put up but, undoubtedly test it out as a result of it’s some actually fabulous prose. Oh, and there may be some actually cool NetAI stuff in there, too. 😉
Whereas it was fascinating to see how nicely AI might perceive a community engineering activity offered in pure language, create a plan, after which execute that plan in the identical means I might, there was a limitation in that first instance. The one “software” the agent had was the flexibility to ship present instructions to the community machine. I needed to explicitly present the small print in regards to the community machine—particulars which might be available in my “supply of reality.”
To understand the ability of agentic AI, NetAI must have entry to the identical info as human community engineers. For in the present day’s put up, I wished to discover how I might present source-of-truth information to my NetAI agent. So, let’s dig in!
NetBox gives an MCP server
NetBox has lengthy been a favourite software of mine. It’s an open-source community supply of reality, written in Python, and out there in numerous deployment choices. NetBox has been with me via a lot of my community automation exploration; it appeared becoming to see the way it might match into this new world of AI.
Initially, I anticipated to place a easy MCP server collectively to entry NetBox information. I shortly realized that the crew at NetBox Labs had already launched an open-source primary MCP server on GitHub. It solely supplies “learn entry” to information, however as we noticed in my first NetAI put up, I’m beginning out slowly with read-only work anyway. Having a place to begin for introducing some supply of reality into my playground was going to considerably pace up my exploration. Completely superior.
Including NetBox to the NetAI playground
Have you ever ever been engaged on a undertaking and gotten distracted by one other “cool thought?” No? I assume it’s simply me then… 🙂
Like most of my community labs and explorations, I’m utilizing Cisco Modeling Labs (CML) to run the community playground for AI. This wasn’t the primary time I wished to have NetBox as a part of a CML topology. And as I used to be prepping to play with the NetBox MCP server, I had the thought…
Hank, wouldn’t or not it’s nice if there have been a CML NetBox node that may very well be simply added to a topology, and that may mechanically populate NetBox with the topology info from CML?
After all I answered myself…
Heck yeah, Hank, that’s an ideal thought!
My thoughts instantly began understanding the small print of the best way to put it collectively. I knew it could be tremendous straightforward and quick to knock out. And I figured different individuals would discover it helpful as nicely. So I took a “brief detour.”


I’m certain a lot of you raised your eyebrows once I stated “tremendous straightforward” and “quick.” You had been proper to be skeptical, after all. It wasn’t fairly as straightforward or simple as I anticipated. Nevertheless, I used to be in a position to get it working, and it’s actually cool and helpful for anybody who desires so as to add not solely a NetBox server to a CML community but in addition have it pre-populated with the units, hyperlinks, and IP particulars from the CML topology.
I nonetheless must compile the documentation for the brand new node definition earlier than I can put up it to the CML-Group on GitHub for others to make use of. Nevertheless, contemplate this weblog put up my public accountability put up, indicating that it’s forthcoming. You possibly can maintain me to it.
However sufficient of the aspect monitor on this weblog put up, let’s get again to the AI stuff!
Including NetBox MCP server to LM Studio
As I discussed within the final weblog put up, I’m utilizing LM Studio to run the Giant Language Mannequin (LLM) for my AI agent domestically on my laptop computer. The principle purpose is to keep away from sending any community info to a cloud AI service. Though I’m utilizing a “lab community” for my exploration, there are particulars within the lab setup that I do NOT need to be public or danger ending up in future coaching information for an LLM.
If this exploration is profitable, utilizing the strategy with manufacturing information can be the following step; nonetheless, that’s undoubtedly not one thing that aligns with a accountable AI strategy.
Cloning down the netbox-mcp-server code from GitHub was straightforward sufficient. The README included an instance MCP server configuration that offered every little thing I wanted to replace my mcp.json file in LM Studio so as to add it to my already configured pyATS MCP server.
{ "mcpServers": { "pyats": { "url": "http://localhost:8002/mcp" }, "netbox": { "command": "uv", "args": [ "--directory", "/Users/hapresto/code/netbox-mcp-server", "run", "server.py" ], "env": { "NETBOX_URL": "http://{{MY NETBOX IP ADDRESS}/", "NETBOX_TOKEN": "{{MY NETBOX API TOKEN}}" } } } }
As quickly as I saved the file, LM Studio found the instruments out there.


There are three instruments offered by the NetBox MCP server.
- netbox_get_objects: Generic software that bulk retrieves objects from NetBox. It helps “filters” to restrict the returned objects.
- netbox_get_object_by_id: Software to retrieve a single object of any kind from NetBox given an ID.
- netbox_get_changelogs: Software to search for audit and alter occasions
I used to be, and proceed to be, within the strategy utilized by the NetBox Labs people on this MCP server. Quite than offering instruments to “get_devices” and “get_ips“, they’ve a single software. NetBox’s APIs and object mannequin are nicely thought out, and make a generic strategy like this potential. And it definitely means much less code and improvement time. Nonetheless, it basically provides API entry to the LLM and shifts the load for “thought” and “processing the info” again to the LLM. As Agentic AI and MCP are nonetheless very new requirements and approaches, there aren’t actual finest practices and particulars on what works finest in design patterns right here but. I’ll come again to this strategy and what I see as some potential downsides in a while within the put up.
I then loaded the newly launched open mannequin by OpenAI, gpt-oss, and despatched the primary question.


My first thought.. “Success”. After which I scratched my head for a second. 10 units”? Scroll again as much as the CML topology picture and depend what number of units are within the topology. Go forward, I’ll wait…
Yeah. I counted seven units, too. And if I examine NetBox itself, it additionally reveals seven units.


So what occurred? LM Studio reveals the precise response from the software name, so I went and checked. Certain sufficient, solely seven units’ price of data was returned. I then remembered that one of many notoriously meme-worthy failings of many AI instruments is the flexibility to depend. Blueberries anybody?
So this was a pleasant teachable second about AI… AI is improbable, however it may be flawed. And it will likely be unhealthy with among the strangest issues. Keep vigilant, my buddies 😉
After resolving the problem with the ten units, I spent a substantial period of time asking extra questions and observing the AI make the most of the instruments to retrieve information from NetBox. Basically, I used to be fairly impressed, and getting access to source-of-truth information shall be key to any Agentic NetAI work we undertake. If you do this out by yourself, undoubtedly mess around and see what you are able to do with the LLM and your NetBox information. Nevertheless, I wished to discover what was potential in bringing instruments collectively.
Combining source-of-truth Instruments with community operations instruments
I wished to start out out with one thing that felt each helpful and fairly simple. So I despatched this immediate.
I would wish to confirm that router01 is bodily related to the appropriate units per the NetBox cable connections. > Be aware: The credentials for router01 are: `netadmin / 1234QWer` Are you able to: 1. Verify NetBox for what community units router01 is meant to be related to, and on what interfaces 2. Lookup the Out of Band IP deal with and SSH port from NetBox, use these to hook up with router01. 3. Use CDP on router01 to examine what neighbors are seen 4. Examine the NetBox to CDP info.
I nonetheless needed to inform the LLM what the credentials are for the units. That’s as a result of whereas NetBox is a improbable supply of reality, it does NOT retailer secrets and techniques/credentials. I’m planning on exploring what software choices exist for pulling information from secret storage in a while.
In case you are questioning why I offered a listing of steps to deal with this drawback somewhat than let the LLM “determine it out,” the reply is that whereas GenAI LLMs can appear “good”, they’re NOT community engineers. Or, extra particularly, they haven’t been educated and tuned to BE community engineers. Doubtless, the longer term will provide tuned LLMs for particular job roles somewhat than the general-purpose LLMs of in the present day. Till then, one of the best observe for “immediate engineering” is to supply the LLM with detailed directions on what you need it to do. That dramatically will increase the probabilities of success and the pace at which the LLM can deal with the issue.
Let’s take a look at how the LLM dealt with step one within the request, wanting up the machine connections.


At first look, this seems fairly good. It “knew” that it wanted to examine the Cables from NetBox. Nevertheless, there are some issues right here. The LLM crafted what seems to be a sound filter for the lookup: “device_a_name”: “router01.” Nevertheless, that’s really NOT a sound filter. It’s a hallucination.
A complete weblog put up may very well be written on the explanation this hallucination occurred, however the TL;DR is that the NetBox MCP server does NOT present express particulars on the best way to craft filters. It depends on the LLM to have the ability to construct a filter based mostly on the coaching information. And whereas each LLM has benefited from the copious quantities of NetBox documentation out there on the web, in all of my testing, I’ve but to have any LLM efficiently craft the right filter for something however probably the most primary searches for NetBox.
This has led me to start out constructing my very own “opinion” on how MCP servers ought to be constructed, and it includes requiring much less “guessing” from the LLMs to make use of them. I’ll most definitely be again extra on this matter in later posts and displays. However sufficient on that for now.
The LLM doesn’t know that the filter was flawed; it assumes that the cables returned are all related to router01. This results in different errors within the reporting, because the “Thought” course of reveals. It sees each Cable 1 and Cable 4 as related to Ethernet 0/0. The reality is that Cable 4 is related to switch01 Ethernet0/0. We’ll see how this components in later within the abstract of information.
As soon as it has the cable info, the LLM proceeds and completes the remainder of the software’s use to assemble information.


Discovering the Out of Band IP and SSH port was simple. However the first try and run “present cdp neighbors” failed as a result of the LLM initially didn’t use the SSH port as a part of the software name. However this is a superb instance of how Agentic AI can perceive errors from MCP servers and “repair them.” It realized the necessity for SSH and tried once more.
I’ve seen a number of circumstances the place AI brokers will resolve errors with software calls via trial and error and iteration. In reality, some MCP servers appear to be designed particularly with this because the anticipated conduct. Good error messages can provide the LLM the context required to repair the issue. Much like how we as people may react and modify once we get an error from a command or API name we ship. This is a superb energy of LLMs; nonetheless, I feel that MCP servers can and ought to be designed to restrict the quantity of trial and error required. I’ve additionally seen LLMs “hand over” after too many errors.
Let’s check out the ultimate response from the AI agent after it accomplished gathering and processing the outcomes.


So how did it do?
First, the nice issues. It appropriately acknowledged that the hyperlink to switch01 from NetBox matched a CDP entry. Glorious. It additionally known as out the lacking CDP neighbor for the “mgmt” change. It’s lacking as a result of “mgmt” is an unmanaged change and doesn’t run CDP.
It might have been actually “cool” if the LLM had observed that the machine kind of “mgmt” was “Unmanaged Change” and commented on that being the explanation CDP info was lacking. As already talked about, the LLM is NOT tuned for community engineering use circumstances, so I’ll give it a go on this.
And now the errors… The issue with the filter for the cable resulted in two errors within the findings. There aren’t two cables on Ethernet0/0, and the “Different unused cables” aren’t related to router01.
Hank’s takeaways from the check
I used to be undoubtedly a little bit upset that my preliminary checks weren’t 100% profitable; that may have made for an ideal story on this weblog put up. But when I’m trustworthy, working into a couple of issues was even higher for the put up.
AI will be downright wonderful and jaw-dropping with what it will possibly do. However it isn’t good. We’re within the very early days of Agentic AI and AIOps, and there’s a lot of labor left to do, from growing and providing tuned LLMs with domain-specific data to discovering one of the best practices for constructing one of the best functioning instruments for AI use circumstances.
What I did see on this experiment, and all my experiments and studying, is the true potential for NetAI to supply community engineers a strong software for designing and working their networks. I’ll be persevering with my exploration and look ahead to seeing that potential come to fruition.
There’s a lot extra I realized from this undertaking, however the weblog put up is getting fairly lengthy, so it’ll have to attend for one more installment. Whereas I’m engaged on that, let me know what you consider AI and the potential for making your day by day work as a community engineer higher.
How has AI helped you lately? What’s one of the best hallucination you’ve run into to date?
Let me know within the feedback!
Construct your abilities in synthetic intelligence
Discover AI coaching in Cisco U.
Learn subsequent:
Join Cisco U. | Be a part of the Cisco Studying Community in the present day free of charge.
Be taught with Cisco
X | Threads | Fb | LinkedIn | Instagram | YouTube
Use #CiscoU and #CiscoCert to affix the dialog.
Share: