io.github.HewlettPackard/greenlake-devices-mcp MCP Server
io.github.HewlettPackard/greenlake-devices-mcp
AI-powered management and querying of HPE GreenLake devices, workspaces, subscriptions, audit logs, users, and reporting.
What is the io.github.HewlettPackard/greenlake-devices-mcp MCP server?
The HPE GreenLake Devices MCP Server is part of a collection of Model Context Protocol servers that enable AI assistants to interact with HPE GreenLake platform services. It provides secure, read-only access to GreenLake APIs for managing devices, workspaces, subscriptions, audit logs, users, and generating reports through natural language interactions.
This MCP server collection gives AI assistants like Claude access to HPE GreenLake infrastructure management APIs. It supports querying and filtering devices by type, serial number, and tags; managing workspaces; accessing subscription and licensing information; analyzing audit logs; managing user accounts; generating customizable reports; and viewing service catalog information. All servers use OAuth2 authentication, support both static and dynamic tool modes, and are production-ready with comprehensive logging and error handling.
How to install io.github.HewlettPackard/greenlake-devices-mcp
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
list_endpoints— Discover available API endpoints (dynamic mode)get_endpoint_schema— Get detailed schema information for API endpoints (dynamic mode)invoke_dynamic_tool— Execute API calls with runtime validation (dynamic mode)Filter devices by type, serial number, tags— Query HPE GreenLake devices with filtering capabilitiesRetrieve device details by ID— Get detailed information about specific devicesList and query workspaces— Interact with workspace management APIsAccess subscription information— View active subscriptions and licensing detailsQuery audit logs— Filter and analyze audit logs by category, user, and timestampManage user accounts— List, query users, and view permissionsGenerate reports— Create customizable reports on workspaces, devices, and subscriptionsAccess service catalog— View service offers, provisions, managers, and regions
Use cases
- Query and filter HPE GreenLake devices by type, serial number, or tags to inventory infrastructure
- Retrieve detailed device information and configurations for specific device IDs
- Monitor subscription status, licensing details, and active services across workspaces
- Analyze audit logs to track user activities, system events, and security-relevant actions
- Generate customizable reports on workspace usage, device inventory, and subscription status
- Manage user accounts, permissions, and access controls across GreenLake workspaces
io.github.HewlettPackard/greenlake-devices-mcp MCP server FAQ
It's a Model Context Protocol server that provides AI assistants with secure, read-only access to HPE GreenLake platform APIs for managing devices, workspaces, subscriptions, audit logs, users, and generating reports.
The MCP server itself is open-source under Apache 2.0 license. You need valid HPE GreenLake workspace credentials and an active subscription to access the GreenLake platform APIs.
Add the server to your MCP client configuration (e.g., claude_desktop_config.json) with the command 'uv run python -m greenlake_devices_mcp' and set the required environment variables for GreenLake credentials.
You need HPE GreenLake workspace credentials: GREENLAKE_CLIENT_ID, GREENLAKE_CLIENT_SECRET, GREENLAKE_WORKSPACE_ID, and GREENLAKE_API_BASE_URL. The server uses OAuth2 client credentials flow with automatic token management.
Python 3.10, 3.11, and 3.12 are supported. Python 3.12 is recommended.
Yes, the server supports both static mode (individual tools per endpoint) and dynamic mode (3 meta-tools for any endpoint). Switch modes using the MCP_TOOL_MODE environment variable.
README (reference)
Source of truth, from the repository.
HPE GreenLake MCP Servers
A collection of Model Context Protocol (MCP) servers that enable AI assistants to interact with HPE GreenLake platform services.
Table of Contents
- What is the Model Context Protocol?
- What's in this Repository?
- Available MCP Servers
- Quick Start
- MCP Client Configuration
- Tool Modes
- Architecture Overview
- Security Considerations
- Troubleshooting
- Getting Help
- Resources
- License
What is the Model Context Protocol?
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.
What's in this Repository?
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.
Key Features
- Standardized Architecture: All servers follow consistent patterns for authentication, configuration, and error handling
- OAuth2 Authentication: Secure access using HPE GreenLake workspace credentials with automatic token management
- Dual Tool Modes: Each server supports both static (individual tools per endpoint) and dynamic (meta-tools) operation modes
- Type-Safe: Built with Pydantic models for runtime validation and type safety
- Production Ready: Comprehensive logging, error handling, and Docker support
- Well Tested: Extensive unit and integration test coverage
Available MCP Servers
| 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 |
Quick Start
Prerequisites
- Python 3.10 or higher
- uv package manager
- HPE GreenLake workspace with API credentials
Configuration
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"
Running a Server
# Navigate to a server directory
cd src/audit-logs
# Install dependencies
uv sync
# Run the server
uv run python -m greenlake_audit_logs_mcp
MCP Client Configuration
Claude Desktop
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"
}
}
}
}
Other MCP Clients
These servers use the standard stdio transport and work with any MCP-compatible client. See individual server READMEs for specific configuration examples.
Tool Modes
All servers support two operation modes that can be switched at runtime using the MCP_TOOL_MODE environment variable:
Static Mode (Default)
- Individual tools: Each API endpoint becomes a dedicated MCP tool
- Type-safe: Explicit tool definitions with compile-time validation
- Discoverable: Tools appear individually in MCP client interfaces
- Best for: Smaller APIs and focused workflows
export MCP_TOOL_MODE=static
Dynamic Mode
- Meta-tools: 3 generic tools that can handle any API endpoint
list_endpoints- Discover available API endpointsget_endpoint_schema- Get detailed schema informationinvoke_dynamic_tool- Execute API calls with runtime validation
- Memory efficient: Lower overhead for large APIs
- Best for: Large APIs with many endpoints
export MCP_TOOL_MODE=dynamic
Compatibility Matrix
| Python Version | Status | Notes |
|---|---|---|
| 3.12 | ✅ Supported | Recommended |
| 3.11 | ✅ Supported | Recommended |
| 3.10 | ✅ Supported | Minimum version |
Architecture Overview
High-Level Architecture
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
Request Flow
- Client Request: MCP client sends tool invocation via JSON-RPC over stdio
- Authentication: Server authenticates with HPE GreenLake using OAuth2 (tokens cached and auto-refreshed)
- API Call: Server makes authenticated HTTPS request to GreenLake API
- Response: Server processes response and returns data to client via MCP protocol
Shared Components
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
Authentication
All servers use OAuth2 client credentials flow with automatic token management:
- Tokens are cached and automatically refreshed
- Thread-safe token management
- Configurable retry logic with exponential backoff
Logging
Servers use structured logging with MCP protocol compliance:
- stderr: Diagnostic logs (controlled by
GREENLAKE_LOG_LEVEL) - File logging: Optional detailed logging to
~/.hpe/mcp-logs/ - stdout: Reserved for JSON-RPC messages only
Security Considerations
- Read-Only Access: All servers provide read-only API access by design
- Credential Management: Never commit credentials to version control
- Token Security: OAuth2 tokens are cached in memory only
- Workspace Isolation: Operations are scoped to the configured workspace
- HTTPS Only: All API communications use TLS encryption
Troubleshooting
Common Issues
Server won't start:
- Verify all required environment variables are set
- Check that
uvis installed and dependencies are synced - Review stderr output for configuration errors
Authentication failures:
- Verify client credentials are valid for your workspace
- Ensure
GREENLAKE_WORKSPACE_IDmatches your credential scope - Check network connectivity to GreenLake APIs
MCP client connection issues:
- Verify the
cwdpath in client configuration is correct - Check that the server starts successfully when run manually
- Review client logs for specific error messages
Debug Logging
Enable detailed logging for troubleshooting:
export GREENLAKE_LOG_LEVEL=DEBUG
export GREENLAKE_FILE_LOGGING=true
Log files are written to: ~/.hpe/mcp-logs/{service-name}/
Getting Help
GitHub Issues
The primary support channel for this project is GitHub Issues. When reporting an issue, please include:
- Environment details: OS, Python version,
uvversion - Server name: Which MCP server you're using (audit-logs, devices, etc.)
- Error messages: Complete error output with stack traces
- Configuration: Relevant environment variable settings (DO NOT include credentials)
- Steps to reproduce: Detailed description of how to reproduce the issue
Before Opening an Issue
- Check existing issues: Search open and closed issues
- Review troubleshooting: Check the Troubleshooting section above
- Enable debug logging: Run with
GREENLAKE_LOG_LEVEL=DEBUGandGREENLAKE_FILE_LOGGING=trueto gather detailed logs - Test authentication: Verify your credentials work with the GreenLake APIs directly
Issue Types
- Bug Report: For unexpected behavior, errors, or crashes
- Feature Request: For suggesting new capabilities or improvements
- Question: For clarification on usage, configuration, or architecture
- Documentation: For reporting documentation issues or suggesting improvements
Resources
License
This project is licensed under the Apache 2.0 - see the LICENSE file for details.
Related MCP servers
Search, verify & screen 1M+ African companies + their government contracts across 18 registries.
View repository →
