Cisco ACI MCP Server

by jim-coyne

230 downloads Not rated yet
GitHub

About

A comprehensive MCP server for configuring and managing Cisco ACI (Application Centric Infrastructure) fabrics through the APIC REST API.

Explore

- 35+ tools for complete ACI fabric management
- Tenant lifecycle management (create, read, update, delete)
- Application profile and endpoint group (EPG) management
- Bridge domain and VRF configuration
- Contract and filter definition for security policies
- Fabric health monitoring, fault listing, and node/interfaces management

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Cisco ACI MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- Node.js 18+ and npm
- Access to a Cisco APIC controller
- Valid APIC credentials (username/password or certificate)


   Option C: Certificate Authentication
   
bash 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"

3. Build the Server:
   
bash npm run build

4. Test Connection:
   
bash npm start

The server supports two authentication methods:

1. Username/Password: Standard APIC login
2. Certificate: X.509 certificate-based authentication (recommended for production)

Configure which tools are available using aci-mcp-config.json:

{
  "serverConfig": {
    "name": "aci",
    "toolSelectionMode": "whitelist",
    "enableAllTools": false,
    "tenantFocus": "production"
  },
  "toolConfiguration": {
    "enabledTools": ["list_tenants", "get_fabric_health", ...],
    "disabledTools": []
  }
}

Tool Modes:
- core: Essential tools (35 tools) - Default
- all: All available tools (50+ tools)

Environment Variable Configuration:

export ACI_TOOL_MODE=core          # or 'all'
export ACI_TENANT_FOCUS=production # Focus on specific tenant

core

Essential tools (35 tools) - Default

all

All available tools (50+ tools)

list_tenants

List all tenants

get_tenant

Get specific tenant details

create_tenant

Create new tenant

update_tenant

Update tenant configuration

delete_tenant

Delete tenant

list_application_profiles

List application profiles

get_application_profile

Get specific application profile

create_application_profile

Create new application profile

update_application_profile

Update application profile

delete_application_profile

Delete application profile

list_endpoint_groups

List endpoint groups

get_endpoint_group

Get specific EPG details

create_endpoint_group

Create new EPG

update_endpoint_group

Update EPG configuration

delete_endpoint_group

Delete EPG

get_endpoint_group_stats

Get EPG statistics

list_bridge_domains

List bridge domains

get_bridge_domain

Get specific bridge domain

create_bridge_domain

Create new bridge domain

update_bridge_domain

Update bridge domain

delete_bridge_domain

Delete bridge domain

list_vrfs

List VRFs

get_vrf

Get specific VRF details

create_vrf

Create new VRF

update_vrf

Update VRF configuration

delete_vrf

Delete VRF

list_contracts

List contracts

get_contract

Get contract details

create_contract

Create new contract

update_contract

Update contract

delete_contract

Delete contract

list_filters

List filters

create_filter

Create new filter

delete_filter

Delete filter

get_fabric_health

Get overall fabric health

list_faults

List fabric faults

get_fault_summary

Get fault summary by severity

list_nodes

List fabric nodes

get_node_health

Get node health status

list_interfaces

List fabric interfaces

get_interface_stats

Get interface statistics

get_system_info

Get APIC system information

Configure which tools are available using aci-mcp-config.json:

{
  "serverConfig": {
    "name": "aci",
    "toolSelectionMode": "whitelist",
    "enableAllTools": false,
    "tenantFocus": "production"
  },
  "toolConfiguration": {
    "enabledTools": ["list_tenants", "get_fabric_health", ...],
    "disabledTools": []
  }
}

Tool Modes:
- core: Essential tools (35 tools) - Default
- all: All available tools (50+ tools)

Environment Variable Configuration:

export ACI_TOOL_MODE=core          # or 'all'
export ACI_TENANT_FOCUS=production # Focus on specific tenant

- list_tenants - List all tenants
- get_tenant - Get specific tenant details
- create_tenant - Create new tenant
- update_tenant - Update tenant configuration
- delete_tenant - Delete tenant

- list_application_profiles - List application profiles
- get_application_profile - Get specific application profile
- create_application_profile - Create new application profile
- update_application_profile - Update application profile
- delete_application_profile - Delete application profile

- list_endpoint_groups - List endpoint groups
- get_endpoint_group - Get specific EPG details
- create_endpoint_group - Create new EPG
- update_endpoint_group - Update EPG configuration
- delete_endpoint_group - Delete EPG
- get_endpoint_group_stats - Get EPG statistics

