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
- 6 tools for querying Aruba Central infrastructure:
list_aps— List all access points (with optional site/status filter)list_switches— List all switcheslist_clients— List connected wireless clients (with optional SSID/band filter)find_client_by_mac— Find a wireless client by MAC addressget_ap_status— Get detailed status of a specific APget_site_summary— Aggregated site-level summary (AP counts, client counts)
- OAuth2 Client Credentials authentication (GreenLake SSO)
- Automatic pagination for large result sets
- Token auto-refresh before expiration
- Lightweight: only
mcpSDK +httpx(no pandas)
Prerequisites
- Python 3.10+
- Aruba Central account with API access (GreenLake New Central API)
- OAuth2 client credentials (client ID and secret)
Installation
pip install aruba-central-mcp
Or with uv:
uvx aruba-central-mcp
For development:
git clone https://github.com/shigechika/aruba-central-mcp.git
cd aruba-central-mcp
pip install -e ".[test]"
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
- Log in to HPE GreenLake Platform
- Go to Manage Workspace > Personal API clients
- Click Create Personal API client
- Enter a nickname and select Aruba Central as the service
- Copy the
client_idandclient_secret— the 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
Development
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/switches— Switches/network-monitoring/v1/clients— Wireless clients
License
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aruba_central_mcp-0.1.2.tar.gz.
File metadata
- Download URL: aruba_central_mcp-0.1.2.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d230d9ee176575d324e7eedd0ef60851a1c00e301478a1ac68c90b68c51acba
|
|
| MD5 |
47f4dd6e4f66befdff8b1adfa85b36da
|
|
| BLAKE2b-256 |
83b755aecc0d124af8cccc104cc0d9cc72192316438a1a25f8d34fc5c10788e6
|
Provenance
The following attestation bundles were made for aruba_central_mcp-0.1.2.tar.gz:
Publisher:
release.yml on shigechika/aruba-central-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aruba_central_mcp-0.1.2.tar.gz -
Subject digest:
6d230d9ee176575d324e7eedd0ef60851a1c00e301478a1ac68c90b68c51acba - Sigstore transparency entry: 1269891846
- Sigstore integration time:
-
Permalink:
shigechika/aruba-central-mcp@f7ba08922d1d7c24ae772e0ea6dbf089b1db8b18 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/shigechika
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7ba08922d1d7c24ae772e0ea6dbf089b1db8b18 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aruba_central_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: aruba_central_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67da053a5d8cb07966bcaf28fc37a1bfe17702fc72cfebbd8364dcd1c2f493aa
|
|
| MD5 |
89b1d09fb24172e0157a23d1cdf79c83
|
|
| BLAKE2b-256 |
d3b54c6e595f4116aced3a0d72bf111c03d89eae05c05fc562e7b9fe3812434b
|
Provenance
The following attestation bundles were made for aruba_central_mcp-0.1.2-py3-none-any.whl:
Publisher:
release.yml on shigechika/aruba-central-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aruba_central_mcp-0.1.2-py3-none-any.whl -
Subject digest:
67da053a5d8cb07966bcaf28fc37a1bfe17702fc72cfebbd8364dcd1c2f493aa - Sigstore transparency entry: 1269891949
- Sigstore integration time:
-
Permalink:
shigechika/aruba-central-mcp@f7ba08922d1d7c24ae772e0ea6dbf089b1db8b18 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/shigechika
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7ba08922d1d7c24ae772e0ea6dbf089b1db8b18 -
Trigger Event:
push
-
Statement type: