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
.envfile for easy setup.
Installation
- Clone the repository:
git clone https://github.com/richbibby/catalyst-center-mcp.git
cd catalyst-center-mcp
- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
Configuration
- Copy the example environment file:
cp .env.example .env
- Update the
.envfile with your Catalyst Center credentials:
CCC_HOST=your-catalyst-center-host
CCC_USER=your-username
CCC_PWD=your-password
Usage With Claude Desktop Client
- 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.jsonfor 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
PYTHONUNBUFFEREDenvironment variable is recommended for Stdio transport.
-
Restart Claude Desktop
-
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
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
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_richbibby_catalyst_center_mcp-0.1.0.tar.gz | 681.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|