greenlake-workspaces-mcp について
greenlake-workspaces-mcpは、HPE GreenLakeのワークスペース情報や設定を確認するためのMCPサーバーです。読み取り専用APIアクセスに対応し、静的または動的なツールモードを選べます。
主な機能
- 01ワークスペースの一覧・検索
- 02ワークスペース詳細の取得
- 03設定の確認
- 04OAuth2トークン管理
- 05静的・動的ツールモード
活用シーン
- 01ワークスペースの検索
- 02ワークスペース設定の確認
MCP 対応
HPE GreenLakeのワークスペース管理APIを、MCPクライアント向けのツールとして公開します。stdioトランスポートを使用し、読み取り専用アクセスを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
HPE GreenLake MCP Servers
AI アシスタントが HPE GreenLake プラットフォームサービスを利用できるようにする、Model Context Protocol (MCP) サーバーのコレクションです。
目次
- Model Context Protocol とは?
- このリポジトリの内容
- 利用可能な MCP サーバー
- クイックスタート
- MCP クライアントの設定
- ツールモード
- アーキテクチャの概要
- セキュリティ上の考慮事項
- トラブルシューティング
- サポートを受ける
- リソース
- ライセンス
Model Context Protocol とは?
Model Context Protocol (MCP) は、LLM アプリケーションと外部のデータソースやツールをシームレスに連携させるオープンなプロトコルです。 AI 対応 IDE の構築、チャットインターフェースの拡張、カスタム AI ワークフローの作成など、MCP は LLM を必要なコンテキストに接続する標準的な方法を提供します。
このリポジトリの内容
このリポジトリには、HPE GreenLake プラットフォームサービス向けの、本番環境ですぐに使える MCP サーバーが含まれています。各サーバーは、特定の GreenLake API への安全な読み取り専用アクセスを AI アシスタントに提供し、HPE インフラストラクチャとの自然言語でのやり取りを可能にします。
主な機能
- 標準化されたアーキテクチャ:すべてのサーバーで、認証、設定、エラー処理に一貫したパターンを採用しています
- OAuth2 認証:HPE GreenLake ワークスペースの認証情報を使用した安全なアクセスと、自動トークン管理を提供します
- 2 種類のツールモード:各サーバーは、静的(エンドポイントごとに個別のツールを提供)モードと動的(メタツール)モードの両方に対応しています
- 型安全:Pydantic モデルを使用して、実行時の検証と型安全性を実現しています
- 本番環境対応:包括的なログ記録、エラー処理、Docker に対応しています
- 十分なテスト:広範なユニットテストと統合テストを実施しています
利用可能な MCP サーバー
| サービス | カテゴリ | 説明 | 主な機能 |
|---|---|---|---|
| Devices | インフラストラクチャ&プラットフォーム | ワークスペース内の HPE GreenLake デバイスを管理および照会します | 種類、シリアル番号、タグによるフィルタリング、ID によるデバイスの詳細取得 |
| Workspaces | インフラストラクチャ&プラットフォーム | HPE GreenLake のワークスペース管理 API と連携します | ワークスペースの一覧表示/照会、詳細および設定の取得 |
| Subscriptions | インフラストラクチャ&プラットフォーム | サブスクリプション情報とライセンスの詳細にアクセスします | 有効なサブスクリプションの表示、ライセンスの照会、サブスクリプションのステータス監視 |
| Audit Logs | セキュリティ&コンプライアンス | HPE GreenLake の監査ログを照会および分析します | カテゴリ、ユーザー、タイムスタンプによるフィルタリング、ユーザーのアクティビティとシステムイベントの追跡 |
| Users | ユーザー&アクセス管理 | ユーザーアカウントとアクセス制御を管理します | ユーザーの一覧表示/照会、権限の表示、ユーザーアクティビティの監視 |
| Reporting | レポート&分析 | ワークスペース、デバイス、サブスクリプションに関するレポートを生成および取得します | カスタマイズ可能なレポートタイプ、非同期レポートの追跡、日付範囲と列のフィルター |
| Service Catalog | インフラストラクチャ&プラットフォーム | サービスカタログとプロビジョニング情報にアクセスします | サービスオファー、プロビジョニング、マネージャー、マネージャーとプロビジョニングの関連付け、リージョンの表示 |
クイックスタート
前提条件
- Python 3.10 以降
- uv パッケージマネージャー
- API 認証情報を持つ HPE GreenLake ワークスペース
設定
すべてのサーバーで、次の HPE GreenLake 認証情報が必要です。
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
MCP クライアントの設定
Claude Desktop
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"
}
}
}
}
その他の MCP クライアント
これらのサーバーは標準の stdio トランスポートを使用しており、MCP 対応の任意のクライアントで動作します。具体的な設定例については、各サーバーの README を参照してください。
ツールモード
すべてのサーバーは、MCP_TOOL_MODE 環境変数を使用して実行時に切り替えられる 2 つの動作モードに対応しています。
静的モード(デフォルト)
- 個別ツール:各 API エンドポイントが専用の MCP ツールになります
- 型安全:コンパイル時検証を備えた明示的なツール定義です
- 検出可能:MCP クライアントのインターフェースに各ツールが個別に表示されます
- 最適な用途:小規模な API と目的を絞ったワークフロー
export MCP_TOOL_MODE=static
動的モード
- メタツール:任意の API エンドポイントを処理できる 3 つの汎用ツールです
list_endpoints- 利用可能な API エンドポイントを検出しますget_endpoint_schema- 詳細なスキーマ情報を取得しますinvoke_dynamic_tool- 実行時検証を行いながら API 呼び出しを実行します
- メモリ効率に優れています:大規模な API でもオーバーヘッドを抑えられます
- 最適な用途:エンドポイントが多数ある大規模な API
export MCP_TOOL_MODE=dynamic
互換性マトリックス
| Python バージョン | ステータス | 備考 |
|---|---|---|
| 3.12 | ✅ 対応 | 推奨 |
| 3.11 | ✅ 対応 | 推奨 |
| 3.10 | ✅ 対応 | 最低バージョン |
アーキテクチャの概要
高レベルアーキテクチャ
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
リクエストフロー
- クライアントリクエスト:MCP クライアントが stdio 経由で JSON-RPC を使用してツール呼び出しを送信します
- 認証:サーバーが OAuth2 を使用して HPE GreenLake で認証します(トークンはキャッシュされ、自動更新されます)
- API 呼び出し:サーバーが認証済みの HTTPS リクエストを GreenLake API に送信します
- レスポンス:サーバーがレスポンスを処理し、MCP プロトコル経由でクライアントにデータを返します
共有コンポーネント
すべてのサーバーで共通のアーキテクチャを使用しています。
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
認証
すべてのサーバーで、自動トークン管理を備えた OAuth2 クライアントクレデンシャルフローを使用しています。
- トークンはキャッシュされ、自動的に更新されます
- スレッドセーフなトークン管理
- 指数バックオフを伴う再試行ロジックを設定可能
ログ記録
サーバーは、MCP プロトコルに準拠した構造化ログを使用します。
- stderr:診断ログ(
GREENLAKE_LOG_LEVELで制御) - ファイルへのログ記録:詳細ログを
~/.hpe/mcp-logs/に任意で記録 - stdout:JSON-RPC メッセージ専用
セキュリティに関する考慮事項
- 読み取り専用アクセス:すべてのサーバーは、設計上、読み取り専用の API アクセスを提供します
- 認証情報の管理:認証情報をバージョン管理にコミットしないでください
- トークンのセキュリティ:OAuth2 トークンはメモリ内にのみキャッシュされます
- ワークスペースの分離:操作は設定されたワークスペースの範囲内に限定されます
- HTTPS のみ:すべての API 通信で TLS 暗号化を使用します
トラブルシューティング
よくある問題
サーバーが起動しない:
- 必要な環境変数がすべて設定されていることを確認してください
uvがインストールされ、依存関係が同期されていることを確認してください- 標準エラー出力で設定エラーを確認してください
認証に失敗する:
- クライアントの認証情報がワークスペースで有効であることを確認してください
GREENLAKE_WORKSPACE_IDが認証情報のスコープと一致していることを確認してください- GreenLake API へのネットワーク接続を確認してください
MCP クライアントの接続に関する問題:
- クライアント設定の
cwdパスが正しいことを確認してください - 手動で実行したときにサーバーが正常に起動することを確認してください
- クライアントログで具体的なエラーメッセージを確認してください
デバッグログ
トラブルシューティングのために、詳細なログ記録を有効にします。
export GREENLAKE_LOG_LEVEL=DEBUG
export GREENLAKE_FILE_LOGGING=true
ログファイルは次の場所に書き込まれます:~/.hpe/mcp-logs/{service-name}/
ヘルプを得る
GitHub の Issue
このプロジェクトの主なサポート窓口はGitHub の Issueです。Issue を報告する際は、以下を含めてください。
- 環境の詳細:OS、Python のバージョン、
uvのバージョン - サーバー名:使用している MCP サーバー(audit-logs、devices など)
- エラーメッセージ:スタックトレースを含むエラー出力全体
- 設定:関連する環境変数の設定(認証情報は含めないでください)
- 再現手順:問題を再現する方法の詳細な説明
Issue を作成する前に
- 既存の Issue を確認する:オープンおよびクローズ済みの Issue を検索します
- トラブルシューティングを確認する:上記のトラブルシューティングセクションを確認します
- デバッグログを有効にする:
GREENLAKE_LOG_LEVEL=DEBUGおよびGREENLAKE_FILE_LOGGING=trueを指定して実行し、詳細なログを収集します - 認証をテストする:GreenLake API に直接アクセスして、認証情報が機能することを確認します
Issue の種類
- バグ報告:予期しない動作、エラー、クラッシュを報告します
- 機能リクエスト:新しい機能や改善を提案します
- 質問:使用方法、設定、アーキテクチャについて確認します
- ドキュメント:ドキュメントの問題を報告したり、改善を提案したりします
リソース
ライセンス
このプロジェクトは Apache 2.0 ライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。