NetBox MCP Server
About
Model Context Protocol (MCP) server for read-only interaction with NetBox data in LLMs
Details
- Author
- netboxlabs
- GitHub stars
- 201
- Downloads
- 435
- Categories
- Other
Jump to
- Queries and analyzes network infrastructure data from NetBox
- Checks device configurations and connections
- Examines virtualization clusters and virtual machines
- Analyzes VLANs, IP address allocations, and more
- Generates network topology information
- Detects NVMe storage in clusters
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
NetBox MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Create a read-only NetBox API token, install dependencies (uv sync or `pip install -e
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"netbox mcp server": {
"netbox-mcp-server": {
"command": "uv",
"args": [
"sync"
]
}
}
}
}
McpServers
{
"netbox-mcp-server": {
"command": "uv",
"args": [
"sync"
]
}
}
NetBox MCP Server
> ⚠️ Breaking Change in v1.0.0: The project structure has changed.
> If upgrading from v0.1.0, update your configuration:
> - Change uv run server.py to uv run netbox-mcp-server
> - Update Claude Desktop/Code configs to use netbox-mcp-server instead of server.py
> - Docker users: rebuild images with updated CMD
> - See CHANGELOG.md for full details
This is a simple read-only Model Context Protocol server for NetBox. It enables you to interact with your data in NetBox directly via LLMs that support MCP.
The server is intentionally simple: easy to get started with, hard to misuse (read-only by default, no plugin surface), and easy to fork and adapt. Forking under Apache 2.0 is a first-class path for users who need capabilities beyond the project's scope.
Community
For chat, use cases, and general MCP discussion, join the NetBox community at netdev.chat. The #ai channel is the right home for MCP integrations, questions, and sharing use cases. Bugs and feature ideas specific to this server go in issues.
Tools
| Tool | Description |
|------|-------------|
| get_objects | Retrieves NetBox core objects based on their type and filters |
| get_object_by_id | Gets detailed information about a specific NetBox object by its ID |
| get_changelogs | Retrieves change history records (audit trail) based on filters |
> Note: Core NetBox object types are always available. Plugin object types can be auto-discovered. See Plugin Object Type Discovery. Advanced features (GraphQL, dynamic model discovery, etc.) are deliberately out of scope. See CONTRIBUTING.md for the full scope statement and rationale.
Usage
1. Create a read-only API token in NetBox with sufficient permissions for the tool to access the data you want to make available via MCP.
2. Install dependencies:
# Using UV (recommended)
uv sync
# Or using pip
pip install -e .
3. Verify the server can run: NETBOX_URL=https://netbox.example.com/ NETBOX_TOKEN=<your-api-token> uv run netbox-mcp-server
4. Add the MCP server to your LLM client. See below for some examples with Claude.
Claude Code
Stdio Transport (Default)
Add the server using the claude mcp add command:
claude mcp add --transport stdio netbox \
--env NETBOX_URL=https://netbox.example.com/ \
--env NETBOX_TOKEN=<your-api-token> \
-- uv --directory /path/to/netbox-mcp-server run netbox-mcp-server
Important notes:
- Replace /path/to/netbox-mcp-server with the absolute path to your local clone
- The -- separator distinguishes Claude Code flags from the server command
- Use --scope project to share the configuration via .mcp.json in version control
- Use --scope user to make it available across all your projects (default is local)
After adding, verify with /mcp in Claude Code or claude mcp list in your terminal.
HTTP Transport
For HTTP transport, first start the server manually:
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



