sauce-api-mcp
MCP Server that models the Sauce Labs API
Install / Use
claude mcp add saucelabs -- npx -y github:saucelabs/sauce-api-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Skill content
View source on GitHubSauce Labs MCP Server
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
- macOS:
-
Find your Python installation's
bindirectory:python3 -c "import sys; print(sys.prefix + '/bin')" -
Add both servers to your config:
{ "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 justwhich sauce-api-mcp - Module invocation (fallback):
"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
Truncated for display — read the full file on GitHub.
Related Skills
momen-cursurrules-prompt-file
40.6kCursor rules for building custom frontends with Momen.app as headless BaaS with GraphQL API, actionflows, AI agents, and Stripe integration.
semiotic-react-dataviz-cursorrules-prompt-file
40.6kCursor rules for Semiotic data visualization library with 30+ chart types, MCP server, and AI-assisted chart generation.
Agent-Reach
71.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
67.7k🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