- list_bridge_domains - List bridge domains
- get_bridge_domain - Get specific bridge domain
- create_bridge_domain - Create new bridge domain
- update_bridge_domain - Update bridge domain
- delete_bridge_domain - Delete bridge domain

- list_vrfs - List VRFs
- get_vrf - Get specific VRF details
- create_vrf - Create new VRF
- update_vrf - Update VRF configuration
- delete_vrf - Delete VRF

- list_contracts - List contracts
- get_contract - Get contract details
- create_contract - Create new contract
- update_contract - Update contract
- delete_contract - Delete contract
- list_filters - List filters
- create_filter - Create new filter
- delete_filter - Delete filter

- get_fabric_health - Get overall fabric health
- list_faults - List fabric faults
- get_fault_summary - Get fault summary by severity
- list_nodes - List fabric nodes
- get_node_health - Get node health status
- list_interfaces - List fabric interfaces
- get_interface_stats - Get interface statistics
- get_system_info - Get APIC system information

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "cisco aci mcp server": {
            "aci": {
                "command": "node",
                "args": [
                    "dist/index.js"
                ],
                "cwd": "/path/to/aci-mcp-server"
            }
        }
    }
}

McpServers

{
    "aci": {
        "command": "node",
        "args": [
            "dist/index.js"
        ],
        "cwd": "/path/to/aci-mcp-server"
    }
}

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

1. Clone and Install:

   cd aci-mcp-server
npm install

2. Configure 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 settings

Option 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"

3. Build the Server:

   npm run build

4. Test Connection:

   npm start
# Should connect to APIC and display available tools

Configuration

Authentication Methods

The server supports two authentication methods:

1. Username/Password: Standard APIC login
2. Certificate: X.509 certificate-based authentication (recommended for production)

Tool Configuration

Configure which tools are available using aci-mcp-config.json:

{
  "serverConfig": {
    "name": "aci",
    "toolSelectionMode": "whitelist",
    "enableAllTools": false,
    "tenantFocus": "production"
  },
  "toolConfiguration": {
    "enabledTools": ["list_tenants", "get_fabric_health", ...],
    "disabledTools": []
  }
}

Tool Modes:
- core: Essential tools (35 tools) - Default
- all: All available tools (50+ tools)

Environment Variable Configuration:

export ACI_TOOL_MODE=core          # or 'all'
export ACI_TENANT_FOCUS=production # Focus on specific tenant

Available Tools

Tenant Management (5 tools)

- list_tenants - List all tenants - get_tenant - Get specific tenant details - create_tenant - Create new tenant - update_tenant - Update tenant configuration - delete_tenant - Delete tenant

Application Profile Management (5 tools)

- list_application_profiles - List application profiles - get_application_profile - Get specific application profile - create_application_profile - Create new application profile - update_application_profile - Update application profile - delete_application_profile - Delete application profile

Endpoint Group Management (6 tools)

- list_endpoint_groups - List endpoint groups - get_endpoint_group - Get specific EPG details - create_endpoint_group - Create new EPG - update_endpoint_group - Update EPG configuration - delete_endpoint_group - Delete EPG - get_endpoint_group_stats - Get EPG statistics

Bridge Domain Management (5 tools)

- list_bridge_domains - List bridge domains - get_bridge_domain - Get specific bridge domain - create_bridge_domain - Create new bridge domain - update_bridge_domain - Update bridge domain - delete_bridge_domain - Delete bridge domain

VRF Management (5 tools)

- list_vrfs - List VRFs - get_vrf - Get specific VRF details - create_vrf - Create new VRF - update_vrf - Update VRF configuration - delete_vrf - Delete VRF

Contract Management (8 tools)

- list_contracts - List contracts - get_contract - Get contract details - create_contract - Create new contract - update_contract - Update contract - delete_contract - Delete contract - list_filters - List filters - create_filter - Create new filter - delete_filter - Delete filter

Health & Monitoring (8 tools)

- get_fabric_health - Get overall fabric health - list_faults - List fabric faults - get_fault_summary - Get fault summary by severity - list_nodes - List fabric nodes - get_node_health - Get node health status - list_interfaces - List fabric interfaces - get_interface_stats - Get interface statistics - get_system_info - Get APIC system information
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.