MCP server for NetBox DCIM/IPAM with read-only and dry-run modes
Connect Runs on your machine
claude mcp add netbox-mcp -e NETBOX_URL=<NETBOX_URL> -e NETBOX_TOKEN=<NETBOX_TOKEN> -e NETBOX_VERIFY_SSL=<NETBOX_VERIFY_SSL> -e NETBOX_TIMEOUT=<NETBOX_TIMEOUT> -e NETBOX_BRANCHING_ENABLED=<NETBOX_BRANCHING_ENABLED> -e NETBOX_BRANCH=<NETBOX_BRANCH> -e NETBOX_PLUGIN_DISCOVERY=<NETBOX_PLUGIN_DISCOVERY> -e READ_ONLY_MODE=<READ_ONLY_MODE> -e DRY_RUN_MODE=<DRY_RUN_MODE> -e DISABLED_TAGS=<DISABLED_TAGS> -e LOG_LEVEL=<LOG_LEVEL> -e RESPONSE_MAX_SIZE=<RESPONSE_MAX_SIZE> -e RATE_LIMIT_ENABLED=<RATE_LIMIT_ENABLED> -e RATE_LIMIT_MAX_REQUESTS=<RATE_LIMIT_MAX_REQUESTS> -e RATE_LIMIT_WINDOW_MINUTES=<RATE_LIMIT_WINDOW_MINUTES> -e TOOL_SEARCH_ENABLED=<TOOL_SEARCH_ENABLED> -e TOOL_SEARCH_STRATEGY=<TOOL_SEARCH_STRATEGY> -e TOOL_SEARCH_MAX_RESULTS=<TOOL_SEARCH_MAX_RESULTS> -- uvx netbox-mcp==0.3.0
{
"mcpServers": {
"netbox-mcp": {
"command": "uvx",
"args": [
"netbox-mcp==0.3.0"
],
"env": {
"NETBOX_URL": "<NETBOX_URL>",
"NETBOX_TOKEN": "<NETBOX_TOKEN>",
"NETBOX_VERIFY_SSL": "<NETBOX_VERIFY_SSL>",
"NETBOX_TIMEOUT": "<NETBOX_TIMEOUT>",
"NETBOX_BRANCHING_ENABLED": "<NETBOX_BRANCHING_ENABLED>",
"NETBOX_BRANCH": "<NETBOX_BRANCH>",
"NETBOX_PLUGIN_DISCOVERY": "<NETBOX_PLUGIN_DISCOVERY>",
"READ_ONLY_MODE": "<READ_ONLY_MODE>",
"DRY_RUN_MODE": "<DRY_RUN_MODE>",
"DISABLED_TAGS": "<DISABLED_TAGS>",
"LOG_LEVEL": "<LOG_LEVEL>",
"RESPONSE_MAX_SIZE": "<RESPONSE_MAX_SIZE>",
"RATE_LIMIT_ENABLED": "<RATE_LIMIT_ENABLED>",
"RATE_LIMIT_MAX_REQUESTS": "<RATE_LIMIT_MAX_REQUESTS>",
"RATE_LIMIT_WINDOW_MINUTES": "<RATE_LIMIT_WINDOW_MINUTES>",
"TOOL_SEARCH_ENABLED": "<TOOL_SEARCH_ENABLED>",
"TOOL_SEARCH_STRATEGY": "<TOOL_SEARCH_STRATEGY>",
"TOOL_SEARCH_MAX_RESULTS": "<TOOL_SEARCH_MAX_RESULTS>"
}
}
}
}
{
"mcpServers": {
"netbox-mcp": {
"command": "uvx",
"args": [
"netbox-mcp==0.3.0"
],
"env": {
"NETBOX_URL": "<NETBOX_URL>",
"NETBOX_TOKEN": "<NETBOX_TOKEN>",
"NETBOX_VERIFY_SSL": "<NETBOX_VERIFY_SSL>",
"NETBOX_TIMEOUT": "<NETBOX_TIMEOUT>",
"NETBOX_BRANCHING_ENABLED": "<NETBOX_BRANCHING_ENABLED>",
"NETBOX_BRANCH": "<NETBOX_BRANCH>",
"NETBOX_PLUGIN_DISCOVERY": "<NETBOX_PLUGIN_DISCOVERY>",
"READ_ONLY_MODE": "<READ_ONLY_MODE>",
"DRY_RUN_MODE": "<DRY_RUN_MODE>",
"DISABLED_TAGS": "<DISABLED_TAGS>",
"LOG_LEVEL": "<LOG_LEVEL>",
"RESPONSE_MAX_SIZE": "<RESPONSE_MAX_SIZE>",
"RATE_LIMIT_ENABLED": "<RATE_LIMIT_ENABLED>",
"RATE_LIMIT_MAX_REQUESTS": "<RATE_LIMIT_MAX_REQUESTS>",
"RATE_LIMIT_WINDOW_MINUTES": "<RATE_LIMIT_WINDOW_MINUTES>",
"TOOL_SEARCH_ENABLED": "<TOOL_SEARCH_ENABLED>",
"TOOL_SEARCH_STRATEGY": "<TOOL_SEARCH_STRATEGY>",
"TOOL_SEARCH_MAX_RESULTS": "<TOOL_SEARCH_MAX_RESULTS>"
}
}
}
}
{
"servers": {
"netbox-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"netbox-mcp==0.3.0"
],
"env": {
"NETBOX_URL": "<NETBOX_URL>",
"NETBOX_TOKEN": "<NETBOX_TOKEN>",
"NETBOX_VERIFY_SSL": "<NETBOX_VERIFY_SSL>",
"NETBOX_TIMEOUT": "<NETBOX_TIMEOUT>",
"NETBOX_BRANCHING_ENABLED": "<NETBOX_BRANCHING_ENABLED>",
"NETBOX_BRANCH": "<NETBOX_BRANCH>",
"NETBOX_PLUGIN_DISCOVERY": "<NETBOX_PLUGIN_DISCOVERY>",
"READ_ONLY_MODE": "<READ_ONLY_MODE>",
"DRY_RUN_MODE": "<DRY_RUN_MODE>",
"DISABLED_TAGS": "<DISABLED_TAGS>",
"LOG_LEVEL": "<LOG_LEVEL>",
"RESPONSE_MAX_SIZE": "<RESPONSE_MAX_SIZE>",
"RATE_LIMIT_ENABLED": "<RATE_LIMIT_ENABLED>",
"RATE_LIMIT_MAX_REQUESTS": "<RATE_LIMIT_MAX_REQUESTS>",
"RATE_LIMIT_WINDOW_MINUTES": "<RATE_LIMIT_WINDOW_MINUTES>",
"TOOL_SEARCH_ENABLED": "<TOOL_SEARCH_ENABLED>",
"TOOL_SEARCH_STRATEGY": "<TOOL_SEARCH_STRATEGY>",
"TOOL_SEARCH_MAX_RESULTS": "<TOOL_SEARCH_MAX_RESULTS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
NETBOX_URLRequired | NetBox base URL (e.g., https://netbox.example.com) |
NETBOX_TOKENRequired, secret | NetBox API token: v2 (nbt_<key>.<token>, NetBox 4.5+) or legacy v1 |
NETBOX_VERIFY_SSLOptional | Verify SSL certificates (true/false) |
NETBOX_TIMEOUTOptional | Total time allowed for one NetBox request, retries included (seconds) |
NETBOX_BRANCHING_ENABLEDOptional | Enable netbox-branching support: branch tools and the 'branch' argument (requires the netbox-branching plugin) (true/false) |
NETBOX_BRANCHOptional | Default netbox-branching branch (name or schema ID) for every call; requires NETBOX_BRANCHING_ENABLED=true |
NETBOX_PLUGIN_DISCOVERYOptional | Discover plugin object types from /api/core/object-types/ (true/false) |
READ_ONLY_MODEOptional | Hide all write tools (create, update, delete) (true/false) |
DRY_RUN_MODEOptional | Write tools only simulate changes and never modify NetBox (true/false) |
DISABLED_TAGSOptional | Comma-separated tool tags to disable (e.g. delete,graphql,branching) |
LOG_LEVELOptional | Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
RESPONSE_MAX_SIZEOptional | Maximum tool response size in bytes (unset = unlimited) |
RATE_LIMIT_ENABLEDOptional | Enable rate limiting |
RATE_LIMIT_MAX_REQUESTSOptional | Maximum requests per rate limit window |
RATE_LIMIT_WINDOW_MINUTESOptional | Rate limit window in minutes |
TOOL_SEARCH_ENABLEDOptional | Enable FastMCP tool search transform |
TOOL_SEARCH_STRATEGYOptional | Tool search strategy (bm25 or regex) |
TOOL_SEARCH_MAX_RESULTSOptional | Maximum tool search results returned by search_tools |
Details
| Package | [email protected] (PYPI, stdio) |
| Package | [email protected] (PYPI, streamable-http) |
| Package | ghcr.io/mhajder/netbox-mcp:0.3.0 (OCI, streamable-http) |
| First published | 7 Nov 2026 |
| Last updated | 7 Nov 2026 |
| Registry name | io.github.mhajder/netbox-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
