Skip to main content

MCP server for Aruba Central: expose AP, switch, and client status to AI assistants

Project description

aruba-central-mcp

English | 日本語

MCP server for Aruba Central (GreenLake New Central API).

Exposes access point, switch, and wireless client status to MCP-compatible AI assistants (Claude Code, Claude Desktop, etc.) via STDIO transport.

Features

Access Points

Tool Description
list_aps List all access points (with optional site/status filter)
list_radios List AP radios (channel, utilization, noise floor, TX power)
list_bssids List all BSSIDs
list_wlans List WLANs (SSID, security, VLAN)
list_swarms List AP swarms/clusters
get_ap_status Get detailed status of a specific AP
get_ap_throughput Get AP throughput trend (TX/RX over time)
get_top_aps Top APs by bandwidth usage (wireless/wired/total)

Clients

Tool Description
list_clients List connected wireless clients (with optional SSID/band filter)
find_client_by_mac Find a client by MAC address (direct API lookup)
get_clients_trend Client count trend over time
get_top_clients_by_usage Top clients by bandwidth usage
get_client_mobility_trail Client roaming history

Infrastructure

Tool Description
list_switches List all switches
get_site_summary Aggregated site-level summary (AP counts, client counts)

Highlights

  • Server-side OData filtering for efficient queries
  • OAuth2 Client Credentials authentication (GreenLake SSO)
  • Automatic pagination for large result sets
  • Token auto-refresh before expiration
  • Lightweight: only mcp SDK + httpx (no pandas)

Prerequisites

  • Python 3.10+
  • Aruba Central account with API access (GreenLake New Central API)
  • OAuth2 client credentials (client ID and secret)

Setup

# uv
uv pip install aruba-central-mcp

# pip
pip install aruba-central-mcp

Or run without installing:

uvx aruba-central-mcp

From source:

git clone https://github.com/shigechika/aruba-central-mcp.git
cd aruba-central-mcp

# uv
uv sync

# pip
pip install -e .

Configuration

Set the following environment variables:

Variable Description Example
ARUBA_CENTRAL_BASE_URL API gateway URL apigw-uswest4.central.arubanetworks.com
ARUBA_CENTRAL_CLIENT_ID OAuth2 client ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ARUBA_CENTRAL_CLIENT_SECRET OAuth2 client secret xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

How to obtain API credentials

  1. Log in to HPE GreenLake Platform
  2. Go to Manage Workspace > Personal API clients
  3. Click Create Personal API client
  4. Enter a nickname and select Aruba Central as the service
  5. Copy the client_id and client_secretthe secret is shown only once

For details, see:

Usage

Claude Code

claude mcp add aruba-central \
  -e ARUBA_CENTRAL_BASE_URL=apigw-uswest4.central.arubanetworks.com \
  -e ARUBA_CENTRAL_CLIENT_ID=your-client-id \
  -e ARUBA_CENTRAL_CLIENT_SECRET=your-client-secret \
  -- uvx aruba-central-mcp

Or add to .mcp.json:

{
  "mcpServers": {
    "aruba-central": {
      "command": "uvx",
      "args": ["aruba-central-mcp"],
      "env": {
        "ARUBA_CENTRAL_BASE_URL": "apigw-uswest4.central.arubanetworks.com",
        "ARUBA_CENTRAL_CLIENT_ID": "your-client-id",
        "ARUBA_CENTRAL_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "aruba-central": {
      "command": "uvx",
      "args": ["aruba-central-mcp"],
      "env": {
        "ARUBA_CENTRAL_BASE_URL": "apigw-uswest4.central.arubanetworks.com",
        "ARUBA_CENTRAL_CLIENT_ID": "your-client-id",
        "ARUBA_CENTRAL_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Direct execution

export ARUBA_CENTRAL_BASE_URL="apigw-uswest4.central.arubanetworks.com"
export ARUBA_CENTRAL_CLIENT_ID="your-client-id"
export ARUBA_CENTRAL_CLIENT_SECRET="your-client-secret"
python3 -m aruba_central_mcp

CLI Options

aruba-central-mcp --version   # Print version and exit
aruba-central-mcp --help      # Show usage and required environment variables
aruba-central-mcp --check     # Verify environment variables and OAuth2 authentication, then exit
aruba-central-mcp             # Start MCP server (STDIO, default)

With no options, the process runs as an MCP STDIO server (the mode used by MCP clients).

--check exit codes: 0 success, 1 config error, 2 auth error.

Development

git clone https://github.com/shigechika/aruba-central-mcp.git
cd aruba-central-mcp

# uv
uv sync --dev
uv run pytest -v

# pip
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/pytest -v

API Reference

This server uses the GreenLake New Central API:

  • /network-monitoring/v1/aps — Access points
  • /network-monitoring/v1/radios — AP radios
  • /network-monitoring/v1/bssids — BSSIDs
  • /network-monitoring/v1/wlans — WLANs
  • /network-monitoring/v1/swarms — AP swarms/clusters
  • /network-monitoring/v1/switches — Switches
  • /network-monitoring/v1/clients — Clients
  • /network-monitoring/v1/clients-trend — Client count trends
  • /network-monitoring/v1/clients-topn-usage — Top clients by usage
  • /network-monitoring/v1/top-aps-by-usage — Top APs by usage

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aruba_central_mcp-0.4.1.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aruba_central_mcp-0.4.1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file aruba_central_mcp-0.4.1.tar.gz.

File metadata

  • Download URL: aruba_central_mcp-0.4.1.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aruba_central_mcp-0.4.1.tar.gz
Algorithm Hash digest
SHA256 fec2436b801bac902e949e54a927b5b71b8be28f30c7ad453c93d2212085146b
MD5 f57fe52e1b218d0a7b4c7cf7c75fad05
BLAKE2b-256 e5d52dcc067559bc82e804c6528369aad4da5ebb725d8bd7d1c1a42674202519

See more details on using hashes here.

Provenance

The following attestation bundles were made for aruba_central_mcp-0.4.1.tar.gz:

Publisher: release.yml on shigechika/aruba-central-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aruba_central_mcp-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aruba_central_mcp-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a2305ad07b2e6408626b09cddf2f0209b03fecd65d108bcdb9e414f818b7845
MD5 4fc9cd164e2c303a1f7631fd00aebd24
BLAKE2b-256 b3656a56667b2370842d894a979d7003de9e446b94973838f027b10b63c965c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aruba_central_mcp-0.4.1-py3-none-any.whl:

Publisher: release.yml on shigechika/aruba-central-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page