Claude Code plugin for the Kobiton mobile testing platform. Manage devices, upload apps, run automation sessions, and view test results directly from your AI coding assistant.
Make sure you have:
- A Kobiton account — sign up at kobiton.com if you don't have one
- Claude Code installed and working — verify by running
claudein your terminal (install guide) - A workspace folder opened — Claude Code must be launched from a project directory (e.g.
cd my-project && claude)
# add kobiton marketplace
/plugin marketplace add kobiton/automate
# then install the automate plugin
/plugin install automate@kobiton- In Claude Code, type
/mcpto open the MCP server list - Select the kobiton server — a browser window will open for Kobiton login
- Sign in with your Kobiton credentials. Tokens are managed automatically.
The .mcp.json points to the Kobiton MCP server. Authentication is handled via OAuth 2.1 — when you connect to the server through /mcp, Claude Code opens a browser for login.
{
"mcpServers": {
"kobiton": {
"type": "http",
"url": "https://api.kobiton.com/mcp"
}
}
}After installation and authentication, verify the plugin loaded by asking Claude: "List my Kobiton devices". If tools aren't recognized, see Troubleshooting.
For CI/CD pipelines or headless environments that cannot open a browser, use API key auth instead:
- Copy
.mcp.apikey-example.jsonto.mcp.json - Generate an API key at Kobiton Portal > Settings > API Keys
- Set the environment variable:
# Add to ~/.zshrc, ~/.bashrc, or ~/.bash_profile
export KOBITON_AUTH="Basic $(echo -n 'username:apikey' | base64)"- Reload your shell and restart Claude Code.
Note: OAuth and API key auth cannot coexist in a single
.mcp.json. The default config (noheadersblock) uses OAuth via browser login. The API key config uses aheadersblock with${KOBITON_AUTH}. To switch, replace.mcp.jsonwith the appropriate format.
Ask Claude naturally:
- "List my available Android devices"
- "Upload my-app.apk and run tests on the Pixel 6"
- "Show me the results for session 502"
- "Run my Appium test script on the Pixel 6"
| Tool | Description |
|---|---|
listDevices |
List available devices filtered by platform, availability, or group |
getDeviceStatus |
Get real-time status of a specific device |
reserveDevice |
Reserve a device for exclusive testing |
terminateReservation |
Release a reserved device by terminating its reservation |
| Tool | Description |
|---|---|
listSessions |
List test sessions with filters for status, device, platform |
getSession |
Get session details including commands, capabilities, metadata |
getSessionArtifacts |
Get download URLs for video, logs, screenshots, reports |
terminateSession |
Stop a running test session |
| Tool | Description |
|---|---|
listApps |
List uploaded app builds in your organization |
uploadAppToStore |
Upload an app to Kobiton Store (permanent, visible in portal) |
confirmAppUpload |
Confirm uploaded app for tracking record |
getApp |
Get app details and version history |
- run-automation-suite -- Guided workflow that walks you through app upload, device selection, local Appium script execution (Node.js, Python, .NET, Java), and result collection.
Use the run-automation-suite skill to run local Appium test scripts. Claude reads your script, extracts capabilities, confirms the target device, and executes the script locally. Supports Node.js (.js), Python (.py), .NET (.cs), and Java (.java) scripts.
After the plugin is updated upstream, pull the latest version:
/plugin install automate@kobitonTo make sure Claude picks up the changes with no stale cache:
- Run
/reload-pluginsto reload all plugins in the current session - If tools still behave unexpectedly, run
/clearto reset the session context - As a last resort, quit Claude Code and start a new session
Plugin features not working or behaving unexpectedly
Some older versions of Claude Code don't support the plugin features this plugin relies on. Make sure you're on the latest version:
npm install -g @anthropic-ai/claude-code@latestThen restart Claude Code and try again.
"It keeps asking me to open a folder"
Claude Code requires a working directory. Launch it from inside a project folder:
cd my-project
claudeIf you see this prompt repeatedly, make sure you are not running claude from your home directory or root (/).
"Plugin not found in marketplace"
The Kobiton marketplace must be added before installing:
/plugin marketplace add kobiton/automate
/plugin install automate@kobitonIf it still isn't found, check your internet connection and ensure you're running the latest version of Claude Code (claude update).
"claude: command not found"
Claude Code is not installed or not in your PATH.
-
Install: follow the official install guide
-
PATH issue: if you installed via npm, make sure your npm global bin directory is in your PATH:
npm install -g @anthropic-ai/claude-code
Then open a new terminal window and try
claudeagain.
"Nothing happens after install"
The plugin installed but tools don't appear or Claude doesn't recognize Kobiton commands.
- Run
/reload-pluginsto force Claude to pick up the new plugin - Try asking: "List my Kobiton devices"
- If still not working, quit Claude Code entirely and start a fresh session
- Verify
.mcp.jsonexists in the plugin directory — it tells Claude where the Kobiton MCP server lives
"Device not found"
The device may be offline, reserved by another user, or no longer in your device list. Use listDevices with available: true to find currently online devices.
"Upload timeout"
Large app files or slow connections can cause uploads to time out. Retry the upload — pre-signed URLs expire after 30 minutes, so a new URL will be generated automatically.
For additional help, open an issue at github.com/kobiton/automate/issues or ask in #general-discussion on Discord. Feel free to share feature requests. We welcome product feedback and will consider it as we continue to improve the platform.
This plugin connects to the Kobiton cloud API (api.kobiton.com) over HTTPS (TLS 1.2+).
Authentication:
- OAuth 2.1 (default): Claude Code opens a browser for Kobiton login. Short-lived access tokens are stored securely in the system keychain by Claude Code. No credentials are stored in the project.
- API Key (alternative): The
KOBITON_AUTHenvironment variable is sent via theAuthorizationheader on each request. The value is stored only in your shell profile, never committed to the repo.
Data handling:
- The plugin does not store any data locally beyond what Claude Code retains in its conversation context.
- Tool responses (device lists, session details, test results) pass through Claude Code's context window and are subject to Anthropic's Privacy Policy.
- App binaries uploaded via
uploadAppToStoreare sent directly to Kobiton's pre-signed S3 URLs, not through Claude Code.
For details on how Kobiton handles your data, see the Kobiton Privacy Policy and Trust Center.
The tools/ directory contains reference YAML schemas that mirror the MCP server's tool definitions. They are published to S3 for the backend but are not consumed by the plugin at runtime.
# Install dependencies
pnpm install
# Validate manifests and schemas
pnpm run validate
# Run tests
pnpm test
# Build combined tool definitions (for S3 publishing)
pnpm run build