Cisco Catalyst Center MCP Server

Network management through Cisco Catalyst Center

README.md

Cisco Catalyst Center MCP Server

A Model Context Protocol (MCP) server for Cisco Catalyst Center, providing network management capabilities through structured tools.

Features

This MCP server provides focused, high-value tools for Cisco Catalyst Center:

Network Monitoring

  • get_client_counts - Get counts of wired and wireless clients connected to the network
  • get_network_devices - Query network device inventory with flexible filtering
  • get_network_health - Get overall network health by device category
  • get_site_health - Get health information for sites (areas and buildings)
  • get_client_detail - Get detailed information about a specific client by MAC address

Issues & Assurance

  • get_issues - Retrieve network issues with filtering by priority, status, and more

Compliance & Lifecycle Management

  • get_compliance_detail - Get detailed compliance status for devices (EOX, IMAGE, PSIRT, etc.)
  • get_compliance_count - Get aggregate count of devices by compliance criteria
  • get_eox_summary - Get network-wide End-of-Life/End-of-Support summary
  • get_eox_devices - Get EoX status for all devices in the network
  • get_eox_device_details - Get detailed EoX bulletins for a specific device

Prerequisites

  • Python 3.10 or higher
  • Cisco Catalyst Center instance (v2.3.7.9 or compatible)
  • Valid Catalyst Center credentials with API access

Installation

Using uv (Recommended)

  1. Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clone this repository or download the source code

  2. Initialize and install dependencies:

cd catalyst-center-mcp
uv sync
  1. Create a .env file from the example:
cp .env.example .env
  1. Edit .env with your Catalyst Center credentials:
CATALYST_CENTER_URL=https://your-catalyst-center.example.com
CATALYST_CENTER_USERNAME=your_username
CATALYST_CENTER_PASSWORD=your_password
CATALYST_CENTER_VERIFY_SSL=true

Usage

Running the MCP Server

Start the server in development mode:

uv run mcp dev src/server.py

Or run directly:

uv run src/server.py

The server will start and be available for MCP clients to connect to via stdio transport.

Using with Claude Desktop

Add this server to your Claude Desktop configuration file:

Option 1: Using environment variables directly

{
  "mcpServers": {
    "catalyst-center": {
      "command": "uv",
      "args": ["run", "src/server.py"],
      "cwd": "/path/to/catalyst-center-mcp",
      "env": {
        "CATALYST_CENTER_URL": "https://your-catalyst-center.example.com",
        "CATALYST_CENTER_USERNAME": "your_username",
        "CATALYST_CENTER_PASSWORD": "your_password",
        "CATALYST_CENTER_VERIFY_SSL": "true"
      }
    }
  }
}

Option 2: Using .env file (recommended)

Create a .env file in the project directory with your credentials, then:

{
  "mcpServers": {
    "catalyst-center": {
      "command": "uv",
      "args": ["run", "src/server.py"],
      "cwd": "/path/to/catalyst-center-mcp"
    }
  }
}

Tool Examples

Get Client Counts

# Get current wired and wireless client counts
result = await get_client_counts()
# Returns: {"wired_count": 150, "wireless_count": 75, "total_count": 225, "timestamp": "current"}

Get Network Devices

# Get all devices
devices = await get_network_devices()

# Filter by hostname
devices = await get_network_devices(hostname="switch.*")

# Filter by device family
devices = await get_network_devices(device_family="Switches and Hubs", limit=50)

Get Network Health

# Get current network health by device category
health = await get_network_health()
# Returns health scores for Access, Distribution, Core, Router, and Wireless devices

Get Issues

# Get all active P1 issues
issues = await get_issues(priority="P1", issue_status="ACTIVE")

# Get issues for a specific site
issues = await get_issues(site_id="site-uuid-here")

# Get AI-driven issues
issues = await get_issues(ai_driven="YES")

Get Site Health

# Get health for all sites
sites = await get_site_health()

# Get only building sites
sites = await get_site_health(site_type="BUILDING")

Get Client Detail

# Get detailed info for a specific client
client = await get_client_detail(mac_address="00:11:22:33:44:55")

Get Compliance Detail

# Get all non-compliant devices
compliance = await get_compliance_detail(compliance_status="NON_COMPLIANT")

# Get EOX compliance status for specific devices
compliance = await get_compliance_detail(
    compliance_type="EOX",
    device_uuid="device-uuid-1,device-uuid-2"
)

# Get PSIRT (security advisory) compliance
compliance = await get_compliance_detail(compliance_type="PSIRT", limit=100)

Get Compliance Count

# Count all non-compliant devices
count =

Tools 11

get_client_countsGet counts of wired and wireless clients connected to the network
get_network_devicesQuery network device inventory with flexible filtering
get_network_healthGet overall network health by device category
get_site_healthGet health information for sites
get_client_detailGet detailed information about a specific client by MAC address
get_issuesRetrieve network issues with filtering by priority, status, and more
get_compliance_detailGet detailed compliance status for devices
get_compliance_countGet aggregate count of devices by compliance criteria
get_eox_summaryGet network-wide End-of-Life/End-of-Support summary
get_eox_devicesGet EoX status for all devices in the network
get_eox_device_detailsGet detailed EoX bulletins for a specific device

Environment Variables

CATALYST_CENTER_URLrequiredThe URL of your Cisco Catalyst Center instance
CATALYST_CENTER_USERNAMErequiredUsername for API access
CATALYST_CENTER_PASSWORDrequiredPassword for API access
CATALYST_CENTER_VERIFY_SSLWhether to verify SSL certificates

Try it

How many wired and wireless clients are currently connected to the network?
List all network devices in the 'Switches and Hubs' family.
Show me all active P1 network issues.
What is the current health status of our building sites?
Check the compliance status for devices that are marked as non-compliant.

Frequently Asked Questions

What are the key features of Cisco Catalyst Center?

Real-time network monitoring and client tracking. Comprehensive network health reporting by device category. Automated issue retrieval with priority and AI-driven filtering. Lifecycle management including EoX summaries and device details. Detailed compliance status tracking for PSIRT and image versions.

What can I use Cisco Catalyst Center for?

Network administrators monitoring real-time client connectivity and device health.. IT operations teams identifying and prioritizing active network issues.. Compliance officers auditing network hardware for End-of-Life or security advisory status.. Site managers reviewing health metrics for specific building locations..

How do I install Cisco Catalyst Center?

Install Cisco Catalyst Center by running: uv sync

What MCP clients work with Cisco Catalyst Center?

Cisco Catalyst Center works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Cisco Catalyst Center docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare