Provides comprehensive management of Cisco ACI (Application Centric Infrastructure) fabrics through the APIC REST API, including tenant management, endpoint groups, bridge domains, VRFs, contracts, and fabric health monitoring.
ACI Model Context Protocol (MCP) Server
A comprehensive MCP server for configuring and managing Cisco ACI (Application Centric Infrastructure) fabrics through the APIC REST API.
Overview
This MCP server provides 35+ tools for complete ACI fabric management, including:
Tenant Management: Create, list, get, update, and delete tenants
Application Profiles: Manage application profiles within tenants
Endpoint Groups (EPGs): Configure and manage endpoint groups
Bridge Domains: Create and manage Layer 2 domains
VRFs: Manage Virtual Routing and Forwarding instances
Contracts: Define and manage security policies
Health Monitoring: Monitor fabric health and faults
Node Management: Manage fabric nodes and interfaces
Installation
Prerequisites
Node.js 18+ and npm
Access to a Cisco APIC controller
Valid APIC credentials (username/password or certificate)
Setup
Clone and Install:
cd aci-mcp-server npm installConfigure Authentication:
Option A: Environment Variables
cp .env.example .env # Edit .env with your APIC details export ACI_APIC_URL="https://your-apic.domain.com" export ACI_USERNAME="admin" export ACI_PASSWORD="your_password"Option B: Configuration Files
cp aci-config.json.example aci-config.json # Edit aci-config.json with your settingsOption C: Certificate Authentication
export ACI_APIC_URL="https://your-apic.domain.com" export ACI_USERNAME="admin" export ACI_CERT_NAME="your-cert-name" export ACI_PRIVATE_KEY_PATH="/path/to/private.key"Build the Server:
npm run buildTest Connection:
npm start # Should connect to APIC and display available tools
Configuration
Authentication Methods
The server supports two authentication methods:
Username/Password: Standard APIC login
Certificate: X.509 certificate-based authentication (recommended for production)
Tool Configuration
Configure which tools are available using aci-mcp-config.json:
Tool Modes:
core: Essential tools (35 tools) - Defaultall: All available tools (50+ tools)
Environment Variable Configuration:
Available Tools
Tenant Management (5 tools)
list_tenants- List all tenantsget_tenant- Get specific tenant detailscreate_tenant- Create new tenantupdate_tenant- Update tenant configurationdelete_tenant- Delete tenant
Application Profile Management (5 tools)
list_application_profiles- List application profilesget_application_profile- Get specific application profilecreate_application_profile- Create new application profileupdate_application_profile- Update application profiledelete_application_profile- Delete application profile
Endpoint Group Management (6 tools)
list_endpoint_groups- List endpoint groupsget_endpoint_group- Get specific EPG detailscreate_endpoint_group- Create new EPGupdate_endpoint_group- Update EPG configurationdelete_endpoint_group- Delete EPGget_endpoint_group_stats- Get EPG statistics
Bridge Domain Management (5 tools)
list_bridge_domains- List bridge domainsget_bridge_domain- Get specific bridge domaincreate_bridge_domain- Create new bridge domainupdate_bridge_domain- Update bridge domaindelete_bridge_domain- Delete bridge domain
VRF Management (5 tools)
list_vrfs- List VRFsget_vrf- Get specific VRF detailscreate_vrf- Create new VRFupdate_vrf- Update VRF configurationdelete_vrf- Delete VRF
Contract Management (8 tools)
list_contracts- List contractsget_contract- Get contract detailscreate_contract- Create new contractupdate_contract- Update contractdelete_contract- Delete contractlist_filters- List filterscreate_filter- Create new filterdelete_filter- Delete filter
Health & Monitoring (8 tools)
get_fabric_health- Get overall fabric healthlist_faults- List fabric faultsget_fault_summary- Get fault summary by severitylist_nodes- List fabric nodesget_node_health- Get node health statuslist_interfaces- List fabric interfacesget_interface_stats- Get interface statisticsget_system_info- Get APIC system information
This server cannot be installed