Nautobot MCP Starfleet Infrastructure Build Report
Date: April 2026
FMCP Version: 0.5
Agent: GPT
frisian-mcp Dispatcher Pattern — Medium Themed Network Construction Session
Session Date: 2026-05-12
Environment: Nautobot MCP / frisian-mcp dispatcher surface
Theme: Star Trek / Starfleet Operations
Build Scope: Medium infrastructure build, logically separated from existing Nautobot data
Modules Used: Tenancy, DCIM, IPAM, DNS Models, BGP Models, Golden Config
Recoverable Validation Events: 12
Unrecoverable Errors: 0
Executive Summary
This session constructed a Star Trek themed medium infrastructure environment inside Nautobot using the frisian-mcp dispatcher pattern. The build was intentionally separated from the existing production-style demo network by creating a dedicated tenant, IP namespace, DNS view/zone, and named Starfleet topology objects.
The final result is a two-site Starfleet network spanning Earth Spacedock and Deep Space Nine, both nested under the Alpha Quadrant region. The build includes a full DCIM footprint with routers, firewalls, spines, leaves, and a services node; IPAM aggregation and site subnets; a DNS zone with SOA/NS/A records; BGP AS/routing-instance/address-family objects; and a Golden Config compliance feature to anchor future baseline policy.
Live Nautobot verification confirmed the tenant contains 11 devices, 2 racks, 3 prefixes, and 4 IP addresses. The DNS module contains the starfleet.example zone and four A records. BGP contains AS 65170, two routing instances, and two IPv4 unicast address-family records. Golden Config contains the Starfleet Baseline compliance feature.
No deployment or configuration-generation jobs were run. The session created inventory and intent/state records only.
Session Objectives
- Create a medium-sized infrastructure build using the available Nautobot modules.
- Make the build Star Trek themed without polluting the existing environment.
- Use multiple dispatcher groups: Tenancy, DCIM, IPAM, DNS, BGP, Golden Config.
- Validate schema discovery and error pass-through while adapting to plugin-specific field requirements.
- Produce a review similar to the prior large-network demo report, but scoped to this Starfleet build.
Part 1: Dispatcher Validation
Dispatchers Exercised
| Dispatcher | Resources Used | Status |
|---|---|---|
Nautobot:tenancy |
tenantgroup, tenant |
Working |
Nautobot:dcim |
location, rack, device, platform |
Working |
Nautobot:ipam |
namespace, prefix, ipaddress |
Working |
Nautobot:dns |
dnsview, dnszone, nsrecord, arecord |
Working |
Nautobot:bgp |
autonomoussystem, bgproutinginstance, addressfamily |
Working |
Nautobot:golden_config |
compliancefeature |
Working with stricter rule schema |
Dispatcher Behavior
The dispatcher pattern remained effective for this build. Each module exposed a compact action/resource interface while still giving access to the underlying Nautobot resources. The session repeatedly used the same pattern:
Nautobot:<group>(resource="<resource>", action="<action>", ...)
Validation errors were preserved clearly enough to resolve most schema mismatches in a single retry. Examples included:
- DNS zone required
soa_mnameandfilename. - DNS SOA responsible name required an email address, not dotted SOA mailbox syntax.
- DNS A records required an IPAM
IPAddressobject, not a raw IP string. - BGP address families required a routing instance.
- Golden Config compliance rules required plugin-specific config-match fields.
Part 2: Network Built
Isolation Boundary
| Object | Name | Purpose |
|---|---|---|
| Tenant Group | Federation Infrastructure |
Theme/grouping boundary |
| Tenant | Starfleet Operations |
Primary logical separation boundary |
| IPAM Namespace | starfleet-operations |
Independent IP namespace |
| DNS View | starfleet-operations |
Independent DNS view |
| DNS Zone | starfleet.example |
Starfleet forward DNS zone |
The tenant was used as the primary object boundary for DCIM and IPAM. The IP namespace and DNS view provide additional logical separation for addressing and name resolution.
Location Hierarchy
Alpha Quadrant
├── Earth Spacedock
│ └── ESD-RACK-1701
└── Deep Space Nine
└── DS9-RACK-0009
Racks
| Rack | Site | U Height | Purpose |
|---|---|---|---|
ESD-RACK-1701 |
Earth Spacedock | 42U | Enterprise service/fabric rack |
DS9-RACK-0009 |
Deep Space Nine | 42U | DS9 edge/fabric rack |
Device Inventory
| Site | Routers | Firewalls | Spines | Leaves | Services | Total |
|---|---|---|---|---|---|---|
| Earth Spacedock | 2 | 1 | 1 | 2 | 1 | 7 |
| Deep Space Nine | 1 | 1 | 1 | 1 | 0 | 4 |
| Total | 3 | 2 | 2 | 3 | 1 | 11 |
Devices Created
| Device | Site | Role | Theme Note |
|---|---|---|---|
esd01-core-rtr-01 |
Earth Spacedock | Router | USS Enterprise core router |
esd01-core-rtr-02 |
Earth Spacedock | Router | USS Defiant secondary core |
esd01-fw-01 |
Earth Spacedock | Firewall | Shield-grid perimeter firewall |
esd01-spine-01 |
Earth Spacedock | Spine Switch | Vulcan logic spine |
esd01-leaf-01 |
Earth Spacedock | Leaf Switch | Enterprise access leaf |
esd01-leaf-02 |
Earth Spacedock | Leaf Switch | Voyager access leaf |
esd01-svc-transporters-01 |
Earth Spacedock | Server | Transporter services node |
ds901-core-rtr-01 |
Deep Space Nine | Router | Wormhole edge core router |
ds901-fw-01 |
Deep Space Nine | Firewall | DS9 shield-grid firewall |
ds901-spine-01 |
Deep Space Nine | Spine Switch | Cardassian-refit spine |
ds901-leaf-01 |
Deep Space Nine | Leaf Switch | Promenade access leaf |
Device Type / Platform Use
The build reused existing Nautobot hardware and platform models rather than creating new ones unnecessarily.
| Platform | Intended Use |
|---|---|
IOS-XR |
Cisco ASR-style core routers |
EOS |
Arista spine/leaf switching |
JunOS |
Juniper firewall devices |
Part 3: IPAM Data
Namespace
| Namespace | Description |
|---|---|
starfleet-operations |
Dedicated IP namespace for the Starfleet build |
Prefix Hierarchy
10.170.0.0/16 Starfleet Operations aggregate / NCC-1701 block
├── 10.170.1.0/24 Earth Spacedock management and services
└── 10.170.9.0/24 Deep Space Nine management and services
IP Addresses
| IP Address | DNS Name / Use | Site |
|---|---|---|
10.170.1.1/24 |
esd01-core-rtr-01.starfleet.example |
Earth Spacedock |
10.170.1.10/24 |
ns1.starfleet.example |
Earth Spacedock |
10.170.1.50/24 |
transporters.starfleet.example |
Earth Spacedock |
10.170.9.1/24 |
ds901-core-rtr-01.starfleet.example |
Deep Space Nine |
The DNS plugin required A records to reference Nautobot IPAM IPAddress objects. Supporting IP address objects were therefore created before DNS A records were added.
Part 4: DNS Data
DNS View
| View | Purpose |
|---|---|
starfleet-operations |
Dedicated DNS view for Starfleet name resolution |
DNS Zone
| Zone | TTL | Filename | SOA MNAME | SOA RNAME |
|---|---|---|---|---|
starfleet.example |
300 | db.starfleet.example |
ns1.starfleet.example. |
noc@starfleet.example |
DNS Records
| Type | Name | Target |
|---|---|---|
| NS | starfleet.example |
ns1.starfleet.example. |
| A | ns1.starfleet.example |
10.170.1.10 |
| A | esd01-core-rtr-01.starfleet.example |
10.170.1.1 |
| A | ds901-core-rtr-01.starfleet.example |
10.170.9.1 |
| A | transporters.starfleet.example |
10.170.1.50 |
Part 5: BGP Data
Autonomous System
| AS | Description |
|---|---|
65170 |
Starfleet Operations private autonomous system for NCC-1701 fabric |
Routing Instances
| Routing Instance | Device | Router ID |
|---|---|---|
esd01-core-rtr-01 - AS 65170 |
esd01-core-rtr-01 |
10.170.1.1 |
ds901-core-rtr-01 - AS 65170 |
ds901-core-rtr-01 |
10.170.9.1 |
Address Families
| Device | AFI/SAFI |
|---|---|
esd01-core-rtr-01 |
ipv4_unicast |
ds901-core-rtr-01 |
ipv4_unicast |
The BGP model required address families to be scoped under routing instances, so routing instances were created first.
Part 6: Golden Config
Compliance Feature
| Feature | Slug | Description |
|---|---|---|
Starfleet Baseline |
starfleet-baseline |
Baseline compliance feature for hostname, management access, BGP AS 65170, DNS reachability, and shield-grid firewall posture |
Compliance Rule Attempts
Compliance rule creation was intentionally stopped after validation showed that this Nautobot Golden Config schema requires stricter, plugin-specific rule fields. The session successfully created the compliance feature but did not create malformed compliance rules.
Observed Golden Config schema behavior:
- The requested platform must match a valid Nautobot platform (
IOS-XR,EOS, orJunOS). - Compliance rule config fields were not plain-text fields as initially assumed.
config_remediationwas interpreted as a boolean.- The rule model expected a valid configuration match structure.
This is a good place for follow-on work once the intended Golden Config rule schema or policy templates are defined.
Part 7: Object Creation Results
Summary
| Resource Type | Created / Verified |
|---|---|
| Tenant groups | 1 |
| Tenants | 1 |
| Locations | 3 |
| Racks | 2 |
| Devices | 11 |
| IP namespaces | 1 |
| Prefixes | 3 |
| IP addresses | 4 |
| DNS views | 1 |
| DNS zones | 1 |
| DNS NS records | 1 |
| DNS A records | 4 |
| BGP autonomous systems | 1 |
| BGP routing instances | 2 |
| BGP address families | 2 |
| Golden Config compliance features | 1 |
Total Created / Verified Objects
39 primary Nautobot objects were created or verified for this build, excluding implicit relationship metadata and nested foreign-key references.
Part 8: Errors Encountered & Resolutions
| # | Error / Validation Event | Root Cause | Resolution |
|---|---|---|---|
| 1 | Tenant group did not appear on tenant after create | Field naming/model behavior differed from assumption | Used tenant as authoritative separation boundary |
| 2 | DNS zone missing soa_mname |
Required DNS Models field | Retried with SOA fields |
| 3 | DNS zone missing filename |
Required zone-file field | Added db.starfleet.example |
| 4 | DNS SOA responsible name rejected | Plugin expected email format, not dotted SOA mailbox | Used noc@starfleet.example |
| 5 | DNS zone rejected UUID via wrong view field | Field expected dns_view natural key |
Used dns_view: starfleet-operations |
| 6 | NS record missing server |
NS model uses server target field |
Retried with server |
| 7 | A record missing ip_address |
A model uses ip_address, not address |
Retried with ip_address |
| 8 | A record rejected raw IP string | DNS A records bind to IPAM objects | Created IPAM IP objects first |
| 9 | BGP AS filter rejected integer | Dispatcher filter expected string | Retried with "65170" |
| 10 | BGP address family missing routing_instance |
AFI/SAFI scoped under routing instance | Created routing instances first |
| 11 | Golden Config platform not found | Used invalid platform display name | Inspected valid platforms |
| 12 | Golden Config rule config fields rejected | Plugin requires specific rule schema | Stopped at valid compliance feature |
All errors were recoverable or safely bounded. No partial destructive operation was performed, and no deployment job was run.
Part 9: Architecture Validated
Dispatcher Pattern
This session reinforced the same core dispatcher pattern finding as the larger reference build: a compact group dispatcher lets the agent navigate a broad Nautobot surface without flooding the context window with hundreds of flat tool schemas.
For this Starfleet build, the agent used multiple modules in one flow:
tenancy → dcim → ipam → dns → bgp → golden_config
The dispatcher pattern was especially useful when plugin schemas differed from generic assumptions. The agent could call help, try a minimal object, inspect validation feedback, and retry with corrected fields.
Schema Discovery
The most useful discovery behavior came from Nautobot validation errors. Rather than hiding details, the MCP surface returned actionable messages such as:
- required property names,
- incorrect field types,
- missing relationship objects,
- invalid platform references.
This made iterative schema alignment practical.
Logical Separation
The build is separated from prior infrastructure through:
- Dedicated tenant:
Starfleet Operations - Dedicated IP namespace:
starfleet-operations - Dedicated DNS view:
starfleet-operations - Themed unique naming convention:
esd01-*ds901-*starfleet.example10.170.0.0/16
Part 10: Recommended Follow-On Work
High Priority
Create Golden Config rule templates
- Define proper compliance-rule schema payloads for
IOS-XR,EOS, andJunOS. - Add Starfleet baseline checks for hostname, BGP AS 65170, DNS resolvers, and management ACLs.
- Define proper compliance-rule schema payloads for
Add interfaces and IP-to-interface assignments
- Create management interfaces for all 11 devices.
- Bind the four IPAM addresses to the appropriate router/server interfaces.
- Set primary IPv4 addresses on core devices where appropriate.
Add physical cabling
- Model router-to-spine and spine-to-leaf links.
- Suggested pattern:
- ESD dual-core to ESD spine
- ESD spine to both leaves
- DS9 core to DS9 spine
- DS9 spine to DS9 leaf
Medium Priority
Expand DNS
- Add A records for all devices.
- Add PTR records for management IPs.
- Add TXT record for Starfleet build metadata.
Complete BGP peering
- Add peer groups.
- Add peer endpoints.
- Model ESD ↔ DS9 core peering.
Add VRF or route-target modeling
- Add
STARFLEET-MGMTVRF. - Add route targets for shared services and site-local routing.
- Add
Nice to Have
Add contacts / teams
- Team:
Starfleet Network Operations - Contact:
Chief Engineer Montgomery Scott - Contact:
Operations Officer Data
- Team:
Add software versions
- IOS-XR baseline for routers
- EOS baseline for spines/leaves
- JunOS baseline for firewalls
Add tags
starfleetdemomcp-buildlogically-separated
Part 11: Token Savings Analysis — Dispatcher vs. Flat MCP vs. Raw API
Summary
Yes — this Starfleet build had substantial token savings by using the frisian-mcp dispatcher pattern instead of exposing Nautobot as a flat MCP tool surface. Compared with raw REST API, the dispatcher approach uses more tool-schema tokens than zero, but it avoids the agent having to manually reconstruct endpoint paths, authentication patterns, pagination, object-reference semantics, validation retries, and plugin-specific payload schemas.
The key result is that the dispatcher pattern keeps the tool schema surface small and stable while still exposing the full Nautobot model through resource/action dispatchers.
Relevant Tool Surface for This Build
The Starfleet build used the following Nautobot dispatcher groups:
| Module | Approx. Underlying Tools |
|---|---|
| DCIM | 491 |
| IPAM | 139 |
| Tenancy | 50 |
| DNS | 130 |
| BGP | 100 |
| Golden Config | 89 |
| Extras / statuses / roles | 335 |
| Relevant flat-tool surface | 1,334 tools |
The broader visible Nautobot MCP surface contained roughly 1,837 underlying tools across all dispatcher groups.
Estimated Schema Overhead
Using the same methodology as the reference Nautobot MCP demo report:
- Dispatcher schema: approximately 180 tokens per dispatcher
- Flat MCP schema: approximately 300 tokens per underlying tool
| Access Pattern | Approx. Schema Tokens Exposed | Notes |
|---|---|---|
| frisian-mcp dispatcher, relevant modules | ~1,260 | 7 dispatchers × ~180 tokens |
| Flat MCP, relevant modules only | ~400,200 | 1,334 tools × ~300 tokens |
| frisian-mcp dispatcher, full visible Nautobot surface | ~2,880 | 16 dispatchers × ~180 tokens |
| Flat MCP, full visible Nautobot surface | ~551,100 | 1,837 tools × ~300 tokens |
| Raw REST API | ~0 tool schema tokens | No tool schema, but much more agent-side scaffolding |
Savings Calculation
For the modules actually used in the Starfleet build:
400,200 flat-MCP schema tokens
- 1,260 dispatcher schema tokens
= 398,940 schema tokens saved
That is approximately 99.7% less schema overhead than exposing the same relevant Nautobot surface as flat MCP tools.
For the full visible Nautobot surface:
551,100 flat-MCP schema tokens
- 2,880 dispatcher schema tokens
= 548,220 schema tokens saved
That is approximately 99.5% less schema overhead than a flat MCP exposure of the full visible Nautobot surface.
Dispatcher vs. Raw API
Raw REST API has the lowest tool-schema token cost because there is no tool schema at all. That does not make it equivalent for an autonomous agent.
With raw API, the agent would need to know or reconstruct:
- Nautobot endpoint paths such as
/api/dcim/devices/and/api/plugins/dns/dns-zones/ - authentication headers and session handling
- pagination and retry behavior
- exact plugin payload fields such as
dns_view,soa_mname,filename,server, andip_address - object-reference semantics, such as DNS A records requiring an IPAM
IPAddressobject rather than a raw IP string - validation recovery workflows for Nautobot-specific schema errors
The dispatcher approach preserved discoverability and validation feedback while avoiding the extremely large schema footprint of flat MCP.
Practical Result
For this Starfleet build, the dispatcher system was the best operating point:
| Pattern | Strength | Weakness |
|---|---|---|
| Dispatcher MCP | Low schema overhead, discoverable, safe validation feedback | Slight schema overhead remains |
| Flat MCP | Direct one-tool-per-action mapping | Huge schema footprint; context-window pressure |
| Raw API | Minimal schema tokens | Requires significant agent scaffolding and prior API knowledge |
Conclusion: The Starfleet build saved hundreds of thousands of schema tokens versus flat MCP while remaining far more agent-friendly than raw REST API. The dispatcher pattern was not just more efficient; it made iterative, multi-module Nautobot automation practical within a single agent session.
Conclusion
The Starfleet Operations build is a successful medium-scale Nautobot MCP construction session. It demonstrates that frisian-mcp can drive multi-module Nautobot automation across inventory, addressing, DNS, BGP, and compliance-intent objects while adapting to live schema constraints.
The network is not merely a naming exercise: it has a clear topology boundary, tenant model, IPAM hierarchy, DNS zone, BGP control-plane model, and Golden Config baseline anchor. It is ready for a follow-on enrichment pass to add interfaces, cabling, IP-to-interface bindings, complete BGP peering, and executable Golden Config compliance rules.
Final status: Build complete and demo-ready as a logically separated Starfleet-themed Nautobot environment.
Appendix A: Live Object Snapshot
| Category | Count |
|---|---|
| Tenant devices | 11 |
| Tenant racks | 2 |
| Tenant prefixes | 3 |
| Tenant IP addresses | 4 |
| DNS zones | 1 |
| DNS A records | 4 |
| DNS NS records | 1 |
| BGP ASNs | 1 |
| BGP routing instances | 2 |
| BGP address families | 2 |
| Golden Config compliance features | 1 |
Appendix B: Build Naming Conventions
| Prefix | Meaning |
|---|---|
esd01 |
Earth Spacedock site |
ds901 |
Deep Space Nine site |
core-rtr |
Core router |
fw |
Firewall |
spine |
Spine switch |
leaf |
Leaf switch |
svc |
Service node |
starfleet.example |
Starfleet DNS zone |
10.170.0.0/16 |
NCC-1701 themed aggregate |
Report generated from live Nautobot MCP session verification after the Starfleet build was completed.