feat(netbox): add module-based tool filtering for token optimization #411

Merged
lmiranda merged 1 commits from feat/netbox-module-filtering into development 2026-02-03 17:11:45 +00:00
Owner

Summary

  • Add NETBOX_ENABLED_MODULES environment variable to filter which NetBox modules are loaded
  • Reduces token consumption from ~19,810 tokens (182 tools) to ~4,500 tokens (~43 tools) with recommended config
  • Fix documentation referencing incorrect tool names (virtualization_*virt_*, etc.)

Changes

File Change
mcp-servers/netbox/mcp_server/config.py Add NETBOX_ENABLED_MODULES loading with ALL_MODULES constant
mcp-servers/netbox/mcp_server/server.py Add module filtering, conditional init, routing guard, startup logging
mcp-servers/netbox/README.md Add "Module Filtering" docs section; fix tool name references
plugins/cmdb-assistant/claude-md-integration.md Fix virtualization_*virt_* tool names
plugins/cmdb-assistant/commands/cmdb-search.md Fix tool name reference
CHANGELOG.md Document feature under [Unreleased]

Test plan

  • Start server without NETBOX_ENABLED_MODULES → 182 tools registered (backward compat)
  • Start server with NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras → ~43 tools registered
  • Startup log shows module list and tool count
  • Calling a disabled module's tool returns clear error message
  • Run ./scripts/validate-marketplace.sh

Configuration

Add to ~/.config/claude/netbox.env:

NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras

🤖 Generated with Claude Code

## Summary - Add `NETBOX_ENABLED_MODULES` environment variable to filter which NetBox modules are loaded - Reduces token consumption from ~19,810 tokens (182 tools) to ~4,500 tokens (~43 tools) with recommended config - Fix documentation referencing incorrect tool names (`virtualization_*` → `virt_*`, etc.) ## Changes | File | Change | |------|--------| | `mcp-servers/netbox/mcp_server/config.py` | Add `NETBOX_ENABLED_MODULES` loading with `ALL_MODULES` constant | | `mcp-servers/netbox/mcp_server/server.py` | Add module filtering, conditional init, routing guard, startup logging | | `mcp-servers/netbox/README.md` | Add "Module Filtering" docs section; fix tool name references | | `plugins/cmdb-assistant/claude-md-integration.md` | Fix `virtualization_*` → `virt_*` tool names | | `plugins/cmdb-assistant/commands/cmdb-search.md` | Fix tool name reference | | `CHANGELOG.md` | Document feature under [Unreleased] | ## Test plan - [ ] Start server without `NETBOX_ENABLED_MODULES` → 182 tools registered (backward compat) - [ ] Start server with `NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras` → ~43 tools registered - [ ] Startup log shows module list and tool count - [ ] Calling a disabled module's tool returns clear error message - [ ] Run `./scripts/validate-marketplace.sh` ✅ ## Configuration Add to `~/.config/claude/netbox.env`: ```bash NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras ``` 🤖 Generated with [Claude Code](https://claude.ai/code)
lmiranda added 1 commit 2026-02-03 17:10:04 +00:00
Reduces NetBox MCP context token consumption from ~19,810 tokens (182 tools)
to ~4,500 tokens (~43 tools) by enabling environment-variable-driven module
filtering.

Key changes:
- Add NETBOX_ENABLED_MODULES env var to config.py
- Filter tool registration based on enabled modules in server.py
- Conditional tool class instantiation for memory efficiency
- Routing guard with clear error messages for disabled modules
- Startup logging shows enabled modules and tool count

Also fixes documentation referencing incorrect tool names:
- virtualization_* → virt_* in cmdb-assistant docs
- wireless_* → wlan_* in README
- circuits_list_circuit_terminations → circ_list_terminations

Recommended config for cmdb-assistant users:
NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
lmiranda merged commit da0be51946 into development 2026-02-03 17:11:45 +00:00
lmiranda deleted branch feat/netbox-module-filtering 2026-02-03 17:11:45 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: personal-projects/leo-claude-mktplace#411