Skip to main content
Glama
649,985 tools. Updated 2026-10-12 06:50

"A tool for mobile app testing automation" matching MCP tools:

Matching MCP Servers

Matching MCP Connectors

  • City of Mobile GIS — Mobile, Alabama open geospatial data (ArcGIS).

  • Programmatic headless browser sessions: create, interact, browse, and extract - rendered in a real

  • 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) The appTesting field applies to mobile app testing only; web automation (Selenium, Playwright, Cypress, etc.) leaves it out.
    ConnectorOAuth
  • 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) The appTesting field applies to mobile app testing only; web automation (Selenium, Playwright, Cypress, etc.) leaves it out.
    ConnectorOAuth
  • Run a CanaryUsers UX scan on a DEPLOYED URL (your live or preview app — not source code). A flock of AI personas evaluates the page and reports where real users would get stuck, with concrete fixes. Returns AI-ready findings you can act on immediately. Use depth='deep' for the thorough scan that renders the page, checks it VISUALLY on desktop + mobile (catches mobile breakage and layout issues), and clicks through key flows like signup/checkout (slower, ~60-90s, uses one credit); depth='quick' (default) is a fast static check that does NOT see mobile or visual issues — use 'deep' when the user mentions mobile, layout, or visual problems. IMPORTANT: if this returns status 'running' with a scanId, the findings are not ready yet — wait ~30s, then call get_report_markdown(scanId), repeating until it returns the report. Always fetch and present the findings before stopping, then offer to fix the top issues.
    ConnectorNo auth
  • Discover available product features, API/MCP URLs, versions, content limits, and interpretation boundaries before choosing a content tool. Returns product.capabilities.v1 metadata, without fetching stories or checking upstream freshness. Public and read-only; no credentials or arguments. Use latest_stories for recent records or get_health for endpoint compatibility. The mobile app distribution channel remains separately suspended.
    ConnectorNo auth
  • Publish the app to production — call for the first publish, to publish again after changes the user wants live, and to set up a custom domain. Omit domain and the user gets the publish form in the editor. Pass mobile: true whenever the user mentions iOS, Android, TestFlight, App Store, Google Play, or a mobile/native app — with no store account connected that returns a Connect card; with one connected it publishes with the store builds attached. When the project takes payments and its owner has not finished Stripe setup, the publish is refused and a Set up payments card is returned (nothing published): tell the owner to click the button on the card and finish Stripe setup, then call publish_app again. publish_app always publishes live (web, and the mobile app when it is built; payments in Stripe live mode) — never ask the user test or live. Mobile test builds are started by the user on floot.com. Read get_guides('publishing') for modes, inputs, and statuses before your first call.
    Connector
    Destructive
    OAuth
  • Change the iOS device's system language and / or locale (persistent, affects every app). iOS may relaunch SpringBoard to apply the change — expect a 5-10s flicker, and the value can take a few seconds to read back. Pass a BASE language code ("fr", not "fr-CA"): iOS reports a region-qualified language but refuses to set one, so a regional code is split into its base language plus a locale automatically. For per-app testing without changing the whole device, prefer ios_launch_app_in_language.
    ConnectorOAuth
  • Keyword search over the list of places to submit a startup. A place's exact name or website ("Indie Hackers", "indiehackers.com") puts it first. Asking for free ("free", "no cost", "$0") leaves out places that are paid only. Product words ("web app", "SaaS", "AI tool", "mobile app") keep only places that take that kind of product. Kind-of-place words ("launch site", "directory", "community") put places of that kind first. Other words match names, websites, regions, and the list's notes. For example "free launch sites for a web app", "AI tool directories", or "Australia". Returns up to 20 places, best match first, each with id, title, url (its row on submitmystartup.com, for citing), and a one-line summary. A query with no specific words returns the best free places. Use fetch with an id for the full record, and find_directories to shortlist by a founder's product and limits.
    ConnectorNo auth
  • Creates an automation on a perspective. Triggers: per_interview (fires on every completed conversation) or scheduled (daily/weekly, with digest, invite, or insights purpose). Actions: internal insight discovery, webhook, email, or connected provider-backed integrations such as Slack, HubSpot, Gmail, Google Docs, Notion, and Confluence. Execution modes: direct (fast, deterministic, webhook-only) or agent (LLM-powered, required for insights and delivery channels). Behavior: - Each call creates a new automation — even if name/config matches an existing one. - Once enabled, the automation starts firing on real events: per_interview sends on every completed conversation going forward; scheduled sends a real message on the configured cadence (daily/weekly). - For HubSpot, the workspace's HubSpot connection is required — errors with "Could not resolve HubSpot portal ID — please reconnect HubSpot" if not connected. - Webhook channels: do NOT ask the user for the endpoint URL or credentials — neither is accepted through this tool. The automation is created disabled and the response includes configure_url, a web app page where the user sets the URL (and an authentication header if needed). Share that link and ask the user to reply "Done" after saving, then enable the automation via automation_update. - Insight automations use kind "insights", execution_mode "agent", omit channel, and use scheduled purpose "insights" when scheduled. - Errors when the perspective is not found or you do not have access. When to use this tool: - The user wants ongoing notifications on every completed conversation (per_interview). - Building a daily/weekly digest delivered to Slack, email, HubSpot, or a webhook (scheduled). - Running scheduled insight automation which creates insights without external delivery. When NOT to use this tool: - Trying a one-off send before going live — create the automation, then use automation_test (use override_email on email channels to avoid hitting real recipients). - Editing or toggling an existing automation — use automation_update. - Connecting Slack or HubSpot — use integration_manage first; the provider must be connected before slack/hubspot channels work. Example — per-conversation Slack notify (resolve the channel with slack_channel_resolve first, then pass it as resource_id): ``` { "perspective_id": "...", "automation": { "name": "Notify Slack", "trigger": { "type": "per_interview" }, "execution_mode": "agent", "channel": { "type": "composio", "delivery_config": { "provider": "slackbot", "tool_slug": "SLACKBOT_SEND_MESSAGE", "resource_id": "C0123ABCD", "resource_name": "#research" } } } } ``` resource_id is the Slack channel ID or name. The channel is re-verified live on create; an unresolvable channel is rejected. Typical flow: 1. integration_manage (operation: "list"/"connect") → ensure Slack / HubSpot is connected (only needed for those channels) 2. For Slack: slack_channel_search / slack_channel_resolve → find/verify the channel to use as resource_id 3. automation_create → create the automation 4. automation_test (with overrides) → verify delivery before relying on it
    ConnectorOAuth
  • Updates fields on an existing automation. Pass a partial updates object with only the fields you want to change; omitted fields are preserved. Toggling enabled or changing schedule/channel/condition takes effect on the next scheduled run. Direct execution is webhook-only; use agent mode for insight discovery, email, and provider-backed channels. Behavior: - Saves the change to the same automation record. Scheduled automations with an active workflow are restarted on update so the next run picks up the latest config. - Errors when the perspective or automation is not found, or you do not have access. - For HubSpot, the workspace's HubSpot connection is re-checked — errors with "Could not resolve HubSpot portal ID — please reconnect HubSpot" if disconnected. - Webhook channels: do NOT ask the user for the endpoint URL or credentials — neither is accepted through this tool. The stored URL/auth header are preserved when the channel is re-specified, switching to a webhook channel starts disabled, and enabling errors until the URL has been set at configure_url (returned in the response). - For scheduled automations: changes to channel, condition, execution mode, or instruction apply starting from the next run, not the one currently in flight. When to use this tool: - Toggling enabled on or off (also pauses/resumes scheduled sends). - Changing schedule, channel, condition, or instruction on a live automation. When NOT to use this tool: - Removing the automation entirely — use automation_delete. - Verifying a config change actually delivers — follow up with automation_test. - Listing what's configured — use automation_list.
    Connector
    Destructive
    OAuth
  • Start one of the user's automations now, the same as "Run now" in the web app. The AI agent then drives the automation's phones on its own; this returns the run at once with status "queued". Poll get-automation-run-tool with its `id` until `status` is done, failed or stopped, then read `outcome`, `result` and `phone_reports`. A run can be refused (the automation is off, a run is already going, the daily limit is reached, no phone is online, or the agent is unavailable); the error says which. A `tiktok_warmup` automation (see list-automations-tool) has no daily limit and starts one session per phone at once, so this returns the first one already "running" alongside `sessions`, the number started, and `skipped_busy_slots`, the phones left alone because another run already drives them; `payload` is ignored, it has no parameters.
    Connector
    Destructive
    OAuth
  • Run a live comment automation on comments that are **already on the post**: the ones it missed because they came before it was enabled, during an outage, or while another tool handled the account. An automation normally reacts only to new comments. How Meta works: a comment can get one private reply, and only within 7 days. Older comments cannot be reached, and a comment another app already answered by DM is refused by Meta (counted as alreadyReplied, not as a failure). Instagram and Facebook only; top-level comments only. mode preview sends nothing: it reads the newest comments and answers eligible (how many would get the automation now) and skipped by reason (mine, tooOld, keyword, alreadyRan, answered, sameAuthor). One person gets it once: when someone commented several times, only their newest comment is answered (sameAuthor counts the rest). **Always preview first, show the person the numbers, and start only after they confirm**, because a sent message cannot be recalled. mode start queues the job: comments are answered a few at a time (Meta allows 750 private replies per hour per account, shared with the live automation), so a large post takes hours. Read progress in get_automation (pastComments), and see each answered comment in list_automation_runs. mode stop halts a running job; disabling the automation stops it too. By default a comment that already has a reply from the account is skipped (answered) and the trigger's public reply is not posted; includeAnswered and publicReply change that. The automation must be live (automation_not_live); one job per automation at a time (past_comments_running); a next-post automation that has not bound to a post yet has nothing to read (past_comments_no_post).
    Connector
    Destructive
    No auth
  • Permanently deletes an automation. Pauses any scheduled sends first, then removes the automation. Behavior: - DESTRUCTIVE and irreversible — the automation cannot be recovered. No undo. - Errors when the perspective or automation is not found, or you do not have access. Deleting an already-deleted automation errors as well. - If pausing the scheduled sender fails, the deletion is aborted and you'll get success: false with "Failed to stop running workflow. Please try again." — the automation stays intact in that case. When to use this tool: - The user explicitly asked to remove an automation and confirmed. - Cleaning up a misconfigured automation that automation_test repeatedly fails on. When NOT to use this tool: - The user just wants to pause it temporarily — use automation_update with { enabled: false } instead. - You're not sure which automation_id is correct — confirm via automation_list first.
    Connector
    Destructive
    OAuth
  • Set a single environment variable on an app and roll it out. Call this when an app needs plain configuration such as LOG_LEVEL or a feature flag. For secrets (API keys, passwords, tokens) call set_app_secret instead: this tool rejects secret-looking keys.
    ConnectorNo auth