TestingBot MCP Server
TestingBot's official Model Context Protocol (MCP) server implementation. This server enables AI assistants to interact with TestingBot's testing infrastructure, allowing you to manage tests, browsers, devices, and more through conversational interfaces.
Features
๐ฅ๏ธ Live Testing - Start interactive manual testing sessions on real browsers and devices
๐ Browser & Device Management - Query available browsers and real devices
๐งช Test Management - Create, retrieve, update, and delete tests with comprehensive details
๐ฆ Storage Management - Upload and manage mobile app files (APK, IPA, ZIP)
๐ธ Screenshot Testing - Take cross-browser screenshots
๐๏ธ Build Management - Organize tests into builds
๐ค User Account - View and update account information
๐ฅ Team Management - Manage team settings and team members
๐ Chrome DevTools Protocol - Create CDP sessions for advanced browser automation
๐ Tunnel Management - Manage TestingBot tunnels for local testing
Prerequisites
Node.js >= 18 (recommended: 22.15.0 or later)
TestingBot Account with API credentials
An MCP-compatible client (Claude Desktop, VS Code with Continue, Cursor, etc.)
Installation
Quick Setup
Install the MCP server globally:
Or add to your project:
Configuration
Environment Variables
Set your TestingBot credentials as environment variables:
Or create a .env file in your project:
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
VS Code (with Continue extension)
Add to .continue/config.json:
Cursor
Add to .cursor/mcp.json:
Available Tools
Live Testing
startLiveSession
Start an interactive live testing session on TestingBot. Opens a real browser or mobile device for manual testing.
Parameters:
platformType: "desktop" or "mobile"desiredURL: The URL to opendesiredOS: Operating system (Windows, Mac, Linux for desktop; android, ios for mobile)desiredOSVersion: OS versiondesiredBrowser(desktop only): Browser name (chrome, firefox, safari, edge, ie)desiredBrowserVersion(desktop only): Browser version or "latest"desiredDevice(mobile only): Device name (e.g., "iPhone 14", "Galaxy S23")
Example prompts:
"Start a live testing session on Chrome latest with Windows 11 for https://example.com" "Open https://myapp.com on iPhone 14 with iOS 16 for manual testing"
startDesktopLiveSession
Convenience tool to start a desktop browser live testing session.
Parameters:
desiredURL: The URL to opendesiredOS: Windows, Mac, or LinuxdesiredOSVersion: OS versiondesiredBrowser: chrome, firefox, safari, edge, or iedesiredBrowserVersion(optional): Browser version or "latest" (default: latest)
Example prompt:
"Start desktop live session on Firefox 120 with Mac Monterey for https://example.com"
startMobileLiveSession
Convenience tool to start a mobile device live testing session.
Parameters:
desiredURL: The URL to opendesiredOS: android or iosdesiredOSVersion: OS versiondesiredDevice: Device name
Example prompt:
"Start mobile live session on Galaxy S23 with Android 13 for https://example.com"
Browser & Device Management
getBrowsers
Get list of available browsers and platforms for testing.
Parameters:
type(optional): Filter by "web" or "mobile"
Example prompt:
"Show me all available browsers for testing" "What mobile browsers are available?"
getDevices
Get list of available mobile devices (real devices and simulators).
Example prompt:
"List all available iOS devices" "Show me Android devices for testing"
Test Management
getTests
Retrieve a list of recent tests with pagination.
Parameters:
offset(optional): Pagination offset (default: 0)limit(optional): Number of tests to retrieve (default: 10, max: 100)
Example prompt:
"Show me my last 20 tests" "Get recent test results"
getTestDetails
Get comprehensive details about a specific test including:
Test status, browser, platform, and timing information
Video recording URL and screenshot URLs
Selenium, browser, and Appium logs
Test execution steps with commands and timestamps
Network logs, exception logs, and JS errors
Parameters:
sessionId: The session ID of the test
Example prompt:
"Get details for test session abc123" "Show me the video and logs for test xyz789" "Show execution steps for test abc123"
updateTest
Update test metadata such as name, status, or build.
Parameters:
sessionId: The session ID of the testname(optional): New name for the teststatus(optional): "passed" or "failed"build(optional): Build identifierextra(optional): Additional metadata (JSON string)
Example prompt:
"Mark test abc123 as passed" "Update test xyz789 with name 'Login Flow Test'"
deleteTest
Delete a test by session ID.
Parameters:
sessionId: The session ID of the test to delete
Example prompt:
"Delete test abc123"
stopTest
Stop a running test by session ID.
Parameters:
sessionId: The session ID of the test to stop
Example prompt:
"Stop test abc123"
Build Management
getBuilds
Get a list of builds with pagination.
Parameters:
offset(optional): Pagination offset (default: 0)limit(optional): Number of builds to retrieve (default: 10, max: 100)
Example prompt:
"Show me my recent builds"
getTestsForBuild
Get all tests associated with a specific build ID.
Parameters:
buildId: The build ID
Example prompt:
"Show all tests for build 12345"
deleteBuild
Delete a build and all its associated tests.
Parameters:
buildId: The build ID to delete
Example prompt:
"Delete build 12345"
Storage Management
uploadFile
Upload a local file (APK, IPA, or ZIP) to TestingBot storage.
Parameters:
localFilePath: Path to the file to upload
Example prompt:
"Upload /path/to/app.apk to TestingBot"
uploadRemoteFile
Upload a file from a remote URL to TestingBot storage.
Parameters:
remoteUrl: URL of the file to upload
Example prompt:
"Upload https://example.com/app.ipa to TestingBot"
getStorageFiles
List all files in TestingBot storage.
Parameters:
offset(optional): Pagination offset (default: 0)limit(optional): Number of files to retrieve (default: 10, max: 100)
Example prompt:
"Show me all uploaded apps"
deleteStorageFile
Delete a file from TestingBot storage.
Parameters:
appUrl: The app_url of the file to delete
Example prompt:
"Delete app tb://app123 from storage"
Screenshot Testing
takeScreenshot
Take screenshots of a URL across multiple browsers and platforms.
Parameters:
url: The URL to screenshotbrowsers: Array of browser configurationsbrowserName: Browser name (chrome, firefox, safari, etc.)version(optional): Browser version or "latest"os: Operating system (WIN11, MAC, etc.)
resolution(optional): Screen resolution (default: "1920x1080")waitTime(optional): Seconds to wait before screenshot (default: 5, max: 60)fullPage(optional): Capture full page or viewport (default: false)
Example prompt:
"Take a screenshot of https://example.com on Chrome and Firefox" "Screenshot my homepage on mobile devices"
retrieveScreenshots
Retrieve screenshot results by screenshot ID.
Parameters:
screenshotId: The screenshot ID from takeScreenshot
Example prompt:
"Get screenshots for job abc123"
getScreenshotList
Get a list of all screenshot jobs.
Parameters:
offset(optional): Pagination offset (default: 0)limit(optional): Number of jobs to retrieve (default: 10, max: 100)
Example prompt:
"Show me my recent screenshot jobs"
User Management
getUserInfo
Get current user account information including minutes used, plan details, and limits.
Example prompt:
"Show my account information" "How many minutes have I used?"
updateUserInfo
Update user account information.
Parameters:
firstName(optional): First namelastName(optional): Last nameemail(optional): Email address
Example prompt:
"Update my email to newemail@example.com"
Team Management
getTeam
Get team information including concurrency limits, allowed parallel VMs, and mobile concurrency.
Example prompt:
"Show my team information" "What are my team's concurrency limits?"
getUsersInTeam
List all users in your team with their roles and access levels.
Parameters:
offset(optional): Pagination offset (default: 0)limit(optional): Number of users to retrieve (default: 10, max: 100)
Example prompt:
"Show me all team members" "List users in my team"
getUserFromTeam
Get detailed information about a specific team member by user ID.
Parameters:
userId: The user ID to retrieve
Example prompt:
"Show details for user 12345"
Chrome DevTools Protocol (CDP)
createCdpSession
Create a Chrome DevTools Protocol session for advanced browser automation. Returns a WebSocket URL to connect to the browser.
Parameters:
browserName: Browser name (chrome, firefox, safari, edge, etc.)browserVersion(optional): Browser version or "latest" (default: latest)platform: Operating system platformscreenResolution(optional): Screen resolution (e.g., "1920x1080")name(optional): Session namebuild(optional): Build identifier
Example prompt:
"Create a CDP session on Chrome latest with Windows 11" "Start a CDP session on Firefox 120 for automation"
Tunnel Management
getTunnelList
Get a list of all active TestingBot tunnels. Tunnels allow testing websites behind firewalls or on your local machine.
Example prompt:
"Show me all active tunnels" "List my TestingBot tunnels"
deleteTunnel
Delete an active TestingBot tunnel by ID. This terminates the tunnel connection.
Parameters:
tunnelId: The tunnel ID to delete
Example prompt:
"Delete tunnel 12345"
Usage Examples
Example 1: Running Cross-Browser Tests
Example 2: Managing Mobile App Tests
Example 3: Build Management
Example 4: Team & Tunnel Management
Example 5: CDP Automation
Development
Setup
Commands
Running Locally
Testing with MCP Inspector
Use the MCP Inspector to test tools during development:
Then open http://localhost:5173 in your browser.
Project Structure
Troubleshooting
Authentication Errors
If you see authentication errors:
Verify your credentials at https://testingbot.com/members/user/edit
Ensure environment variables are set correctly
Check that there are no extra spaces in your credentials
Connection Issues
If the MCP server won't connect:
Restart your MCP client (Claude Desktop, VS Code, etc.)
Check the MCP client logs for errors
Verify Node.js version is >= 18
Tool Execution Errors
If tools fail to execute:
Check the server logs for detailed error messages
Verify you have sufficient permissions/quota in your TestingBot account
Ensure all required parameters are provided
Debug Logging
To enable debug logging, set the LOG_LEVEL environment variable:
Or in your MCP client configuration:
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
๐ง Email: support@testingbot.com
๐ Issues: GitHub Issues
๐ Documentation: TestingBot Documentation
Related
This server cannot be installed