nautobot-sot
Nautobot Source of Truth
Query Nautobot as a network source of truth for IPAM data — retrieve IP addresses with filtering by status, role, VRF, and tenant; look up network prefixes by site and role; search across all IP address data; and verify Nautobot connectivity. This is the Nautobot counterpart to the NetBox netbox-reconcile skill — use this skill when the organization runs Nautobot instead of (or alongside) NetBox.
MCP Server
- Repository: aiopnet/mcp-nautobot
- Transport: stdio (Python via MCP SDK) — also supports HTTP on configurable port
- Requires:
NAUTOBOT_URL,NAUTOBOT_TOKEN - Python: 3.13+
- Read-only: All tools are read-only (requires API token with read permissions)
MCP Tools
| Tool | Parameters | What It Does |
|---|---|---|
get_ip_addresses |
address?, prefix?, status?, role?, tenant?, vrf?, limit?, offset? |
Retrieve IP addresses with filtering — status (active, reserved, deprecated), role (loopback, secondary, anycast), VRF, tenant |
get_prefixes |
prefix?, status?, site?, role?, tenant?, vrf?, limit?, offset? |
Retrieve network prefixes with filtering by site, role, status, VRF, tenant |
get_ip_address_by_id |
ip_id |
Retrieve a specific IP address by its Nautobot UUID |
search_ip_addresses |
query, limit? |
Full-text search across all IP address data — find IPs by any matching field |
test_connection |
none | Verify connectivity to the Nautobot API — returns status, URL, and timestamp |
Tool Details
get_ip_addresses
The primary IPAM query tool. Supports rich filtering:
- address — specific IP to search (e.g.,
10.0.1.1) - prefix — network prefix filter (e.g.,
10.0.0.0/24) — returns all IPs within the prefix - status —
active,reserved,deprecated - role —
loopback,secondary,anycast,vip,hsrp,vrrp - tenant — filter by tenant (multi-tenancy support)
- vrf — filter by VRF (routing instance isolation)
- limit — max results (default: 100, max: 1000)
- offset — pagination offset
Returns JSON with count and IP address objects including assignment details.
get_prefixes
Network prefix (subnet) lookup with site awareness:
- prefix — specific prefix (e.g.,
10.0.0.0/24) - site — filter by site/location name
- role — prefix role (production, development, management, etc.)
- status — active, reserved, deprecated, container
- tenant / vrf — multi-tenancy and routing isolation
Returns JSON with prefix objects including utilization data.
search_ip_addresses
Free-text search across all IP address fields. Use this when you don't know exactly what field to filter on:
- Query by partial IP, hostname, description, or any text in the IP record
- Default limit: 50 (max: 500)
Workflow: IPAM Audit
When auditing IP address allocations:
- Test connection:
test_connection— verify Nautobot API is reachable - List prefixes:
get_prefixesby site — what subnets are allocated per site - IP utilization:
get_ip_addressesper prefix — how many IPs are active vs reserved - Deprecated check:
get_ip_addresses(status="deprecated")— stale allocations - Report: IPAM utilization summary by site and prefix
Workflow: IP Address Lookup
When investigating "what device uses IP 10.1.2.3?":
- Search:
search_ip_addresses(query="10.1.2.3")— find the IP - Details:
get_ip_address_by_id— full details including device assignment - Prefix context:
get_prefixes(prefix="10.1.2.0/24")— what subnet is it in, which site - Report: IP ownership, device assignment, subnet, site, VRF, tenant
Workflow: VRF Reconciliation
When validating VRF IP allocations:
- Get VRF IPs:
get_ip_addresses(vrf="PROD-VRF")— all IPs in the VRF - Get VRF prefixes:
get_prefixes(vrf="PROD-VRF")— all subnets in the VRF - Cross-check: verify IPs fall within expected prefix ranges
- Overlap detection: compare prefixes across VRFs for unintended overlap
- Report: VRF allocation summary with any anomalies
Workflow: Site IP Summary
When generating an IP summary for a specific site:
- Site prefixes:
get_prefixes(site="Chicago-DC")— all subnets at the site - Per-prefix IPs:
get_ip_addresses(prefix="10.10.0.0/16")— IPs in each prefix - Loopbacks:
get_ip_addresses(role="loopback", status="active")— router loopbacks - Report: site IPAM dashboard with prefix utilization, loopback inventory, tenant breakdown
Integration with Other Skills
| Skill | How They Work Together |
|---|---|
netbox-reconcile |
Nautobot and NetBox are alternative SoTs — use whichever the org runs; both provide IPAM data for reconciliation |
pyats-topology |
Nautobot provides intended state (IP assignments); pyATS discovers actual state from devices |
pyats-network |
Cross-reference Nautobot IPAM with live device IP configs from pyATS |
pyats-routing |
Validate routing table entries against Nautobot IPAM allocations |
radkit-remote-access |
Use Nautobot to identify device IPs, then RADKit to access those devices remotely |
aci-fabric-audit |
Nautobot IPAM vs ACI endpoint tracker for data center reconciliation |
meraki-network-ops |
Nautobot subnet allocations vs Meraki DHCP/VLAN assignments |
aws-network-ops |
Nautobot IPAM vs AWS VPC CIDR allocations for hybrid cloud reconciliation |
gait-session-tracking |
Record all Nautobot IPAM queries and reconciliation results in GAIT |
servicenow-change-workflow |
Reference Nautobot IPAM data when planning change requests |
Nautobot vs NetBox
Both are popular network source-of-truth platforms. NetClaw supports both:
| Feature | NetBox (netbox-reconcile) |
Nautobot (nautobot-sot) |
|---|---|---|
| Origin | DigitalOcean / NetBox Labs | Network to Code (fork of NetBox) |
| IPAM | Full IPAM, DCIM, circuits | Full IPAM, DCIM, circuits + Jobs framework |
| API style | REST + GraphQL | REST + GraphQL + Jobs API |
| MCP tools | Read-only via FastMCP | Read-only via MCP SDK |
| Use when | Org uses NetBox | Org uses Nautobot |
If the organization runs both, use both skills for cross-platform reconciliation.
Important Rules
- Read-only — all tools are read operations; no writes to Nautobot
- API token scope — ensure the token has read permissions for IPAM endpoints
- Pagination matters — for large datasets, use
limitandoffsetto page through results (max 1000 per request) - VRF isolation — IP addresses can be duplicated across VRFs; always filter by VRF when the network uses overlapping address space
- Multi-tenancy — filter by tenant for shared Nautobot instances serving multiple organizations
- Record in GAIT — log all Nautobot IPAM queries and reconciliation results
Environment Variables
NAUTOBOT_URL— Nautobot instance URL (e.g.,https://nautobot.example.com)NAUTOBOT_TOKEN— Nautobot API token with read permissionsMCP_PORT— Server port when running in HTTP mode (default: 8000, optional)MCP_HOST— Server bind address (default: 127.0.0.1, optional)