loading…
Search for a command to run...
loading…
Enables conversational automation of HPE Aruba Central network operations through Claude Code. Provides 88 tools across monitoring, configuration, and operation
Enables conversational automation of HPE Aruba Central network operations through Claude Code. Provides 88 tools across monitoring, configuration, and operations domains for device migration, SSID management, switch provisioning, and GreenLake Platform integration.
License Python MCP Tested against live lab
Model Context Protocol (MCP) server for HPE Aruba Networking Central (New Central) and HPE GreenLake Platform (GLP). Drive real network operations from Claude, Claude Code, Claude Desktop, or any MCP-capable client — conversationally.
Python tooling for Aruba Central New-Central / NBAPI: monitoring, configuration, troubleshooting, NAC, GLP device lifecycle, doc-grounded RAG, and an 8-stage cross-account migration pipeline. Ships as 6 FastMCP domain servers plus a unified tool-router for AI agents, and as standalone CLI tools for batch workflows.
Keywords (for GitHub search):
aruba-central · new-central · nbapi · greenlake · hpe-greenlake ·
hpe-aruba · mcp-server · model-context-protocol · claude-code ·
claude-desktop · fastmcp · network-automation · network-config ·
switch-automation · wifi-automation · pycentral · aruba-api ·
aruba-networking · llm-tools · ai-for-networking
| Surface | Count | What |
|---|---|---|
| MCP tool servers | 6 + router | aruba-monitoring, aruba-config, aruba-ops, aruba-nac, aruba-glp, aruba-rag — optionally fronted by aruba-tool-router |
| MCP tools | ~140 | Read + write across Central and GLP, plus doc-grounded search |
| Migration pipeline stages | 8 | Discover → verify → transfer → configure → attest |
| Supported device types | AP / CX / AOS-S / Gateway | Full troubleshoot + provisioning surface |
| GLP operations | Devices / Subscriptions / Users / Audit logs | v2beta1 PATCH writes behind a feature flag |
| RAG corpus | Aruba/HPE docs | Dev docs, tech docs, NAC/VSG guides, OpenAPI specs indexed in Qdrant |
aruba-monitoring,
aruba-config, aruba-ops, aruba-nac, aruba-glp, aruba-rag)aruba-tool-router — a single MCP entrypoint that proxies to the 6
domain servers, reducing client tool-listing tokens from ~8k to a routed
interface. Use the router for day-to-day; fall back to .cursor/mcp.dev.json
for per-server introspection when debugging.search_docs over ingested Aruba/HPE developer
docs, tech docs, NAC/VSG guides, and OpenAPI specs (Qdrant + Ollama stack,
docker-compose.yml included; re-index via scripts/ingest_tools.py)show commands, cable
test, PoE bounce, reboot, LED-locateRetry-After aware 429 handling, 5xx
backoff with jitter, configurable token-bucket rate limit
(default 8 req/s under Central's 10 req/s account cap)~/.cache/centralmcp/
by default, per-client expiry bufferCENTRALMCP_GLP_V2BETA1_WRITES=1)Aruba publishes pycentral for classic Central, and HPE publishes gl-mcp for the GreenLake Platform. There's no single MCP server that:
centralmcp fills that gap.
pip# 1. Clone and install dependencies
git clone https://github.com/secure-ssid/centralmcp.git
cd centralmcp
uv sync
# 2. Configure credentials (new naming; legacy source_account/target_account also accepted)
cp config/credentials.yaml.example config/credentials.yaml
# Edit — fill in central_account.{client_id,client_secret,base_url}
# and glp_account.{client_id,client_secret,glp_workspace_id}
# 3. Configure MCP servers (for Claude Code integration)
cp .mcp.json.example .mcp.json
# Edit .mcp.json — replace /path/to/centralmcp with your clone path
Security:
config/credentials.yamland.mcp.jsonare git-ignored. Never commit them. Token caches live in~/.cache/centralmcp/(0600perms) by default.
| Var | Purpose | Default |
|---|---|---|
CREDS_PATH |
Override credentials YAML location | config/credentials.yaml |
TOKEN_CACHE_DIR |
Override OAuth token cache directory | ~/.cache/centralmcp/ |
CENTRALMCP_GLP_V2BETA1_WRITES |
Enable PATCH /devices/v2beta1/devices GLP writes |
off |
CENTRALMCP_BOUND_LISTS |
Wrap list tool responses as {items, _pagination} |
off |
GLP_TOKEN_URL |
Override SSO token endpoint | https://sso.common.cloud.hpe.com/as/token.oauth2 |
GLP_BASE_URL |
Override GLP API base URL | https://global.api.greenlake.hpe.com |
With .mcp.json configured, start Claude Code from this directory — the 5
MCP servers (aruba-monitoring, aruba-config, aruba-ops, aruba-nac,
aruba-glp) load automatically.
Example prompts:
Corp-WiFi on VLAN 100 for all APs."sub-uuid-123 to device SG30LMR164." (requires the GLP writes flag)python run_pipeline.py --input inputs/devices.csv
Runs the full 8-stage migration (discover → assign → configure → verify). Idempotent — safe to re-run.
python run_ssid.py
Interactive SSID build/delete workflow.
mcp_servers/
_middleware/ NullStripMiddleware, RateLimitMiddleware, installer
_cache_hygiene.py Stable-sort tool listing for prompt-cache stability
monitoring.py Monitoring tools (health, trends, wireless metrics)
config.py Config tools (SSIDs, VLANs, profiles, webhooks, firmware)
ops.py Ops tools (reboots, ping, cable test, PoE bounce)
nac.py NAC tools (MAC reg, MPSK, visitors, auth servers, AAA)
glp.py GreenLake Platform tools (aruba-glp server)
shared.py Shared clients, helpers, pagination, feature flags
pipeline/
clients/ CentralClient (429+5xx retry), GLPClient (v2beta1 PATCH), TokenManager
stages/ s1_discover → s8_verify
config.py Credential loader (source_account + central_account aliases)
create_ssid.py SSID build/delete logic (underlay + overlay)
config/
credentials.yaml.example Template — copy to credentials.yaml and fill in
docs/ Reference documents (including HPE support ticket drafts)
resources/ Postman download script (collections git-ignored — see resources/README.md)
inputs/ CSV templates for batch migration
tests/ Unit + integration tests
Retry-After (seconds or HTTP-date); falls back to
60s→300s legacy backoff.retry_5xx=True.None args before
validation so clients that send null for optional params don't fail
Pydantic.pytest tests/
All tests use mocked HTTP — no real API calls. See tests/unit/test_mcp_middleware.py, tests/unit/test_central_client_retry.py, tests/unit/test_glp_v2beta1_writes.py, and tests/unit/test_bound_collection_response.py for coverage of retry, middleware, GLP writes, and pagination wrapping.
See CLAUDE.md for:
See docs/ for:
hpe-support-events-endpoint.md)Issues and PRs welcome — please open an issue first for anything non-trivial so we can sync on scope.
config/credentials.yaml is git-ignored.CENTRALMCP_GLP_V2BETA1_WRITES=1 against a production
workspace until you've sandbox-validated the payload + rollback..token_cache_*.json) are git-ignored and stored
with 0600 perms.This project was made with love for the Aruba community. It is an independent, community-built tool and is not an official HPE or HPE Aruba Networking product. It is not endorsed by, affiliated with, or supported by HPE. Use at your own risk.
MIT — see LICENSE. A few specific files carry additional
attribution headers where code has been ported from MIT-licensed peers
(e.g. nowireless4u/hpe-networking-mcp); those attributions are
preserved inline.
config/credentials.yaml (git-ignored)0600 perms.mcp.json) is git-ignored — it contains local pathsReport security issues via GitHub Issues — do not include credentials in bug reports.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"api-central": {
"command": "npx",
"args": []
}
}
}