Install
$ agentstack add mcp-saucelabs-sauce-api-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Sauce Labs MCP Server
[//]: # (mcp-name: io.github.saucelabs/sauce-api-mcp)
A Model Context Protocol (MCP) server that provides comprehensive integration with the Sauce Labs testing platform. This package includes two complementary MCP servers enabling AI assistants to interact with Sauce Labs' device cloud, manage test jobs, analyze builds, and monitor testing infrastructure 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 Server) — Real Device Cloud (RDC) focused server. Dynamically generates MCP tools at startup from the official Sauce Labs OpenAPI spec using FastMCP with an OpenAPIProvider, so the tool set is always up-to-date without code changes. Includes a small set of handwritten tools for endpoints that need special handling (binary payloads, session lifecycle, app installation polling).
Both servers can be configured simultaneously in your LLM client for full Sauce Labs coverage.
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 centres
- 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
- Dynamic RDC API:
sauce-api-mcp-rdcauto-discovers the latest RDC v2 endpoints from the OpenAPI spec at startup;
the cached spec is used as a fallback when the network is unavailable
- Response shaping: Large API list responses are automatically truncated to keep LLM context budget under control (
configurable via SAUCE_MCP_MAX_RESPONSE_ITEMS)
- File safety: File push/pull operations on devices are restricted to
~/.sauce-mcp/files/to prevent path
traversal
Prerequisites
- Python 3.10+
pip- Sauce Labs account with API access
- Claude Desktop, Gemini CLI, Goose, or another MCP-compatible LLM client
Installation
Install the package from PyPI:
pip install sauce-api-mcp
This installs both servers and registers their command-line entry points:
sauce-api-mcp— core serversauce-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
- Find your Python installation's
bindirectory:
``bash python3 -c "import sys; print(sys.prefix + '/bin')" ``
- Add both servers to your config:
``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" } }, "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 Claude Desktop 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"
}
},
"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"
}
}
}
}
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 export 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 pick them up.
Configuration
Required Environment Variables
| Variable | Description | |--------------------|--------------------------------------------------------| | SAUCE_USERNAME | Your Sauce Labs username | | SAUCE_ACCESS_KEY | Your Sauce Labs access key (found in Account Settings) |
Optional Environment Variables
| Variable | Default | Description | |--------------------------------|-----------|------------------------------------------------------------| | SAUCE_REGION | US_WEST | Data centre region: US_WEST, US_EAST, EU_CENTRAL | | SAUCE_MCP_MAX_RESPONSE_ITEMS | 100 | Maximum list items returned before truncation (RDC server) |
Getting Your Sauce Labs Credentials
- Log into your Sauce Labs account
- Navigate to Account → User Settings
- Copy your Username and Access Key
Troubleshooting Installation
"Command not found: sauce-api-mcp"
The entry point script isn't in your PATH. Use the full path approach:
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. Solutions:
- Use the full absolute path (recommended) — update your config with the path printed by
python3 -c "import sys; print(sys.prefix + '/bin/sauce-api-mcp')", not just which sauce-api-mcp
- Module invocation (fallback):
``json "command": "python3", "args": ["-m", "sauce_api_mcp.main"] ``
Example Prompts
- "Show me my recent test failures"
- "Find available iPhone 16 devices"
- "Analyse the performance of my latest build"
- "Open a session on a Samsung device and install my app"
- "What tunnels do I have running right now?"
Available Tools
Core Server (sauce-api-mcp)
Account & Organisation
| Tool | Description | |---------------------------|------------------------------------------------| | get_account_info | Retrieve current user account information | | lookup_users | Find users in your organisation | | get_user | Get detailed user information | | lookup_teams | Find teams in your organisation | | get_team | Get team details | | list_team_members | List all members of a specific team | | lookup_service_accounts | List service accounts | | get_service_account | Get service account details | | get_my_active_team | Get the active team for the authenticated user |
Device Management
| Tool | Description | |-----------------------|--------------------------------------------------| | get_devices_status | List all devices and their current status | | get_specific_device | Get detailed information about a specific device | | get_private_devices | List private devices available to your account |
Test Jobs
| Tool | Description | |--------------------------------------|-------------------------------------------------| | 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
| Tool | Description | |------------------------|-------------------------------------------------| | lookup_builds | Search for builds with filters | | get_build | Get detailed information about a specific build | | get_build_for_job | Get the build associated with a job | | lookup_jobs_in_build | List all jobs within a build |
Storage
| Tool | Description | |---------------------------------|--------------------------------------------------------------| | get_storage_files | List uploaded application files | | get_storage_groups | List app storage groups | | get_storage_groups_settings | Get settings for a storage group | | upload_file_to_storage | Upload an app file to Sauce Storage | | update_storage_group_settings | Update app group settings (resigning, instrumentation, etc.) |
Tunnels
| Tool | Description | |--------------------------------|----------------------------------------------| | get_tunnels_for_user | List active Sauce Connect tunnels | | get_tunnel_information | Get details about a specific tunnel | | get_current_jobs_for_tunnel | See how many jobs are using a tunnel | | get_tunnel_version_downloads | Get download URLs for Sauce Connect versions |
Test Assets & Logs
| Tool | Description | |------------------------|------------------------------------------------------------| | get_test_assets | Retrieve test artifacts for a VDC job | | get_log_json_file | Get structured test execution logs for a VDC job | | get_network_har_file | Get HAR network capture data with filtering | | filter_har_data | Filter cached HAR data efficiently (avoids re-downloading) |
RDC Server (sauce-api-mcp-rdc)
The RDC server auto-generates tools from the Sauce Labs RDC v2 OpenAPI spec. The full tool list varies as the spec evolves, but the categories below are always present.
Session Management
| Tool | Description | |-----------------------|----------------------------------------------------------------------------------------------| | createSession | Allocate a real device and return an ACTIVE session. Polls until ACTIVE or times out (~55 s) | | listSessions | List current device sessions with optional filtering | | deleteSession | Close a session and release the device back to the pool | | get_session_details | Get full details of a specific session |
Device Discovery
| Tool | Description | |----------------------|--------------------------------------------------------| | listDevices | Browse the full device catalogue with OS/model filters | | list_device_status | Get live availability status of devices |
App Management
| Tool | Description | |----------------------------|--------------------------------------------------------------------| | installApp | Start an app installation on a device (returns an installation ID) | | waitForAppInstallation | Poll installation status — call repeatedly until FINISHED | | launchApp | Launch an already-installed app | | uninstallApp | Remove an app from a device | | list_app_installations | List ongoing or recent app installations | | install_app_from_storage | Install an app from Sauce Storage |
Device Interaction
| Tool | Description | |-------------------------|----------------------------------------------------| | take_screenshot | Capture the current device screen | | open_url_or_deeplink | Open a URL or deep link on the device | | execute_shell_command | Run an adb shell command (Android) | | applyDeviceSettings | Change device settings (orientation, locale, etc.) |
File Operations
| Tool | Description | |-------------------------|-------------------------------------------------------------------------| | push_file_to_device | Upload a local file to the device (restricted to ~/.sauce-mcp/files/) | | pull_file_from_device | Download a file from the device | | listFiles | List files in a device directory | | removeFile | Delete a file from the device | | statFile | Get metadata about a file or directory on the device |
Network & Proxy
| Tool | Description | |----------------------------------------------|------------------------------------------------| | proxy_http | Forward HTTP requests through the device proxy | | startNetworkCapture / stopNetworkCapture | Capture network traffic | | setNetworkProfile / setNetworkConditions | Simulate network conditions | | listNetworkProfiles | List available network profiles | | resetNetworkConditions | Restore normal connectivity |
Appium
| Tool | Description | |---------------------------|---------------------------------------------------------| | `st
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: saucelabs
- Source: saucelabs/sauce-api-mcp
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.