🚀 Sauce Labs MCP Server
Sauce Labs MCP Serverは、Sauce Labsのテストプラットフォームとの包括的な統合を提供するModel Context Protocol (MCP) サーバーです。このサーバーを使用すると、AIアシスタント (LLMクライアント) がSauce Labsのデバイスクラウドと対話し、テストジョブを管理し、ビルドを分析し、テストインフラストラクチャを自然言語で直接監視できます。
✨ 主な機能
🚀 コア機能
- アカウント管理:アカウント詳細、チーム情報、ユーザー権限を表示
- デバイスクラウドアクセス:300以上の実デバイス (iOS、Android) と仮想マシンを閲覧
- テストジョブ管理:最近のジョブを取得、テスト結果を分析、失敗をデバッグ
- ビルド監視:ビルドの状態を追跡、ジョブコレクションを表示、テストスイートを分析
- ストレージ管理:アップロードしたアプリとテストアーティファクトを管理
- トンネル監視:Sauce Connectトンネルの状態と設定を確認
🔧 高度な機能
- リアルタイムデバイスステータス:データセンター全体のデバイスの可用性と使用状況を監視
- クロスプラットフォームテスト:仮想デバイスクラウド (VDC) と実デバイスクラウド (RDC) の両方をサポート
- テスト分析:ログ、ビデオ、パフォーマンスメトリックを含む詳細なジョブ情報
- チームコラボレーション:適切なアクセス制御を備えたマルチチームサポート
📦 インストール
すべての場合において、start_server.sh.template を start_server.sh にリネームし、/path/to/sauce-api-mcp を環境に合った正しい絶対パスに置き換える必要があります。
前提条件
- Python 3.8以上
- APIアクセスが可能なSauce Labsアカウント
- Claude Desktopアプリケーション
Claude Desktop (Mac) 用
-
MCPサーバーをインストールする:
git clone https://github.com/saucelabs/sauce-api-mcp.git
cd sauce-api-mcp
pip install -e .
-
Claude Desktopを設定する:
Claude Desktopの設定ファイルを編集します。
~/Library/Application\ Support/Claude/claude_desktop_config.json
-
Sauce Labs MCPサーバーの設定を追加する:
{
"mcpServers": {
"sauce-labs": {
"command": "python",
"args": ["/path/to/sauce-api-mcp/src/main.py"],
"env": {
"SAUCE_USERNAME": "your-sauce-username",
"SAUCE_ACCESS_KEY": "your-sauce-access-key"
}
}
}
}
-
Claude Desktopを再起動して、新しいMCPサーバーを読み込む。
Claude Desktop (Windows) 用
-
MCPサーバーをインストールする:
# リポジトリをクローンする
git clone https://github.com/saucelabs/sauce-api-mcp.git
cd sauce-api-mcp.git
# 依存関係をインストールする
pip install -e .
-
Claude Desktopを設定する:
Claude Desktopの設定ファイルを編集します。
# 設定ファイルを開く (USERNAMEをWindowsのユーザー名に置き換える)
notepad %APPDATA%\Claude\claude_desktop_config.json
-
Sauce Labs MCPサーバーの設定を追加する:
{
"mcpServers": {
"sauce-labs": {
"command": "python",
"args": ["/path/to/sauce-api-mcp/src/main.py"],
"env": {
"SAUCE_USERNAME": "your-sauce-username",
"SAUCE_ACCESS_KEY": "your-sauce-access-key"
}
}
}
}
-
Claude Desktopを再起動して、新しいMCPサーバーを読み込む。
Claude Code (ターミナル統合) 用
Claude Codeを使用すると、ターミナルから直接Sauce Labs MCPサーバーを使用して、AI支援のテストワークフローを実行できます。
-
Claude Codeをインストールする:
curl -fsSL https://claude.ai/claude-code/install.sh | sh
-
Sauce Labs MCPサーバーをインストールする:
git clone https://github.com/saucelabs/sauce-api-mcp.git
cd sauce-api-mcp
pip install -e .
- LLMクライアントを設定する:
Claude Codeの設定を作成または編集します。
mkdir -p ~/.config/claude-code
code ~/.config/claude-code/config.json
Sauce Labs MCPサーバーの設定を追加します。
{
"mcpServers": {
"sauce-labs": {
"command": "sauce-api-mcp.git",
"env": {
"SAUCE_USERNAME": "your-sauce-username",
"SAUCE_ACCESS_KEY": "your-sauce-access-key"
}
}
}
}
~/.config/goose/config.yaml ファイル内に、以下の拡張を追加します。
sauce-api-mcp:
args: []
bundled: null
cmd: /<path>/sauce-api-mcp/start_server.sh
description: Sauce Labs MCP for API
enabled: true
env_keys: []
envs: {}
name: sauce-api-mcp
timeout: 10
type: stdio
~/.gemini/settings.json ファイル内に、以下を追加します。
"mcpServers": {
"sauce-api-mcp": {
"command": "/Users/marcusmerrell/Projects/sauce-api-mcp/start_server.sh",
"args": []
}
これで、以下のような質問をすることができます。
- "最近のテスト失敗を表示して"
- "テスト用の利用可能なiPhoneデバイスを探す"
- "最新のビルドのパフォーマンスを分析する"
📚 詳細ドキュメント
必要な環境変数
- SAUCE_USERNAME:あなたのSauce Labsユーザー名
- SAUCE_ACCESS_KEY:あなたのSauce Labsアクセスキー (アカウント設定で確認できます)
オプションの設定
SAUCE_REGION:Sauce Labsのデータセンターリージョン (デフォルト: us - west - 1)
SAUCE_API_BASE:カスタムAPIベースURL (エンタープライズアカウント用)
Sauce Labsの資格情報を取得する方法
- Sauce Labsアカウントにログインする
- アカウント → ユーザー設定に移動する
- ユーザー名とアクセスキーをコピーする
- これらをClaude Desktopの設定に追加する
💻 使用例
設定が完了すると、Claude Desktopで自然言語を使ってSauce Labsと対話できます。
デバイス管理
"すべての利用可能なiPhoneデバイスを表示して"
"現在使用中のAndroidデバイスは何ですか?"
"テスト用のSamsung Galaxy S24を探して"
テストジョブ分析
"最近のテストジョブを表示して"
"最後のビルドからの失敗したテストを分析して"
"ジョブID abc123def456の詳細を取得して"
ビルド監視
"最新のビルドの状態はどうですか?"
"今週のすべてのビルドを表示して"
"テストに失敗したビルドを探して"
ストレージ管理
"アップロードしたアプリをリスト表示して"
"アプリのストレージ使用状況を表示して"
"iOSデモアプリを探して"
チームコラボレーション
"私のテストチームには誰がいますか?"
"チームのデバイス割り当てを表示して"
"私の組織内のすべてのユーザーをリスト表示して"
利用可能なツール
アカウントと組織
- get_account_info - 現在のユーザーアカウント情報を取得する
- lookup_users - 組織内のユーザーを検索する
- get_user - 詳細なユーザー情報を取得する
- lookup_teams - 組織内のチームを検索する
- get_team - チームの詳細とメンバー情報を取得する
- list_team_members - 特定のチームのすべてのメンバーをリスト表示する
デバイス管理
- get_devices_status - すべての利用可能なデバイスとその状態をリスト表示する
- get_specific_device - 特定のデバイスの詳細情報を取得する
- get_private_devices - あなたのアカウントで利用可能なプライベートデバイスをリスト表示する
テストジョブ
- get_recent_jobs - 最近のテストジョブを取得する
- get_job_details - 特定のジョブの詳細情報を取得する
- get_real_device_jobs - 実デバイス上のアクティブなジョブをリスト表示する
- get_specific_real_device_job - 特定の実デバイスジョブの詳細情報を取得する
- get_specific_real_device_job_asset - ジョブのアセット (ログ、ビデオ、スクリーンショット) をダウンロードする
ビルド
- lookup_builds - さまざまなフィルターでビルドを検索する
- get_build - 特定のビルドの詳細情報を取得する
- lookup_jobs_in_build - 特定のビルド内のすべてのジョブをリスト表示する
ストレージ
- get_storage_files - アップロードされたアプリケーションファイルをリスト表示する
- get_storage_groups - アプリのストレージグループをリスト表示する
- get_storage_groups_settings - 特定のストレージグループの設定を取得する
トンネル
- get_tunnels_for_user - アクティブなSauce Connectトンネルをリスト表示する
- get_tunnel_information - 特定のトンネルの詳細情報を取得する
- get_current_jobs_for_tunnel - 特定のトンネルを使用しているジョブを表示する
テストアセット
- get_test_assets - テストアーティファクト (ログ、ビデオ、スクリーンショット) を取得する
- get_log_json_file - 構造化されたテスト実行ログを取得する
トラブルシューティング
一般的な問題
"MCPサーバーが見つかりません"
- MCPサーバーの実行可能ファイルのパスが正しいことを確認する
- Pythonがインストールされており、アクセス可能であることを確認する
- すべての依存関係がインストールされていることを確認する
"認証に失敗しました"
- SAUCE_USERNAMEとSAUCE_ACCESS_KEYが正しいことを確認する
- 資格情報が要求された操作に対して適切な権限を持っていることを確認する
- Sauce Labsアカウントがアクティブであることを確認する
"デバイスが見つかりません"
- アカウントがデバイスクラウドにアクセスできることを確認する
- チームのデバイス割り当て設定を確認する
- 正しいデータセンターリージョンを照会していることを確認する
"ジョブが見つかりません"
- ジョブIDが正しく、あなたのアカウントに属していることを確認する
- ジョブがVDCかRDCのどちらからのものかを確認する (異なるエンドポイント)
- ジョブが保持ポリシーにより期限切れになっていないことを確認する
デバッグモード
環境変数を設定してデバッグログを有効にします。
{
"env": {
"SAUCE_USERNAME": "your-username",
"SAUCE_ACCESS_KEY": "your-access-key",
}
}
ヘルプの取得
- Sauce Labsのドキュメント:docs.saucelabs.com
- APIリファレンス:docs.saucelabs.com/dev/api
- サポート:アカウントダッシュボードを通じてSauce Labsのサポートに問い合わせる
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
ロードマップ
このロードマップは、プロジェクトのビジョンと優先事項を示しています。これは常に更新される文書であり、コミュニティからのフィードバックと貢献を歓迎します!私たちはこの計画に沿って進めることを目指していますが、ユーザーのフィードバックや新しい機会に応じて優先事項が変更される場合があります。
協力してくれる方を募集しています!
- CONTRIBUTING.md (CONTRIBUTING.md) ガイドを確認してください。
- Issue Tracker (../issues) で興味深い既存の問題を見つけてください。
- 新しいアイデアがある場合は、新しい問題を作成 (../issues/new/choose) して、私たちと議論しましょう。
🎯 短期 (今後1 - 3か月)
私たちの当面の焦点は、コア開発者体験の向上とコンテキスト管理の改善にあります。
リソースとツール - モデル呼び出しの最適化
- 説明:モデルの応答に対してリソースを全面的に実装します。一部のプロンプトでは、新しいAPI呼び出しを行う代わりにキャッシュされた結果を返すことで、レイテンシとコストを削減します。
- 状態:計画中
🚀 中期 (3 - 6か月)
私たちは、APIエンドポイントの追加とLLMとの全体的な対話の改善に焦点を当てる予定です。また、Sauce Labs APIの変更に追従し、新しい製品ラインが導入された際に対応するために、サーバーを維持します。
変更履歴
v1.0.0
- Sauce Labs APIの完全統合を含む初期リリース
- VDCとRDCプラットフォームのサポート
- 包括的なデバイス管理
- 高度なジョブ分析とビルド監視
- クロスプラットフォームのClaude Desktopサポート
テストコミュニティのために愛情を込めて作られました ❤️
保証の否認
このソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定の目的への適合性、および非侵害性に関するいかなる保証も含まれません。いかなる場合も、作者または著作権者は、契約、不法行為、またはその他の理由により、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連して生じるいかなる請求、損害、またはその他の責任についても責任を負いません。
責任の制限
いかなる場合も、Sauce Labs, Inc.は、ソフトウェアの使用に起因する直接的、間接的、偶発的、特別な、例示的、または結果的な損害 (代替品またはサービスの調達、使用の喪失、データの喪失、利益の喪失、または事業の中断を含むが、これらに限定されません) について、いかなる責任理論に基づいても、契約、厳格責任、または不法行為 (過失を含む) によらず、そのような損害の可能性を事前に通知されていた場合でも、責任を負いません。
一般的な利用
MCPサーバーは、公開されているAPIとの対話を容易にするための無料でオープンソースのツールとして提供されています。ユーザーは、MITライセンスの条件の下で、ソフトウェアを自由に変更および配布することができます。
このソフトウェアを使用することにより、あなたは自らのリスクで使用することを認め、すべての適用される法律および規制への遵守について自ら責任を負うことを認めます。
補償
あなたは、Sauce Labs, inc. ("Sauce Labs")、その役員、取締役、従業員、および代理人を、あなたのこのソフトウェアへのアクセスまたは使用に関連して生じるすべての請求、責任、損害、損失、または費用 (合理的な弁護士費用およびコストを含む) から補償し、免責することに同意します。
これには、以下が含まれますが、これらに限定されません。
- 第三者のLLMプロバイダーとの対話:このソフトウェアが大規模言語モデル (LLM) との対話に公開されているAPIを利用していることを認めます。あなたは、第三者のLLMサービスの使用について独自の責任を負います。これには、LLMプロバイダーの利用規約への遵守と、使用に関連する費用 (トークン料金など) が含まれます。Sauce Labsは、第三者のLLMプロバイダーのコンテンツ、プライバシーポリシー、または慣行に対して制御権を持たず、責任を負いません。
- LLMによって生成されたコンテンツ:あなたは、MCPサーバーと基盤となるLLMの使用を通じて生成、受信、または送信されるコンテンツについて独自の責任を負います。Sauce Labsは、あなたまたは第三者がサーバーを通じて行う通信のコンテンツを承認せず、制御することもできません。
- あなたのコードと変更:MCPサーバーをベースに作成したあらゆる変更、拡張、または派生作品はあなた自身のものであり、それらのパフォーマンスと使用によって生じるあらゆる責任について独自の責任を負います。