mcpField
G
greenlake-service-catalog-mcp

greenlake-service-catalog-mcp

ローカル
github.com/HewlettPackardクラウド・インフラ922 週間前に更新

greenlake-service-catalog-mcp について

greenlake-service-catalog-mcpは、HPE GreenLakeのサービスカタログとプロビジョニング情報にアクセスするMCPサーバーです。AIアシスタントやインフラ担当者向けに、設定済みワークスペースのサービスオファー、プロビジョン、マネージャー、リージョンを読み取り専用で提供します。

主な機能

  1. 01サービスオファーとプロビジョンの表示
  2. 02マネージャーとマネージャー別プロビジョンへのアクセス
  3. 03利用可能なリージョンの表示
  4. 04静的・動的なツールモード

活用シーン

  1. 01利用可能なサービスオファーを確認する
  2. 02プロビジョニング情報とマネージャーを調べる
  3. 03カタログで提供されるリージョンを確認する

MCP 対応

HPE GreenLakeのサービスカタログとプロビジョニング情報をMCPツールとして公開します。stdioトランスポートとOAuth2認証を使い、読み取り専用でAPIにアクセスします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"hewlettpackard-greenlake-service-catalog": {
"command": "uvx",
"args": [
"greenlake-service-catalog-mcp"
]
}
}
}
起動コマンドuvx greenlake-service-catalog-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigreenlake-service-catalog-mcp1.0.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

HPE GreenLake MCP Servers

License Python Versions Code style: ruff Security Policy CI Status

AI アシスタントが HPE GreenLake プラットフォームサービスを利用できるようにする、Model Context Protocol (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>&nbsp; HPE GreenLake Platform &nbsp;</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
リクエストフロー
  1. クライアントリクエスト:MCP クライアントが stdio 経由で JSON-RPC を使用してツール呼び出しを送信します
  2. 認証:サーバーが OAuth2 を使用して HPE GreenLake で認証します(トークンはキャッシュされ、自動更新されます)
  3. API 呼び出し:サーバーが認証済みの HTTPS リクエストを GreenLake API に送信します
  4. レスポンス:サーバーがレスポンスを処理し、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 を作成する前に
  1. 既存の Issue を確認する:オープンおよびクローズ済みの Issue を検索します
  2. トラブルシューティングを確認する:上記のトラブルシューティングセクションを確認します
  3. デバッグログを有効にする:GREENLAKE_LOG_LEVEL=DEBUGおよびGREENLAKE_FILE_LOGGING=trueを指定して実行し、詳細なログを収集します
  4. 認証をテストする:GreenLake API に直接アクセスして、認証情報が機能することを確認します
Issue の種類
  • バグ報告:予期しない動作、エラー、クラッシュを報告します
  • 機能リクエスト:新しい機能や改善を提案します
  • 質問:使用方法、設定、アーキテクチャについて確認します
  • ドキュメント:ドキュメントの問題を報告したり、改善を提案したりします

リソース

ライセンス

このプロジェクトは Apache 2.0 ライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。