Connects Claude to HPE GreenLake's workspace management APIs for querying and retrieving workspace configurations. You get read-only access to list workspaces, pull detailed settings, and inspect workspace-level information through OAuth2-authenticated calls. Built by HPE as part of their broader GreenLake MCP collection, it follows the same dual-mode architecture as their other servers: static mode gives you dedicated tools per endpoint, while dynamic mode uses meta-tools for runtime discovery. Useful when you need to audit workspace configurations, compare settings across multiple workspaces, or pull workspace details into automated workflows without jumping into the web console.
A collection of Model Context Protocol (MCP) servers that enable AI assistants to interact with HPE GreenLake platform services.
The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you're building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need.
This repository contains production-ready MCP servers for HPE GreenLake platform services. Each server provides AI assistants with secure, read-only access to specific GreenLake APIs, enabling natural language interactions with your HPE infrastructure.
| Service | Category | Description | Key Capabilities |
|---|---|---|---|
| Devices | Infrastructure & Platform | Manage and query HPE GreenLake devices in your workspace | Filter by type, serial number, tags; retrieve device details by ID |
| Workspaces | Infrastructure & Platform | Interact with HPE GreenLake workspace management APIs | List/query workspaces; retrieve details and configurations |
| Subscriptions | Infrastructure & Platform | Access subscription information and licensing details | View active subscriptions; query licensing; monitor subscription status |
| Audit Logs | Security & Compliance | Query and analyze HPE GreenLake audit logs | Filter by category, user, timestamp; track user activities and system events |
| Users | User & Access Management | Manage user accounts and access controls | List/query users; view permissions; monitor user activity |
| Reporting | Reporting & Analytics | Generate and retrieve reports on workspaces, devices, and subscriptions | Customizable report types; async report tracking; date range and column filters |
| Service Catalog | Infrastructure & Platform | Access service catalog and provisioning information | View service offers, provisions, managers, manager-provisions and regions |
All servers require the following HPE GreenLake credentials:
export GREENLAKE_API_BASE_URL="https://global.api.greenlake.hpe.com"
export GREENLAKE_CLIENT_ID="your-client-id"
export GREENLAKE_CLIENT_SECRET="your-client-secret"
export GREENLAKE_WORKSPACE_ID="your-workspace-id"
# Navigate to a server directory
cd src/audit-logs
# Install dependencies
uv sync
# Run the server
uv run python -m greenlake_audit_logs_mcp
Add servers to your claude_desktop_config.json:
{
"mcpServers": {
"greenlake-audit-logs": {
"command": "uv",
"args": ["run", "python", "-m", "greenlake_audit_logs_mcp"],
"cwd": "/path/to/gl-mcp/src/audit-logs",
"env": {
"GREENLAKE_API_BASE_URL": "https://global.api.greenlake.hpe.com",
"GREENLAKE_CLIENT_ID": "your-client-id",
"GREENLAKE_CLIENT_SECRET": "your-client-secret",
"GREENLAKE_WORKSPACE_ID": "your-workspace-id"
}
},
"greenlake-devices": {
"command": "uv",
"args": ["run", "python", "-m", "greenlake_devices_mcp"],
"cwd": "/path/to/gl-mcp/src/devices",
"env": {
"GREENLAKE_API_BASE_URL": "https://global.api.greenlake.hpe.com",
"GREENLAKE_CLIENT_ID": "your-client-id",
"GREENLAKE_CLIENT_SECRET": "your-client-secret",
"GREENLAKE_WORKSPACE_ID": "your-workspace-id"
}
}
}
}
These servers use the standard stdio transport and work with any MCP-compatible client. See individual server READMEs for specific configuration examples.
All servers support two operation modes that can be switched at runtime using the MCP_TOOL_MODE environment variable:
export MCP_TOOL_MODE=static
list_endpoints - Discover available API endpointsget_endpoint_schema - Get detailed schema informationinvoke_dynamic_tool - Execute API calls with runtime validationexport MCP_TOOL_MODE=dynamic
| Python Version | Status | Notes |
|---|---|---|
| 3.12 | ✅ Supported | Recommended |
| 3.11 | ✅ Supported | Recommended |
| 3.10 | ✅ Supported | Minimum version |
flowchart TB
subgraph clients["<b> MCP Clients </b>"]
direction TB
claude["Claude Desktop"]
vscode["VS Code"]
other["..."]
end
subgraph servers["<b> MCP Servers </b>"]
direction TB
audit["Audit Logs"]
devices["Devices"]
users["Users"]
workspaces["Workspaces"]
subscriptions["Subscriptions"]
reporting["Reporting"]
serviceX["..."]
subgraph shared["<i> Shared Components </i>"]
direction LR
oauth["OAuth2 Token Manager<br/>(with caching)"]
end
end
subgraph platform["<b> HPE GreenLake Platform </b>"]
direction TB
api["APIs"]
end
clients ==>|JSON-RPC/stdio| servers
servers ==>|HTTPS/REST + OAuth2| platform
classDef clientStyle fill:#2196F3,stroke:none,color:#fff,rx:10,ry:10
classDef serverStyle fill:#4CAF50,stroke:none,color:#fff,rx:10,ry:10
classDef authStyle fill:#FF9800,stroke:none,color:#fff,rx:10,ry:10
classDef platformStyle fill:#01a982,stroke:none,color:#fff,rx:10,ry:10
classDef clientContainerStyle fill:none,stroke:#2196F3,stroke-width:3px,rx:15,ry:15
classDef serverContainerStyle fill:none,stroke:#4CAF50,stroke-width:3px,rx:15,ry:15
classDef authContainerStyle fill:none,stroke:#FF9800,stroke-width:2px,stroke-dasharray:5 5,rx:10,ry:10
classDef platformContainerStyle fill:none,stroke:#01a982,stroke-width:3px,rx:15,ry:15
class claude,vscode,other clientStyle
class audit,devices,users,workspaces,subscriptions,reporting,serviceX serverStyle
class oauth authStyle
class api platformStyle
class clients clientContainerStyle
class servers serverContainerStyle
class shared authContainerStyle
class platform platformContainerStyle
All servers share a common architecture:
src/<service>/
├── greenlake_<service>_mcp/ # Main package (e.g. greenlake_audit_logs_mcp)
│ ├── __main__.py # Entry point (python -m greenlake_<service>_mcp)
│ ├── auth/ # OAuth2 authentication
│ ├── config/ # Settings and logging
│ ├── models/ # Pydantic data models
│ ├── server/ # MCP server core
│ ├── tools/ # Tool implementations
│ │ ├── base.py # Base tool class
│ │ ├── registry.py # Tool registration
│ │ └── implementations/ # Tool implementations
│ └── utils/ # HTTP client and utilities
├── tests/ # Unit and integration tests
└── pyproject.toml # Package definition and entry points
All servers use OAuth2 client credentials flow with automatic token management:
Servers use structured logging with MCP protocol compliance:
GREENLAKE_LOG_LEVEL)~/.hpe/mcp-logs/Server won't start:
uv is installed and dependencies are syncedAuthentication failures:
GREENLAKE_WORKSPACE_ID matches your credential scopeMCP client connection issues:
cwd path in client configuration is correctEnable detailed logging for troubleshooting:
export GREENLAKE_LOG_LEVEL=DEBUG
export GREENLAKE_FILE_LOGGING=true
Log files are written to: ~/.hpe/mcp-logs/{service-name}/
The primary support channel for this project is GitHub Issues. When reporting an issue, please include:
uv versionGREENLAKE_LOG_LEVEL=DEBUG and GREENLAKE_FILE_LOGGING=true to gather detailed logsThis project is licensed under the Apache 2.0 - see the LICENSE file for details.