list_tenantsLABSCO SUMMARY
The delete tools are loaded by default — narrow the surface first.
This exposes the destructive half of the APIC object model, and the default tool mode already includes it. Two levers exist for that, and they are worth setting before the first connection: ACI_TOOL_MODE selects between the core set of 35 tools and the full 50+, and aci-mcp-config.json takes a whitelist so enabledTools can be cut to the reads and the one or two writes you actually want. ACI_TENANT_FOCUS narrows the blast radius further by pinning work to a single tenant.
What it is
An MCP server for configuring and managing Cisco ACI fabrics. It talks to the APIC controller's REST API and exposes the object model as tools, so the same objects you would click through in the APIC GUI — tenants down to filters — are addressable in a conversation.
What you get
- Tenants, with the full lifecycle rather than reads alone —
list_tenants,get_tenant,create_tenant,update_tenant,delete_tenant - Application profiles inside a tenant, same five operations —
list_application_profiles,get_application_profile,create_application_profile,update_application_profile,delete_application_profile - Endpoint groups with statistics alongside the lifecycle calls —
list_endpoint_groups,get_endpoint_group,create_endpoint_group,update_endpoint_group,delete_endpoint_group,get_endpoint_group_stats - Layer 2 bridge domains and VRFs —
list_bridge_domains,get_bridge_domain,create_bridge_domain,update_bridge_domain,delete_bridge_domain,list_vrfs,get_vrf,create_vrf,update_vrf,delete_vrf - Security policy as contracts and filters —
list_contracts,get_contract,create_contract,update_contract,delete_contract,list_filters,create_filter,delete_filter - Health and monitoring reads: overall fabric health, faults with a summary by severity, node inventory and per-node health, interfaces with their statistics, and APIC system information —
get_fabric_health,list_faults,get_fault_summary,list_nodes,get_node_health,list_interfaces,get_interface_stats,get_system_info
Requirements
Access to a Cisco APIC controller and credentials for it. The controller URL goes in ACI_APIC_URL; from there you choose username and password (ACI_USERNAME, ACI_PASSWORD) or X.509 certificate authentication (ACI_CERT_NAME plus ACI_PRIVATE_KEY_PATH), which the README recommends for production. Node.js 18+ and npm; the package is aci-mcp-server (1.0.0 in package.json), built with npm run build and started with npm start.
Setup effort
Build from source — git clone https://github.com/jim-coyne/ACI_MCP
USE CASES
Triaging a fabric that is reporting problems
Read overall fabric health, pull the fault summary by severity to see what class of problem it is, then drill into the affected nodes and their interface statistics.
Standing up a new tenant environment
Create the tenant, its VRF and bridge domains, then the application profile and endpoint groups underneath it, in the order the object model requires.
Auditing what an EPG is allowed to talk to
List the contracts and their filters, open the ones attached to the endpoint group, and read the EPG statistics to see what is actually flowing.
Answering an inventory question without opening the GUI
List fabric nodes and interfaces and read APIC system information, in the same conversation where the question came up.
42 tools
Listed in project docs. Your client may show a different list.
get_tenantcreate_tenantupdate_tenantdelete_tenantlist_application_profilesget_application_profilecreate_application_profileupdate_application_profiledelete_application_profilelist_endpoint_groupsget_endpoint_groupcreate_endpoint_groupupdate_endpoint_groupdelete_endpoint_groupget_endpoint_group_statslist_bridge_domainsget_bridge_domaincreate_bridge_domainupdate_bridge_domaindelete_bridge_domainlist_vrfsget_vrfcreate_vrfupdate_vrfdelete_vrflist_contractsget_contractcreate_contractupdate_contractdelete_contractlist_filterscreate_filterdelete_filterget_fabric_healthlist_faultsget_fault_summarylist_nodesget_node_healthlist_interfacesget_interface_statsget_system_infoBEFORE YOU INSTALL
What to know first
Tools you get
42 tools named in the project's documentation. ACI_TOOL_MODE defaults to core, described as 35 essential tools, and all is described as 50-plus. A toolSelectionMode whitelist in aci-mcp-config.json or ACI_TENANT_FOCUS narrows further; twenty tools create, update or delete fabric objects.
Requires
- Node.js 18+
- ACI_APIC_URL in your environment
- ACI_USERNAME in your environment
- One of: ACI_PASSWORD, or ACI_CERT_NAME with ACI_PRIVATE_KEY_PATH for certificate authentication
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/jim-coyne/ACI_MCP
cd ACI_MCP
npm install
cp .env.example .env
npm run buildMCP Clients
Any MCP client
{
"mcpServers": {
"aci-mcp-server": {
"command": "node",
"args": [
"<YOUR_PATH_TO_ACI_MCP>/build/index.js"
],
"env": {
"ACI_APIC_URL": "https://<YOUR_APIC>.domain.com",
"ACI_USERNAME": "admin",
"ACI_PASSWORD": "<YOUR_ACI_PASSWORD>"
}
}
}
}