Skip to main content

Catalyst Center MCP Server

A Python-based MCP (Model Context Protocol) server for Cisco Catalyst Center (formerly DNA Center) that provides tools for device management, client information retrieval, and network monitoring.

Features

  • Secure authentication with Cisco Catalyst Center.
  • Device discovery, listing, and detailed information retrieval.
  • Site information retrieval, including hierarchy and details.
  • Network interface information for specific devices.
  • Client listing with comprehensive filtering options.
  • Detailed client information retrieval by MAC address.
  • Client count retrieval with filtering.
  • Helper tool for API-compatible time range conversion.
  • Implemented using FastMCP for a robust and extensible MCP server.
  • Configuration via .env file for easy setup.

Installation

  1. Clone the repository:
git clone https://github.com/richbibby/catalyst-center-mcp.git
cd catalyst-center-mcp
  1. Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. Update the .env file with your Catalyst Center credentials:
CCC_HOST=your-catalyst-center-host
CCC_USER=your-username
CCC_PWD=your-password

Usage With Claude Desktop Client

  1. Configure Claude Desktop to use this MCP server:
  • Open Claude Desktop
  • Go to Settings > Developer > Edit Config
  • Add the following configuration (adjust paths as needed, see claude_desktop_config.json for an example structure):
{
  "mcpServers": {
    "catalyst-center-mcp": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/path/to/your/catalyst-center-mcp/catalyst-center-mcp.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}
  • Replace /path/to/your/... with the absolute paths relevant to your local environment.
  • The PYTHONUNBUFFERED environment variable is recommended for Stdio transport.
  1. Restart Claude Desktop

  2. Interact with Claude Desktop:

  • Ask Claude to perform actions like "Show me the devices in my Cisco Catalyst Center"
  • Claude will use the MCP server to authenticate and fetch device information

Claude Desktop with Catalyst Center MCP

Claude Desktop with Catalyst Center MCP

Example Questions

Here are some example questions you can ask Claude to interact with your Catalyst Center:

Device Information

  • "Show me all devices in my network"
  • "List all switches in my network"
  • "What devices are currently unreachable?"
  • "Show me devices with hostname containing 'switch'"
  • "What's the status of device with IP 10.1.1.1?"

Interface Information

  • "Show me all interfaces for device X"
  • "What interfaces are down on device Y?"
  • "List all Gigabit interfaces on device Z"
  • "Show me interfaces with IP addresses"
  • "What's the status of interface GigabitEthernet1/0/1 on device X?"

Site Information

  • "Show me all sites in my network"
  • "What devices are in site X?"
  • "List all buildings in my network"
  • "Show me the site hierarchy"
  • "What's the address of site Y?"

Client Information

  • "How many clients are currently connected?"
  • "List all wireless clients."
  • "Show me clients connected to SSID 'Corporate-WiFi'."
  • "What are the details for client with MAC address aa:bb:cc:dd:ee:ff?"
  • "Are there any clients with an OS type of 'macOS'?"
  • "List clients active in the last hour."

Combined Queries

  • "Show me all devices in site X and their interfaces"
  • "List all down interfaces across all devices"
  • "What devices in building Y have unreachable interfaces?"
  • "Show me the network topology for site Z"
  • "What's the status of all devices in area A?"

Available Tools

  • fetch_devices: Fetches a list of devices from Cisco Catalyst Center, with filtering options.
  • fetch_sites: Fetches a list of sites from Cisco Catalyst Center, returning a compact JSON structure.
  • fetch_interfaces: Fetches interface information for a specific device ID.
  • get_api_compatible_time_range: Converts natural language time inputs (e.g., "last 24 hours", "yesterday") or specific timestamps into API-compatible epoch millisecond start and end times.
  • get_clients_list: Retrieves a list of clients from Cisco Catalyst Center with comprehensive filtering options (e.g., by client type, OS, site, MAC/IP address, SSID). Returns a maximum of 100 clients per call.
  • get_client_details_by_mac: Fetches detailed information for a specific client by their MAC address.
  • get_clients_count: Retrieves the total count of clients matching specified filters.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Metadata

Release files for iflow-mcp_richbibby-catalyst-center-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_richbibby-catalyst-center-mcp 0.1.0
File Size Uploaded
iflow_mcp_richbibby_catalyst_center_mcp-0.1.0.tar.gz 681.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_richbibby-catalyst-center-mcp 0.1.0
File Interpreter ABI Platform
iflow_mcp_richbibby_catalyst_center_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / iflow_mcp_richbibby_catalyst_center_mcp-0.1.0.tar.gz

Download URL iflow_mcp_richbibby_catalyst_center_mcp-0.1.0.tar.gz
Size 681.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4801e2f7a274cfb38c3061e7b62327ed9248a46c11d95e43655f43646c4ce01e
BLAKE2b-256 checksum
How to use checksums
146373de5c39527ef8051fff1e7f4345dd0e267546cd2399e492f5ab8b1664af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_richbibby_catalyst_center_mcp-0.1.0-py3-none-any.whl

Download URL iflow_mcp_richbibby_catalyst_center_mcp-0.1.0-py3-none-any.whl
Size 687.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f3d514f002598168e62def9ac824cb18627177b8b2995f7a67436fbac0d4eae7
BLAKE2b-256 checksum
How to use checksums
c57293bfa5fc59bea77fe010bf70af4e12b03129135a01b276672942465a8af9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page