AgentStack
MCP verified Apache-2.0 Self-run

Sauce Api Mcp

mcp-saucelabs-sauce-api-mcp · by saucelabs

MCP Server that models the Sauce Labs API

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add mcp-saucelabs-sauce-api-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Sauce Api Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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-rdc auto-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 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)

  1. 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
  1. Find your Python installation's bin directory:

``bash python3 -c "import sys; print(sys.prefix + '/bin')" ``

  1. 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" } } } } ``

  1. 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

  1. Log into your Sauce Labs account
  2. Navigate to Account → User Settings
  3. 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:

  1. 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

  1. 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.