TestMu AI MCP Server
TestMu AI MCP Server lets developers run, debug, and triage tests using natural language directly from their IDE (Cursor, Claude, GitHub Copilot & other MCP…
What it can do
- Upload App: Uploads an app to LambdaTest for mobile testing and displays upload status.
- GenerateHyperExecuteYAML: Generates a HyperExecute YAML configuration for running tests on LambdaTest's HyperExecute platform. REQUIRED fields: project (language, framework) and testing (testDiscovery
- AnswerHyperExecuteQuery: Answers questions about HyperExecute features, configuration, usage, troubleshooting, and best practices by searching through documentation.
What data it sees
Do you need an account
No: the server works without sign-in
TestMu AI MCP Server lets developers run, debug, and triage tests using natural language directly from their IDE (Cursor, Claude, GitHub Copilot & other MCP clients).
Tools:
- HyperExecute — test orchestration + YAML config
- Automation — debug test failures via logs
- SmartUI — visual regression analysis
- Accessibility — WCAG / a11y checks
- Test Manager — AI test-case generation
Endpoint: https://mcp.lambdatest.com/mcp (OAuth). Docs: https://www.testmuai.com/support/docs/testmu-mcp-server/
How to connect
How to connect TestMu AI MCP Server to Claude
The server address to paste into Claude settings:
https://testmu-mcp--rahulj.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect TestMu AI MCP Server to ChatGPT
The server address to paste into ChatGPT settings:
https://testmu-mcp--rahulj.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect TestMu AI MCP Server to Cursor
The server address to paste into Cursor settings:
https://testmu-mcp--rahulj.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| upload_app | Uploads an app to LambdaTest for mobile testing and displays upload status. |
| generateHyperExecuteYAML | Generates a HyperExecute YAML configuration for running tests on LambdaTest's HyperExecute platform. REQUIRED fields: project (language, framework) and testing (testDiscovery.command, testRunnerCommand) All other fields are OPTIONAL. Supports multiple languages and frameworks: - JavaScript/TypeScript: Playwright, Cypress, WebDriverIO, Puppeteer, Taiko - Python: Pytest, Behave, Robot Framework - Java: TestNG, JUnit, Cucumber - Ruby: RSpec, Capybara - C#: NUnit, xUnit, MSTest - Mobile (ONLY use appTesting for these): XCUI (iOS), Espresso (Android), Appium Features: - Smart framework defaults for common configurations - Input validation with security checks - Caching and artifact upload configuration - Git integration via sourcePayload - Mobile app testing support (via optional appTesting field) NOTE: For web automation (Selenium, Playwright, Cypress, etc.), do NOT include appTesting field. |
| answerHyperExecuteQuery | Answers questions about HyperExecute features, configuration, usage, troubleshooting, and best practices by searching through documentation. |
| getHyperExecuteJobInfo | Fetches and displays information about a HyperExecute job including status, test results, and progress. |
| getHyperExecuteJobSessions | Fetches and displays session information for a HyperExecute job. |
| getAccessibilityReport | Fetches accessibility report for URLs |
| analyzeAppViaTunnel | Analyzes a locally running app for accessibility via LambdaTest tunnel. |
| buildLocalAppForAnalysis | Builds the application from codebase, serves it locally, and analyzes accessibility issues. |
| getSmartUIResources | Gets resources for a SmartUI comparison |
| summarizeSmartUIPixelDiff | Summarizes SmartUI pixel differences |
| summarizeSmartUILayoutDiff | Summarizes SmartUI layout differences |
| summarizeSmartUIDomDiff | Summarizes SmartUI DOM differences |
| analyzeSmartUIHumanDiff | Analyzes SmartUI differences from a human perspective |
| analyzeSmartUIRun | Analyzes a SmartUI test run |
| getAutomationTestDetails | Fetches detailed information about an automation test by ID |
| getAutomationTestCommandLogs | Fetches command logs for a specific automation test |
| getAutomationTestNetworkLogs | Fetches network logs for a specific automation test |
| getAutomationTestBrowserConsoleLogs | Fetches Browser Console logs for a specific automation test. Note: Not available for mobile app automation tests. |
| getAutomationTestSeleniumLogs | Fetches Selenium logs (web), Appium logs (mobile/Appium), or instrumentation logs (mobile/XCUI/Espresso) for a specific automation test. Automatically detects XCUI and Espresso tests and fetches the correct log type. |
| automationQuery | Unified tool for querying LambdaTest automation resources: builds, sessions, tests, and logs. Supports listing builds, getting build details, deleting/updating/stopping builds, listing sessions in a build, fetching test details, and retrieving test logs (command, network, console, selenium, instrumentation). Use logType "instrumentation" for XCUI and Espresso test logs. |
| triggerSuiteRun | Triggers a phone call test run for a specific suite. This will initiate phone calls for all scenarios configured in the suite. |
| getSuiteOverview | Gets comprehensive suite overview for a project including run counts, latest status, scores, schedule information, and active calls. |
| getSupportedPlatforms | Retrieve all supported browser and OS combinations available on LambdaTest (3000+ options). Use this to discover valid values for os, browser, version when setting up test configurations. |
| listTunnels | Retrieve all active LambdaTest tunnel connections for the account. Useful for checking which tunnels are running before starting a new one or debugging local testing connectivity. |
| stopTunnel | Terminate a specific active tunnel connection by tunnel ID. Use this to clean up tunnels that are no longer needed. |
| deleteSession | Permanently delete a specific automation test session from LambdaTest by session ID. |
| updateSession | Update the name or pass/fail status of a test session. Use status_ind to mark tests as passed, failed, error, or skipped from your test framework. |
| stopSession | Stop an active running test session on LambdaTest. |
| getSessionScreenshots | Retrieve command-by-command screenshots captured during a test session. Returns screenshot URLs for each step. |
| getSessionVideo | Retrieve the video recording URL for a completed test session. |
| getSessionV2CommandLogs | Retrieve v2 command execution logs for a test session. Returns structured JSON with enhanced detail compared to v1 logs. |
| getSessionV2SeleniumLogs | Retrieve v2 Selenium/WebDriver grid request and response logs for a test session. |
| postSessionExceptions | Upload exception/error logs from the client machine for a test session. Use this to attach assertion failures or unexpected errors to a session. |
| postSessionAssertions | Upload assertion results for a test session. Use this to attach test assertion outcomes to a session for reporting. |
| postTestExceptions | Upload exception logs for a specific test (by test ID) rather than by session ID. |
| getLiveSessionLogs | Stream live logs from an active test session in real time. |
| getOrgConcurrency | Retrieve the current concurrency usage and limits for the organization on web automation (Selenium/Cypress). |
| getScreenshotTestResult | Retrieve the results and screenshot URLs for a completed or in-progress screenshot test. |
| stopScreenshotTest | Stop an active screenshot test before it completes. |
| getAnalyticsData | Retrieve analytics and test metrics data for the organization including build counts, pass/fail rates, and usage statistics. |
| getFlakyTests | Retrieve a list of flaky tests — tests that pass and fail intermittently — to help identify unstable test cases. (UNDOCUMENTED - may change without notice) |
| getTestTrends | Retrieve test execution trends over time including pass rates, failure rates, and execution counts. (UNDOCUMENTED - may change without notice) |
| getAnalyticsErrors | Retrieve aggregated error data and failure analysis across test sessions. (UNDOCUMENTED - may change without notice) |
| getPerformanceTestResult | Retrieve the results of a completed performance test including Core Web Vitals, load times, and performance scores. |
| uploadPrerunFile | Upload a prerun script or file to LambdaTest. Prerun files execute before the test starts on the remote machine. |
| deletePrerunFile | Delete an uploaded prerun file by stored LambdaTest file path. |
| uploadUserFile | Upload a user file to LambdaTest storage. User files can be referenced in test scripts during execution. |
| deleteUserFile | Delete an uploaded user file by stored LambdaTest file path. |
| listUploadedApps | Retrieve all apps uploaded to LambdaTest for mobile testing. Use type=android/ios for real devices, emulator/simulator for virtual devices. |
| deleteUploadedApps | Delete one or more uploaded apps from LambdaTest by their app IDs. |
| uploadAppVirtualDevice | Upload an app (APK for emulator, IPA for simulator) to LambdaTest for virtual device (emulator/simulator) testing. |
| listDevicesForTesting | Retrieve all available real devices on LambdaTest for mobile app testing. Filter by region and OS. |
| getMobileCapabilityGenerator | Retrieve capability generation data for mobile automation test configuration. |
| listMobileBuilds | Retrieve all mobile automation builds from the LambdaTest mobile automation API. |
| listMobileSessions | Retrieve all mobile automation sessions from the LambdaTest mobile automation API. |
| getMobileConcurrency | Retrieve the current concurrency usage and limits for mobile automation (real device testing). |
| checkAppProcessingStatus | Check whether an uploaded app has been processed and is ready for features like image injection, network logs, and screenshot unblock on real devices. |
| checkAppProcessingStatusVirtualDevice | Check whether an uploaded app has been processed for feature support on virtual devices (emulator/simulator). |
| tm_list_projects | List all Test Manager projects the authenticated user is allowed to see. Supports keyword search and pagination. |
| tm_get_test_cases | Find test cases in a project by filters (folder, priority, automation status, type, tags) and/or search (matches test case ID like TC-123, or title; minimum 3 characters) — returns summaries. Filters combine (AND). Pass case_id instead to get one case's full detail (steps, BDD scenarios, field values). |