Content
# 🚀 ACI FastMCP Server
A Model Context Protocol (MCP) server that provides full **CRUD access** to the Cisco ACI API via structured natural language tools. This server exposes all relevant ACI endpoints from a configurable `urls.json` file and dynamically builds tools for read (GET) and write (POST) operations.
Built on the [FastMCP](https://github.com/modelcontext/fastmcp) framework and fully compatible with LangGraph, Claude, ChatGPT, and VS Code Copilot for AI-assisted infrastructure operations.
---
## 🔧 Features
- ✅ Token-based Cisco APIC authentication
- ✅ Full support for `GET` and `POST` (CRUD-ready with optional `PUT`, `DELETE`)
- ✅ Support for **grouped and ungrouped** ACI endpoints
- ✅ Validates and auto-wraps APIC-compliant payloads
- ✅ STDIO-compatible for use in Claude, VS Code, or LangGraph
- ✅ Uses `.env` and structured logging
- 🧠 Auto-discovers tool schema from JSON
---
## 📁 Folder Structure
```bash
ACI_MCP/
├── aci_mcp/
│ ├── main.py # MCP server
│ └── urls.json # Endpoints grouped by category
├── .env # Your secrets (APIC_URL, USERNAME, PASSWORD)
├── README.md # This file
🧪 Environment Variables
Create a .env file in the root of your project:
env
Copy
Edit
APIC_URL=https://sandboxapicdc.cisco.com
USERNAME=admin
PASSWORD=!v3G@!4@Y
URLS_PATH=aci_mcp/urls.json
🚀 How to Run
🧑💻 In VS Code (Copilot / LangGraph):
Use the following JSON entry in your MCP client config:
json
Copy
Edit
"aci": {
"type": "stdio",
"command": "wsl",
"args": [
"env",
"APIC_URL=https://sandboxapicdc.cisco.com",
"USERNAME=admin",
"PASSWORD=!v3G@!4@Y",
"URLS_PATH=/home/johncapobianco/ACI_MCP/aci_mcp/urls.json",
"python3",
"/home/johncapobianco/ACI_MCP/aci_mcp/main.py"
]
}
This launches the MCP server inside WSL, using stdin/stdout for tool discovery and calling.
🤖 In Claude or any A2A-compatible agent:
Claude-compatible assistants can auto-discover tools using this STDIO-based server via Model Context Protocol.
📦 Tools Exposed
Grouped tools (e.g. BGP, L3, L2): one tool per group, with dynamic endpoint selection
Ungrouped tools: each endpoint gets its own:
GET tool (e.g. tenants_get)
POST tool (e.g. tenants_post)
🧠 Example Prompts
How many tenants are in my fabric?
Create a tenant named MCP_Tenant
Get all IP addresses
Show me BGP peers and Route Reflectors
Get the health status of the fabric
Post to /api/node/mo/uni/tn-NewTenant.json with status "created"
📄 Example POST Payload
json
Copy
Edit
{
"fvTenant": {
"attributes": {
"name": "MCP_Tenant",
"rn": "tn-MCP_Tenant",
"status": "created"
}
}
}
Make sure you include "status": "created" and correct rn (e.g., tn-<name>) for APIC to accept the POST.
📘 Extending It
You can easily extend this server:
Add more groups to urls.json
[
{
"Group": "L3",
"Endpoints": [
{
"URL": "/api/node/class/l3extOut.json",
"Name": "Layer 3 Out"
},
{
"URL": "/api/node/class/l3extDomP.json",
"Name": "L3 Domains"
},
{
"URL": "/api/node/class/ipv4Addr.json",
"Name": "IPv4 Addresses"
},
{
"URL": "/api/node/class/ipv4Dom.json",
"Name": "IPv4 Domains"
},
{
"URL": "/api/node/class/ipv4Entity.json",
"Name": "IPv4 Entities"
},
{
"URL": "/api/node/class/ipv4If.json",
"Name": "IPv4 Interfaces"
},
{
"URL": "/api/node/class/ipv4Inst.json",
"Name": "IPv4 Instances"
},
{
"URL": "/api/node/class/ipv4Nexthop.json",
"Name": "IPv4 Next Hop"
},
{
"URL": "/api/node/class/ipv4Route.json",
"Name": "IPv4 Routes"
},
{
"URL": "/api/node/class/isisAdjEp.json",
"Name": "ISIS Adjacency Endpoints"
},
{
"URL": "/api/node/class/isisDTEp.json",
"Name": "ISIS Discovered Tunnel Endpoints"
},
{
"URL": "/api/node/class/isisDom.json",
"Name": "ISIS Domains"
},
{
"URL": "/api/node/class/isisDomLvl.json",
"Name": "ISIS Domains Level"
},
{
"URL": "/api/node/class/isisEntity.json",
"Name": "ISIS Entities"
},
{
"URL": "/api/node/class/isisIf.json",
"Name": "ISIS Interfaces"
},
{
"URL": "/api/node/class/isisIfLvl.json",
"Name": "ISIS Interfaces Level"
},
{
"URL": "/api/node/class/isisInst.json",
"Name": "ISIS Instances"
},
{
"URL": "/api/node/class/isisNexthop.json",
"Name": "ISIS Next Hop"
},
{
"URL": "/api/node/class/isisRoute.json",
"Name": "ISIS Routes"
},
{
"URL": "/api/node/class/l3Ctx.json",
"Name": "L3 Contexts"
},
{
"URL": "/api/node/class/l3EncRtdIf.json",
"Name": "L3 Subinterfaces"
},
{
"URL": "/api/node/class/l3Inst.json",
"Name": "L3 Instances"
},
{
"URL": "/api/node/class/l3LbRtdIf.json",
"Name": "L3 Routed Loopback Interfaces"
},
{
"URL": "/api/node/class/l3RsEncPhysRtdConf.json",
"Name": "L3 Physical Interface Source Relationships"
},
{
"URL": "/api/node/class/l3RtdIf.json",
"Name": "L3 Routed Interfaces"
},
{
"URL": "/api/node/class/l3extInstP.json",
"Name": "L3Out Profiles"
},
{
"URL": "/api/node/class/l3extIp.json",
"Name": "L3Out IP Addresses"
},
{
"URL": "/api/node/class/l3extLIfP.json",
"Name": "L3 Logical Interface Profiles"
},
{
"URL": "/api/node/class/l3extLNodeP.json",
"Name": "L3 Logical Node Profiles"
},
{
"URL": "/api/node/class/l3extMember.json",
"Name": "L3Out Members"
},
{
"URL": "/api/node/class/l3extRsEctx.json",
"Name": "L3 Contexts Source Relationships"
},
{
"URL": "/api/node/class/l3extRsL3DomAtt.json",
"Name": "L3 Domains Source Relationships"
},
{
"URL": "/api/node/class/l3extRsNodeL3OutAtt.json",
"Name": "L3Out Node Source Relationships"
},
{
"URL": "/api/node/class/l3extRsPathL3OutAtt.json",
"Name": "L3Out Path Source Relationships"
},
{
"URL": "/api/node/class/l3extSubnet.json",
"Name": "L3 Subnets"
},
{
"URL": "/api/node/class/acllogDropL3Flow.json",
"Name": "L3Drops"
},
{
"URL": "/api/node/class/acllogDropL3Pkt.json",
"Name": "L3PktDrops"
},
{
"URL": "/api/node/class/ospfAdjEp.json",
"Name": "OSPF Adjacency Endpoints"
},
{
"URL": "/api/node/class/ospfArea.json",
"Name": "OSPF Areas"
},
{
"URL": "/api/node/class/ospfDb.json",
"Name": "OSPF Database"
},
{
"URL": "/api/node/class/ospfDom.json",
"Name": "OSPF Domains"
},
{
"URL": "/api/node/class/ospfEntity.json",
"Name": "OSPF Entities"
},
{
"URL": "/api/node/class/ospfExtP.json",
"Name": "OSPF External Profiles"
},
{
"URL": "/api/node/class/ospfIf.json",
"Name": "OSPF Interfaces"
},
{
"URL": "/api/node/class/ospfInst.json",
"Name": "OSPF Instances"
},
{
"URL": "/api/node/class/ospfRoute.json",
"Name": "OSPF Routes"
},
{
"URL": "/api/node/class/ospfUcNexthop.json",
"Name": "OSPF Unicast Next Hop"
},
{
"URL": "/api/node/class/uribv4Db.json",
"Name": "Unicast Route Database"
},
{
"URL": "/api/node/class/uribv4Dom.json",
"Name": "Unicast Route Domains"
},
{
"URL": "/api/node/class/uribv4Entity.json",
"Name": "Unicast Route Entities"
},
{
"URL": "/api/node/class/uribv4Nexthop.json",
"Name": "Unicast Route Next Hop"
},
{
"URL": "/api/node/class/uribv4Route.json",
"Name": "Unicast Routes"
}
]
},
{
"Group": "L2",
"Endpoints": [
{
"URL": "/api/node/class/l2extOut.json",
"Name": "Layer 2 Out"
},
{
"URL": "/api/node/class/fvnsEncapBlk.json",
"Name": "VLAN Encapsulation Blocks"
},
{
"URL": "/api/node/class/fvnsVlanInstP.json",
"Name": "VLAN Namespace Policies"
},
{
"URL": "/api/node/class/infraRsVlanNs.json",
"Name": "VLAN Namespace Source Relationships"
},
{
"URL": "/api/node/class/l2BD.json",
"Name": "L2 Bridge Domains"
},
{
"URL": "/api/node/class/l2ExtIf.json",
"Name": "L2 External Interfaces"
},
{
"URL": "/api/node/class/l2RsEthIf.json",
"Name": "L2 Interface Source Relationships"
},
{
"URL": "/api/node/class/l2extInstP.json",
"Name": "L2 External Instance Profiles"
},
{
"URL": "/api/node/class/l2extLIfP.json",
"Name": "L2 External Logical Interface Profiles"
},
{
"URL": "/api/node/class/l2extLNodeP.json",
"Name": "L2 External Logical Node Profiles"
},
{
"URL": "/api/node/class/l2extRsEBd.json",
"Name": "L2 EPG Bridge Domain Source Relationships"
},
{
"URL": "/api/node/class/l2extRsPathL2OutAtt.json",
"Name": "L2Out Paths"
},
{
"URL": "/api/node/class/vlanCktEp.json",
"Name": "VLAN Endpoint Group Encapsulation"
}
]
},
{
"Group": "Fabric",
"Endpoints": [
{
"URL": "/api/node/class/fabricNode.json",
"Name": "Fabric Nodes"
},
{
"URL": "/api/node/class/fabricPod.json",
"Name": "Fabric Pods"
},
{
"URL": "/api/node/class/fabricPath.json",
"Name": "Fabric Paths"
},
{
"URL": "/api/node/class/fabricExtPathEpCont.json",
"Name": "Fabric Extended Path Endpoint Containers"
},
{
"URL": "/api/node/class/fabricInst.json",
"Name": "Fabric Instances"
},
{
"URL": "/api/node/class/fabricLink.json",
"Name": "Fabric Links"
},
{
"URL": "/api/node/class/fabricLinkCont.json",
"Name": "Fabric Link Containers"
},
{
"URL": "/api/node/class/fabricLooseLink.json",
"Name": "Fabric Loose Links"
},
{
"URL": "/api/node/class/fabricLooseNode.json",
"Name": "Fabric Loose Nodes"
},
{
"URL": "/api/node/class/fabricPathEp.json",
"Name": "Fabric Path Endpoints"
},
{
"URL": "/api/node/class/fabricPathEpCont.json",
"Name": "Fabric Path Endpoint Containers"
},
{
"URL": "/api/node/class/fabricProtPathEpCont.json",
"Name": "Fabric Protected Path Endpoint Containers"
}
]
},
{
"Group": "Access Policies",
"Endpoints": [
{
"URL": "/api/node/class/infraSpineP.json",
"Name": "Spine Switch Profiles"
},
{
"URL": "/api/node/class/infraAccBndlGrp.json",
"Name": "Access Bundle Groups"
},
{
"URL": "/api/node/class/infraCont.json",
"Name": "Controllers"
},
{
"URL": "/api/node/class/infraFexP.json",
"Name": "FEX Policies"
},
{
"URL": "/api/node/class/infraRsAccBaseGrp.json",
"Name": "Access Policy Group Source Relationships"
},
{
"URL": "/api/node/class/infraRsDomP.json",
"Name": "Domain Profile Source Relationships"
}
]
},
{
"Group": "Contracts",
"Endpoints": [
{
"URL": "/api/node/class/vzBrCP.json",
"Name": "Contracts"
},
{
"URL": "/api/node/class/vzEntry.json",
"Name": "vzEntries"
},
{
"URL": "/api/node/class/vzSubj.json",
"Name": "Contract Subjects"
},
{
"URL": "/api/node/class/vzAny.json",
"Name": "vzAny"
},
{
"URL": "/api/node/class/vzFilter.json",
"Name": "vzFilters"
},
{
"URL": "/api/node/class/vzRsAnyToCons.json",
"Name": "vzAny To Consumers"
},
{
"URL": "/api/node/class/vzRsAnyToProv.json",
"Name": "vzAny To Providers"
},
{
"URL": "/api/node/class/vzRsDenyRule.json",
"Name": "vzDeny Rules"
},
{
"URL": "/api/node/class/vzRsSubjFiltAtt.json",
"Name": "Contract Subjects Filter Attributes"
},
{
"URL": "/api/node/class/vzRtCons.json",
"Name": "Contract Consumers Root"
},
{
"URL": "/api/node/class/vzRtProv.json",
"Name": "Contract Providers Root"
},
{
"URL": "/api/node/class/vzRuleOwner.json",
"Name": "vzRule Owner"
},
{
"URL": "/api/node/class/vzTaboo.json",
"Name": "vzTaboo"
}
]
},
{
"Group": "BGP",
"Endpoints": [
{
"URL": "/api/node/class/bgpRRNodePEp.json",
"Name": "BGP Route Reflectors"
},
{
"URL": "/api/node/class/bgpDom.json",
"Name": "BGP Domains"
},
{
"URL": "/api/node/class/bgpDomAf.json",
"Name": "BGP Domain Address Families"
},
{
"URL": "/api/node/class/bgpEntity.json",
"Name": "BGP Entities"
},
{
"URL": "/api/node/class/bgpInst.json",
"Name": "BGP Instances"
},
{
"URL": "/api/node/class/bgpInstPol.json",
"Name": "BGP Instances Policy"
},
{
"URL": "/api/node/class/bgpPeer.json",
"Name": "BGP Peers"
},
{
"URL": "/api/node/class/bgpPeerAfEntry.json",
"Name": "BGP Peers AF Entries"
},
{
"URL": "/api/node/class/bgpPeerEntry.json",
"Name": "BGP Peers Entries"
},
{
"URL": "/api/node/class/bgpRRP.json",
"Name": "BGP Route Reflector Policies"
}
]
},
{
"Group": "Interfaces",
"Endpoints": [
{
"URL": "/api/node/class/infraPortS.json",
"Name": "Interface Policies"
},
{
"URL": "/api/node/class/pkiFabricNodeSSLCertificate.json",
"Name": "Fabric Node SSL Certificates"
},
{
"URL": "/api/node/class/cnwAggrIf.json",
"Name": "Cluster Aggregate Interfaces"
},
{
"URL": "/api/node/class/cnwPhysIf.json",
"Name": "Cluster Physical Interfaces"
},
{
"URL": "/api/node/class/arpIf.json",
"Name": "ARP Interfaces"
},
{
"URL": "/api/node/class/cnwRsMbrIfs.json",
"Name": ""
},
{
"URL": "/api/node/class/eqptFabP.json",
"Name": "Equipment Fabric Ports"
},
{
"URL": "/api/node/class/eqptLeafP.json",
"Name": "Equipment Leaf Ports"
},
{
"URL": "/api/node/class/eqptLocLed.json",
"Name": "Equipment Port Locator LEDs"
},
{
"URL": "/api/node/class/eqptRsIoPPhysConf.json",
"Name": "Equipment RS IO Port Physical Configs"
},
{
"URL": "/api/node/class/ethpmPhysIf.json",
"Name": "Ethernet Port Manager Physical Interfaces"
},
{
"URL": "/api/node/class/fvRsConsIf.json",
"Name": "Contract Consumer Interfaces"
},
{
"URL": "/api/node/class/infraAccPortGrp.json",
"Name": "Access Port Groups"
},
{
"URL": "/api/node/class/infraAccPortP.json",
"Name": "Access Port Profiles"
},
{
"URL": "/api/node/class/infraHPortS.json",
"Name": "Host Port Selectors"
},
{
"URL": "/api/node/class/infraPortBlk.json",
"Name": "Port Blocks"
},
{
"URL": "/api/node/class/infraSHPortS.json",
"Name": "Spine Host Port Selectors"
},
{
"URL": "/api/node/class/infraSpAccPortP.json",
"Name": "Spine Access Port Profiles"
},
{
"URL": "/api/node/class/lacpIf.json",
"Name": "LACP Interfaces"
},
{
"URL": "/api/node/class/leqptRsLsNodeToIf.json",
"Name": "External Unmanaged Nodes Interfaces"
},
{
"URL": "/api/node/class/mgmtMgmtIf.json",
"Name": "Management Interfaces"
},
{
"URL": "/api/node/class/pcAggrIf.json",
"Name": "Port Channel Aggregate Interfaces"
},
{
"URL": "/api/node/class/pcRsMbrIfs.json",
"Name": "Port Channel Member Interfaces"
},
{
"URL": "/api/node/class/sviIf.json",
"Name": "SVIs"
},
{
"URL": "/api/node/class/tunnelIf.json",
"Name": "Tunnel Interfaces"
},
{
"URL": "/api/node/class/vpcIf.json",
"Name": "VPC Interfaces"
},
{
"URL": "/api/node/class/vzRsIf.json",
"Name": "vzInterface Source Relationships"
}
]
},
{
"Group": "Access Control",
"Endpoints": [
{
"URL": "/api/node/class/actrlEntity.json",
"Name": "Access Control Entities"
},
{
"URL": "/api/node/class/actrlInst.json",
"Name": "Access Control Instances"
},
{
"URL": "/api/node/class/actrlRule.json",
"Name": "Access Control Rules"
},
{
"URL": "/api/node/class/actrlScope.json",
"Name": "Access Control Scopes"
}
]
},
{
"Group": "Compute",
"Endpoints": [
{
"URL": "/api/node/class/compCtrlr.json",
"Name": "Compute Controllers"
},
{
"URL": "/api/node/class/compDom.json",
"Name": "Compute Domains"
},
{
"URL": "/api/node/class/compEpPD.json",
"Name": "Compute Endpoint Policy Descriptions"
},
{
"URL": "/api/node/class/compProv.json",
"Name": "Compute Providers"
},
{
"URL": "/api/node/class/compRsDomP.json",
"Name": "Cluster RS Member Interfaces"
},
{
"URL": "/api/node/class/firmwareCompRunning.json",
"Name": "Firmware Compute Running"
}
]
},
{
"Group": "CDP",
"Endpoints": [
{
"URL": "/api/node/class/cdpAdjEp.json",
"Name": "CDP Adjacency Endpoints"
},
{
"URL": "/api/node/class/cdpEntity.json",
"Name": "CDP Entities"
},
{
"URL": "/api/node/class/cdpIf.json",
"Name": "CDP Interfaces"
},
{
"URL": "/api/node/class/cdpInst.json",
"Name": "CDP Instances"
},
{
"URL": "/api/node/class/cdpIntfAddr.json",
"Name": "CDP Interface Addresses"
},
{
"URL": "/api/node/class/cdpMgmtAddr.json",
"Name": "CDP Management Addresses"
}
]
},
{
"Group": "Equipment",
"Endpoints": [
{
"URL": "/api/node/class/eqptBSlot.json",
"Name": "Equipment Board Slots"
},
{
"URL": "/api/node/class/eqptBoard.json",
"Name": "Equipment Boards"
},
{
"URL": "/api/node/class/eqptCPU.json",
"Name": "Equipment CPUs"
},
{
"URL": "/api/node/class/eqptCh.json",
"Name": "Equipment Chassis"
},
{
"URL": "/api/node/class/eqptDimm.json",
"Name": "Equipment DIMMs"
},
{
"URL": "/api/node/class/eqptExtCh.json",
"Name": "Equipment Fabric Extenders"
},
{
"URL": "/api/node/class/eqptFan.json",
"Name": "Equipment Fans"
},
{
"URL": "/api/node/class/eqptFpga.json",
"Name": "Equipment Field Programmable Gate Arrays"
},
{
"URL": "/api/node/class/eqptFt.json",
"Name": "Equipment Fan Trays"
},
{
"URL": "/api/node/class/eqptFtSlot.json",
"Name": "Equipment Fan Tray Slots"
},
{
"URL": "/api/node/class/eqptIndLed.json",
"Name": "Equipment Indicator LEDs"
},
{
"URL": "/api/node/class/eqptLC.json",
"Name": "Equipment Line Cards"
},
{
"URL": "/api/node/class/eqptLCSlot.json",
"Name": "Equipment Line Card Slots"
},
{
"URL": "/api/node/class/eqptPsu.json",
"Name": "Equipment Power Supplies"
},
{
"URL": "/api/node/class/eqptPsuSlot.json",
"Name": "Equipment Power Supply Slots"
},
{
"URL": "/api/node/class/eqptSensor.json",
"Name": "Equipment Sensors"
},
{
"URL": "/api/node/class/eqptSpCmnBlk.json",
"Name": "Equipment SP Common Blocks"
},
{
"URL": "/api/node/class/eqptSpromLc.json",
"Name": "Equipment SPROM LCs"
},
{
"URL": "/api/node/class/eqptSpromPsu.json",
"Name": "Equipment SPROM Power Supply"
},
{
"URL": "/api/node/class/eqptSpromPsuBlk.json",
"Name": "Equipment SPROM Power Supply Blocks"
},
{
"URL": "/api/node/class/eqptSpromSup.json",
"Name": "Equipment SPROM Supervisors"
},
{
"URL": "/api/node/class/eqptStorage.json",
"Name": "Equipment Storage"
},
{
"URL": "/api/node/class/eqptSupC.json",
"Name": "Equipment Supervisors"
},
{
"URL": "/api/node/class/eqptSupCSlot.json",
"Name": "Equipment Supervisor Slots"
},
{
"URL": "/api/node/class/leqptLooseNode.json",
"Name": "External Unmanaged Nodes"
}
]
},
{
"Group": "LLDP",
"Endpoints": [
{
"URL": "/api/node/class/lldpAdjEp.json",
"Name": "LLDP Adjacency Endpoints"
},
{
"URL": "/api/node/class/lldpEntity.json",
"Name": "LLDP Entities"
},
{
"URL": "/api/node/class/lldpIf.json",
"Name": "LLDP Interfaces"
},
{
"URL": "/api/node/class/lldpInst.json",
"Name": "LLDP Instances"
}
]
},
{
"Group": "VPC",
"Endpoints": [
{
"URL": "/api/node/class/vpcDom.json",
"Name": "VPC Domains"
},
{
"URL": "/api/node/class/vpcEntity.json",
"Name": "VPC Entities"
},
{
"URL": "/api/node/class/vpcInst.json",
"Name": "VPC Instances"
},
{
"URL": "/api/node/class/vpcRsVpcConf.json",
"Name": "VPC Configurations"
}
]
},
{
"URL": "/api/node/class/fvTenant.json",
"Name": "Tenants"
},
{
"URL": "/api/node/mo/uni.json",
"Name": "Create Tenant at Root"
},
{
"URL": "/api/node/class/fvAEPg.json",
"Name": "Endpoint Groups"
},
{
"URL": "/api/node/class/fvBD.json",
"Name": "Bridge Domains"
},
{
"URL": "/api/node/class/fvCtx.json",
"Name": "Contexts"
},
{
"URL": "/api/node/class/fvAp.json",
"Name": "Application Profiles"
},
{
"URL": "/api/node/class/topSystem.json",
"Name": ""
},
{
"URL": "/api/node/class/fvSubnet.json",
"Name": ""
},
{
"URL": "/api/node/class/fvCEp.json",
"Name": "Subnets"
},
{
"URL": "/api/node/class/infraNodeP.json",
"Name": "Leaf Switch Profiles"
},
{
"URL": "/api/node/class/infraAttEntityP.json",
"Name": "Attachable Access Entity Profiles"
},
{
"URL": "/api/node/class/physDomP.json",
"Name": "Physical Domains"
},
{
"URL": "/api/node/class/qosClass.json",
"Name": "QOS Classes"
},
{
"URL": "/api/node/class/faultSummary.json",
"Name": "Fault Summary"
},
{
"URL": "/api/node/class/fvIp.json",
"Name": "IP Addresses"
},
{
"URL": "/api/node/class/licenseEntitlement.json",
"Name": "License Entitlements"
},
{
"URL": "/api/node/class/infraProfile.json",
"Name": "Interface Profiles"
},
{
"URL": "/api/node/class/aaaUser.json",
"Name": "Users"
},
{
"URL": "/api/node/class/aaaDomain.json",
"Name": "Security Domains"
},
{
"URL": "/api/node/mo/topology/health.json",
"Name": "Health"
},
{
"URL": "/api/node/class/topSystem.json?query-target=subtree&target-subtree-class=firmwareCtrlrRunning",
"Name": "Controller Firmware Running"
},
{
"URL": "/api/node/mo/topology/pod-1/node-1/av.json?query-target=children&target-subtree-class=infraWiNode",
"Name": "Wired Nodes (InfraWiredNodes)"
},
{
"URL": "/api/node/class/vnsMDev.json",
"Name": "Device Packages"
},
{
"URL": "/api/node/class/arpAdjEp.json",
"Name": "ARP Adjacency Endpoints"
},
{
"URL": "/api/node/class/arpDb.json",
"Name": "ARP Database"
},
{
"URL": "/api/node/class/arpDom.json",
"Name": "ARP Domain"
},
{
"URL": "/api/node/class/arpEntity.json",
"Name": "ARP Entity"
},
{
"URL": "/api/node/class/arpInst.json",
"Name": "ARP Instances"
},
{
"URL": "/api/node/class/fcEntity.json",
"Name": "Fibre Channel Entities"
},
{
"URL": "/api/node/class/firmwareCardRunning.json",
"Name": "Firmware Card Running"
},
{
"URL": "/api/node/class/firmwareRunning.json",
"Name": "Firmware Running"
},
{
"URL": "/api/node/class/fvEpPCont.json",
"Name": "Endpoint Profile Containers"
},
{
"URL": "/api/node/class/fvLocale.json",
"Name": "Locales"
},
{
"URL": "/api/node/class/fvRsBDToOut.json",
"Name": "Bridge Domains To Outside"
},
{
"URL": "/api/node/class/fvRsBd.json",
"Name": "EPG Bridge Domain Links"
},
{
"URL": "/api/node/class/fvRsCons.json",
"Name": "Contract Consumers"
},
{
"URL": "/api/node/class/fvRsCtx.json",
"Name": "Context Source Relationships"
},
{
"URL": "/api/node/class/fvRsDomAtt.json",
"Name": "Domain Attachments"
},
{
"URL": "/api/node/class/fvRsPathAtt.json",
"Name": "Path Attachments"
},
{
"URL": "/api/node/class/fvRsProv.json",
"Name": "Contract Providers"
},
{
"URL": "/api/node/class/fvRtBd.json",
"Name": "Bridge Domains Target Relationships"
},
{
"URL": "/api/node/class/fvRtCtx.json",
"Name": "Contexts Target Relationships"
},
{
"URL": "/api/node/class/infraFuncP.json",
"Name": "Function Policies"
},
{
"URL": "/api/node/class/infraRsAttEntP.json",
"Name": "Attachable Access Entity Profiles Source Relationships"
},
{
"URL": "/api/node/class/infraRsSpAccGrp.json",
"Name": "Spine Access Policy Groups"
},
{
"URL": "/api/node/class/infraWiNode.json",
"Name": "Wired Nodes (Topology)"
},
{
"URL": "/api/node/class/ipNexthopP.json",
"Name": "Static Route Next Hop Policies"
},
{
"URL": "/api/node/class/ipRouteP.json",
"Name": "Route Policies"
},
{
"URL": "/api/node/class/lacpEntity.json",
"Name": "LACP Entities"
},
{
"URL": "/api/node/class/lacpInst.json",
"Name": "LACP Instances"
},
{
"URL": "/api/node/class/vmmCtrlrP.json",
"Name": "VMM Controller Profiles"
},
{
"URL": "/api/node/class/vmmDomP.json",
"Name": "VMM Domain Profiles"
},
{
"URL": "/api/node/class/vmmProvP.json",
"Name": "VMM Provider Profiles"
},
{
"URL": "/api/node/class/vmmUsrAccP.json",
"Name": "VMM User Profiles"
}
]
You Might Also Like
Ollama
Ollama enables easy access to large language models on various platforms.

n8n
n8n is a secure workflow automation platform for technical teams with 400+...
OpenWebUI
Open WebUI is an extensible web interface for customizable applications.

Dify
Dify is a platform for AI workflows, enabling file uploads and self-hosting.

Zed
Zed is a high-performance multiplayer code editor from the creators of Atom.
MarkItDown MCP
markitdown-mcp is a lightweight MCP server for converting various URIs to Markdown.