Skip to content

Feature Request: Native LambdaTest Support as a Cloud Provider #104

@ravirajpal

Description

@ravirajpal

Summary

Add native LambdaTest support to wdio-mcp as a cloud provider, following the same pattern as the existing BrowserStack integration. This would allow users to start mobile and browser sessions on LambdaTest real devices without exposing credentials through the AI agent context.


Motivation

Currently, wdio-mcp supports BrowserStack as a cloud provider via:

{
  "provider": "browserstack",
  "platform": "android"
}

The MCP server reads BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY environment variables internally and handles authentication without those credentials ever passing through the AI agent's context (Copilot, Claude, etc.).

LambdaTest users have no equivalent path. The only workaround is to pass credentials explicitly in start_session capabilities:

{
  "appiumUrl": "https://<LT_USERNAME>:<LT_ACCESS_KEY>@mobile-hub.lambdatest.com/wd/hub",
  "capabilities": {
    "LT:options": {
      "username": "<LT_USERNAME>",
      "accessKey": "<LT_ACCESS_KEY>"
    }
  }
}

This creates two problems:

  1. Security — credentials are passed through the AI agent's context and sent to the AI provider's backend (GitHub Copilot, Anthropic, etc.) as part of the tool call parameters
  2. Usability — the AI agent either asks the user for credentials directly (a security anti-pattern) or requires complex workarounds (wrapper scripts, Windows user env vars) just to authenticate

Proposed API

Following the BrowserStack pattern, LambdaTest support should work like this:

{
  "provider": "lambdatest",
  "platform": "android",
  "app": "lt://APP_ID",
  "deviceName": "Pixel 7",
  "platformVersion": "13",
  "reporting": {
    "project": "MyProject",
    "build": "v1.0.0",
    "session": "Login flow"
  }
}
{
  "provider": "lambdatest",
  "platform": "ios",
  "app": "lt://APP_ID",
  "deviceName": "iPhone 15",
  "platformVersion": "17",
  "reporting": {
    "project": "MyProject",
    "build": "v1.0.0",
    "session": "Checkout flow"
  }
}

The MCP server would read credentials from environment variables internally:

LT_USERNAME=your_username
LT_ACCESS_KEY=your_access_key

And construct the full LambdaTest capability set internally, including:

  • appiumUrl: https://<LT_USERNAME>:<LT_ACCESS_KEY>@mobile-hub.lambdatest.com/wd/hub
  • LT:options with username, accessKey, project, build, name

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions