Sauce Labs▌

by saucelabs
Analyze test data on Sauce Labs, including urine test results, urinary analysis results, and blood test vitamin B12 for
Basic functionality of the Sauce Labs API, allowing you to query data, analyze test results, and get help with platform usage and debugging!
best for
- / QA engineers running cross-platform mobile tests
- / Development teams monitoring CI/CD test pipelines
- / Test automation debugging and analysis
capabilities
- / Browse 300+ real iOS/Android devices and VMs
- / Retrieve and analyze test job results
- / Monitor build status and test suites
- / Manage uploaded apps and test artifacts
- / Check Sauce Connect tunnel status
- / View account details and team permissions
what it does
Integrates with Sauce Labs cloud testing platform to manage test jobs, browse devices, analyze results, and monitor testing infrastructure through API calls.
about
Sauce Labs is an official MCP server published by saucelabs that provides AI assistants with tools and capabilities via the Model Context Protocol. Analyze test data on Sauce Labs, including urine test results, urinary analysis results, and blood test vitamin B12 for It is categorized under cloud infrastructure.
how to install
You can install Sauce Labs in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
Apache-2.0
Sauce Labs is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
Sauce Labs MCP Server
A Model Context Protocol (MCP) server that provides comprehensive integration with Sauce Labs testing platform. This package includes two complementary MCP servers enabling AI assistants (LLM clients) to interact with Sauce Labs' device cloud, manage test jobs, analyze builds, and monitor testing infrastructure directly through natural language conversations.
Servers
This package provides two separate MCP servers optimized for different use cases:
sauce-api-mcp (Core Server) - Full Sauce Labs API integration for account management, device discovery, job analysis, builds, storage, and tunnels.
sauce-api-mcp-rdc (RDC OpenAPI Server) - Real Device Cloud (RDC) focused server with automated OpenAPI schema discovery and optimized for mobile device testing workflows.
Both servers can be configured simultaneously in your LLM client for comprehensive Sauce Labs integration.
Features
🚀 Core Capabilities
- Account Management: View account details, team information, and user permissions
- Device Cloud Access: Browse 300+ real devices (iOS, Android) and virtual machines
- Test Job Management: Retrieve recent jobs, analyze test results, and debug failures
- Build Monitoring: Track build status, view job collections, and analyze test suites
- Storage Management: Manage uploaded apps and test artifacts
- Tunnel Monitoring: Check Sauce Connect tunnel status and configuration
🔧 Advanced Features
- Real-time Device Status: Monitor device availability and usage across data centers
- Cross-platform Testing: Support for both Virtual Device Cloud (VDC) and Real Device Cloud (RDC)
- Test Analytics: Detailed job information including logs, videos, and performance metrics
- Team Collaboration: Multi-team support with proper access controls
- RDC OpenAPI Integration: Dynamic API discovery for Real Device Cloud endpoints (sauce-api-mcp-rdc)
Prerequisites
- Python 3.10+
pip- Sauce Labs account with API access
- Gemini CLI, Claude Desktop, Goose, or other LLM Client
For Claude Desktop (Mac/Linux) or Gemini CLI
Install the package from PyPI:
pip install sauce-api-mcp
This will install both servers and make their command-line entry points available:
sauce-api-mcp(core server)sauce-api-mcp-rdc(RDC OpenAPI server)
Verify installation:
which sauce-api-mcp
which sauce-api-mcp-rdc
Configuration for LLM Clients
Claude Desktop (Mac/Linux/Windows)
-
Locate your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Find your Python installation's bin directory:
python3 -c "import sys; print(sys.prefix + '/bin')"On macOS with system Python, this is typically:
/Library/Frameworks/Python.framework/Versions/3.12/bin -
Add both servers to your config using the full paths from step 2:
{ "mcpServers": { "sauce-api-mcp-core": { "command": "/path/to/bin/sauce-api-mcp", "env": { "SAUCE_USERNAME": "your-sauce-username", "SAUCE_ACCESS_KEY": "your-sauce-access-key" } }, "sauce-api-mcp-rdc": { "command": "/path/to/bin/sauce-api-mcp-rdc", "env": { "SAUCE_USERNAME": "your-sauce-username", "SAUCE_ACCESS_KEY": "your-sauce-access-key" } } } } -
Restart the client to load the servers.
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"sauce-api-mcp-core": {
"command": "/path/to/bin/sauce-api-mcp",
"env": {
"SAUCE_USERNAME": "your-sauce-username",
"SAUCE_ACCESS_KEY": "your-sauce-access-key"
}
}
}
}
Goose
Add to ~/.config/goose/config.yaml:
sauce-api-mcp-core:
cmd: /path/to/bin/sauce-api-mcp
description: Sauce Labs MCP (Core)
enabled: true
envs:
SAUCE_USERNAME: your-sauce-username
SAUCE_ACCESS_KEY: your-sauce-access-key
type: stdio
sauce-api-mcp-rdc:
cmd: /path/to/bin/sauce-api-mcp-rdc
description: Sauce Labs MCP (RDC)
enabled: true
envs:
SAUCE_USERNAME: your-sauce-username
SAUCE_ACCESS_KEY: your-sauce-access-key
type: stdio
Environment Variables (Alternative)
Instead of adding credentials to config files, you can set them as environment variables:
export SAUCE_USERNAME="your-sauce-username"
export SAUCE_ACCESS_KEY="your-sauce-access-key"
Then omit the env block from your config. Both servers will automatically use these environment variables.
Troubleshooting Installation
"Command not found: sauce-api-mcp"
The entry point script isn't in your PATH. Verify installation and use the full path approach above:
python3 -m pip list | grep sauce-api-mcp
python3 -c "import sys; print(sys.prefix + '/bin/sauce-api-mcp')"
"ENOENT: no such file or directory" in MCP client
The MCP client is using a different Python environment than where you installed the package. Solutions:
-
Use full absolute path (recommended): Update your config to use the complete path shown by
python3 -c "import sys; print(sys.prefix + '/bin/sauce-api-mcp')", not justwhich sauce-api-mcp -
Install in system Python: If you're using a specific Python installation, ensure
pip installuses that same Python -
Alternative: Module invocation (less reliable):
"command": "python3", "args": ["-m", "sauce_api_mcp.main"]
Development Setup
Prerequisites
- Python 3.10+
uvpackage manager (install uv)- Git
Clone and Setup
git clone https://github.com/saucelabs/sauce-api-mcp.git
cd sauce-api-mcp
uv sync
This creates a virtual environment and installs all dependencies in editable mode.
Project Structure
sauce-api-mcp/
├── src/sauce_api_mcp/
│ ├── __init__.py
│ ├── main.py # Core server entry point
│ ├── rdc_openapi.py # RDC OpenAPI server entry point
│ └── shared/ # Shared utilities
├── pyproject.toml # Package configuration & entry points
├── uv.lock # Locked dependencies
└── README.md
Entry Points
The pyproject.toml defines two console scripts:
[project.scripts]
sauce-api-mcp = "sauce_api_mcp.main:main"
sauce-api-mcp-rdc = "sauce_api_mcp.rdc_openapi:main"
When you run uv sync, these become available as commands in the virtual environment.
Development Workflow
-
Activate the virtual environment (optional,
uvcommands work without it):source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Run the servers locally (for testing):
uv run sauce-api-mcp uv run sauce-api-mcp-rdcBoth will output:
Error: This server is not meant to be run interactively— this is correct behavior (they're meant to be called by MCP clients). -
Run with environment variables:
SAUCE_USERNAME=user SAUCE_ACCESS_KEY=key uv run sauce-api-mcp -
Test with your MCP client:
{ "command": "/path/to/sauce-api-mcp/.venv/bin/sauce-api-mcp" }
Running Tests
uv run pytest
uv run pytest -v # Verbose
uv run pytest src/sauce_api_mcp/tests/test_main.py # Specific test
Adding Dependencies
uv add httpx
uv add --dev pytest-asyncio
Now you can ask questions like:
- "Show me my recent test failures"
- "Find available iPhone devices for testing"
- "Analyze the performance of my latest build"
Configuration
Required Environment Variables
- SAUCE_USERNAME: Your Sauce Labs username
- SAUCE_ACCESS_KEY: Your Sauce Labs access key (found in Account Settings)
Optional Configuration
- SAUCE_REGION: Sauce Labs data center region (default: us-west-1)
Getting Your Sauce Labs Credentials
- Log into your Sauce Labs account
- Navigate to Account → User Settings
- Copy your Username and Access Key
- Add these to your Claude Desktop configuration (or set as environment variables)
Available Tools
Account & Organization
- get_account_info - Retrieve current user account information
- lookup_users - Find users in your organization
- get_user - Get detailed user information
- lookup_teams - Find teams in your organization
- get_team - Get team details and member information
- list_team_members - List all members of a specific team
Device Management
- get_devices_status - List all available devices and their status
- get_specific_device - Get detailed information about a specific device
- get_private_devices - List private devices available to your account
Test Jobs
- get_recent_jobs - Retrieve your most recent test jobs
- get_job_details - Get comprehensive details about a specific job
- get_real_device_jobs - List active jobs on real devices
- get_specific_real_device_job - Get details about a specific real device job
- get_specific_real_device_job_asset - Download job assets (logs, videos, screenshots)
Builds
- lookup_builds - Search for builds with various filters
- get_build - Get detailed information about a specific build
- lookup_jobs_in_build - List all jobs within a specific build
Storage
- get_storage_files - List uploaded application files
- get_storage_groups - List app storage groups
- get_storage_groups_settings - Get settings for specific storage groups
Tunnels
- get_tunnels_for_user - List active Sauce Connect tunnels
- get_tunnel_information - Get details about a specific tunnel