Skip to main content
Glama
645,182 tools. Updated 2026-10-06 19:14

"Probot" matching MCP tools:

  • Estimate binary outcome models via maximum likelihood, returning coefficients, diagnostics, and evidence for causal decisions.
    MIT
  • Present a connected game controller to an Android device and set its state. The device sees a REAL controller — a kernel-level input device that native games and apps receive exactly as they would a pad plugged into the phone. HOW TO FIRE INPUT PROPERLY: • One call = ONE frame = one instant in time. A button stays pressed until you send a frame WITHOUT it, so every press needs a matching release frame — keydown then keyup. Press after press just holds them all down. • For anything that should look played rather than stepped — mashing, combos, a stick sweep — pass `frames` instead of calling repeatedly. The sequence plays out device-side at `intervalMs` (default 33 ms ≈ 30 fps). A round trip per frame cannot reach that cadence, so a rapid sequence built from single calls always reads as held buttons. • Alternate press and release inside `frames`: [{buttons:[1]}, {}, {buttons:[1,1]}, {}] is tap A, release, tap A+B, release. • Axes are [leftX, leftY, rightX, rightY], -1..1. Sweep them across frames to roll a stick; omitted axes read as centred. • Confirm with device_gamepad_status. Buttons and axes use W3C standard order, identical to the iOS gamepad tools — the mapping onto whatever the chosen controller reports is done for you. Pick `profile` to match the hardware you want the device to believe is attached; it changes both the reported identity and the button layout, so a game showing on-screen prompts shows the right ones. This is the tool to reach for. device_uhid_gamepad_state is the raw twin — it takes the fixed-format report directly (one profile, rotated bit order) instead of translating from W3C arrays; use it only to send an exact report byte-for-byte.
    ConnectorOAuth
  • Set the files on a file-upload input (<input type="file">) in Safari on an iOS device, WITHOUT opening the device's file picker. This is the only way to test an upload flow end to end on iOS: tapping an upload control opens a native sheet that automation cannot drive. Provide file content inline, or name a file already on the device (see ios_file_push / ios_upload_targets) to have it read from there. Fires the input and change events afterwards so framework bindings and validation run, then reads the input back and reports the file names and sizes the PAGE actually sees — so a silent no-op can't pass as success. Total content limit 2 MB.
    ConnectorOAuth
  • Send a raw DevTools-protocol command to the browser page on a device and return its reply — the escape hatch for capabilities no dedicated tool wraps yet (Emulation, Performance, CSS, Animation, DOM mutation, …). Works on BOTH iOS Safari and Android Chrome, auto-detected from the udid. `method` is "Domain.command" (e.g. "Emulation.setGeolocationOverride"); `params` is that command's parameter object. Scope is the BROWSER — this reaches web content only, never the device or native apps. Prefer a dedicated tool when one exists: they handle setup ordering, lifecycle and teardown that a bare command does not. IMPORTANT, iOS: the two engines do NOT implement the same protocol — Android is full CDP, iOS is WebKit's dialect. Chrome-only domains fail with -32601 "domain was not found" (Accessibility, Emulation, and Page.captureScreenshot are all absent on iOS), and a `*.enable` on iOS reports success without proving the domain exists, so never treat it as a capability probe — probe with a real method.
    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
  • Search a TestRail project for cases whose title contains the given text (case-insensitive substring), walking ALL pages server-side. USE THIS — not testrail_list_cases — to check whether a case already exists before calling testrail_create_case, because it cannot be fooled by a truncated page. Returns only matching cases plus scanned/capReached so a "no matches" answer can be trusted. Narrow with sectionId/suiteId to scan less.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching herb-drug and drug-drug interactions by name, alias, or item ID, and retrieving Permitted Daily Exposure (PDE) reports for active pharmaceutical ingredients. A single stdio process exposes all tools, with credentials only required for the databases each tool uses.
    MIT

Matching MCP Connectors

  • Drive real Android & iOS devices and web browsers from natural language for mobile + web QA. 290+ tools across device control, app management, automation sessions, browser automation, and flow recording / replay. Bearer-auth — get a token at robotactions.com → Profile → API Tokens.

  • Health record rights: 198 countries scored 0 to 100 with sources; the 50 states and DC; real cases.

  • List EVERY case in a TestRail project/suite/section, walking all pages server-side so the caller never handles offsets. Returns compact id+title rows by default because the full form overruns the output limit on real projects — pass compact:false only for a narrow sectionId. Capped at 20 pages (5000 cases); check capReached. If you only need to know whether one specific case exists, use testrail_find_cases instead — it is far cheaper.
    ConnectorOAuth
  • Pre-aggregated automation statistics over a date range: pass/fail/active counts, pass rate, per-platform and per-device breakdowns, the most-failed commands and the slowest ones. USE THIS FOR ANY CHART OR TOTAL — the counts are computed server-side over the full period, so they are correct where tallying automation_sessions_list rows would silently only cover the recent window. The breakdowns map directly onto a pie or bar chart (`ra-chart`). `failureCategories` breaks the window's failed runs down by the same `failureCategory` values automation_session_get returns (app_bug / test_script / environment_device / timing / unknown), plus `unanalyzed` for failed runs nobody has read with automation_session_get yet — this tool never computes new analysis, only tallies what is already cached. Omit the dates for the default period.
    ConnectorOAuth
  • List the Apple TVs reachable from this host, with the name and identifier to address each one by and whether it is already paired. Start here when a remote call reports that a TV could not be found: a TV has to be awake and on this network for its remote to answer, even when the device itself is otherwise reachable. Unpaired TVs need ios_tv_pair_begin first.
    ConnectorOAuth
  • Drag-and-drop on an Android device: hold at (x1,y1) for holdMs to grab, then move to (x2,y2) over durationMs. Distinct from device_swipe (no hold — scroll-style) and device_long_press (no motion — context menus). Use for app-icon reorder, drag-into-folder, slide gestures that need a deliberate grab. Coordinates are PHYSICAL pixels (from page_source bounds).Pass input="hid" to require the virtual touchscreen: the gesture then reaches the app as real kernel input and fails loudly instead of silently falling back to injected input. That strict path used to be device_uhid_drag_drop, which stays callable under its old name.
    ConnectorOAuth
  • Navigate Safari to a URL on an iOS device. If a page is already inspectable, navigates the active tab in place; if Safari has no inspectable page (closed), cold-opens it to the URL (needs Settings → Safari → Advanced → Remote Automation). VERIFIES the resulting URL and returns { navigated, requestedUrl, finalUrl, pageId, method } — never a silent no-op. On success the page it landed on becomes this device's current page, so you can call ios_safari_get_dom / _evaluate / _elements / _console_logs / _capture_network / _cookies straight afterwards WITHOUT pageId and stay on this tab — no ios_safari_list_pages round trip needed. The returned pageId is only needed to come back to this tab after driving a different one. Prefer this over ios_navigate_url for Safari.
    ConnectorOAuth
  • Take a JavaScript heap snapshot of a Safari page on an iOS device and write it to a file on the RDS host, returning { nodeCount, edgeCount, bytes, path }. The file is a V8-format .heapsnapshot that loads directly in Chrome DevTools → Memory → "Load profile", so it can be handed to a human to open. Snapshots are multi-MB, which is why the content is never returned inline. Use it to find what a page is retaining: take one, exercise the leak, take another, and compare nodeCount/edgeCount — a count that climbs and never comes back down across repetitions of the same interaction is the signal. Garbage is collected first by default so unreachable objects do not read as a leak; pass collectGarbage=false only when you deliberately want to measure uncollected garbage. Omit pageId to use the active tab. Requires Web Inspector enabled: Settings → Safari → Advanced → Web Inspector.
    ConnectorOAuth
  • Find one element in a WebDriver session and return the elementId that session_click and session_send_keys take. `using` selects the strategy — "css selector", "xpath", "id", "name", "link text", "partial link text", "tag name" or "class name" — and `value` is the query for it. Returns the FIRST match only, and errors rather than returning empty when nothing matches, so treat an error as 'not on the page yet' and retry after the page settles. Works on browser sessions and on mobile sessions, where the same strategies address native elements. Addressed by sessionId; the coordinate-free equivalents on a real device are device_find_element / ios_find_element (by udid).
    ConnectorOAuth
  • Type text into an element found by session_find_element, addressed by its elementId. It APPENDS — W3C Element Send Keys does not clear the field first, so a second call on the same input concatenates rather than replaces. Clear it yourself (session_execute setting value to an empty string, or a select-all before typing) when you mean to replace. Takes the sessionId that found the element. Works on browser and mobile sessions. Errors when the element is not editable, or when it has gone stale because the page navigated since it was found — re-find it and retry.
    ConnectorOAuth
  • Report feedback about the robot-actions MCP device-control tools THEMSELVES (not about the app under test). Use this to tell the maintainers when a tool was confusing, missing a capability you needed, behaved like a bug, or worked well and confirmed something you were unsure about. Be specific and actionable: name the tool_name, describe the concrete situation/inputs, and what you expected vs. what happened. This call is fire-and-forget — it is not shown to the end user, it only records feedback for maintainers to triage later.
    ConnectorOAuth
  • Type text into the FOCUSED field on an iOS device — tap a text field first. Use \n in text to press the Return/Go key (e.g. "user@example.com\n" to submit). Refuses when nothing is focused instead of reporting a success it cannot back: the device accepts the keystrokes either way, so with no focused field the text goes nowhere and the old behaviour still said it was typed. Pass force:true to send anyway (rare — for surfaces where the active element is not reported). On a device set to direct-input-only this types over the direct input path (no automation session), and the focused-field check above is skipped there since it cannot be checked without one — tap the field first regardless. Otherwise requires an active iOS automation session.
    ConnectorOAuth
  • Update an existing TestRail test case. Any field omitted is left unchanged. ALWAYS confirm with the user via a chat bubble before calling — this writes to the customer's TestRail. IMPORTANT: `labels` is a REPLACE, not a merge. To add a label without losing existing ones, FIRST call testrail_get_case, READ existing labels, MERGE, THEN call this with the full new array.
    Connector
    Destructive
    OAuth
  • Change an Apple TV's volume. Use `up` and `down` — they are the remote's volume keys and are the ones that work. `get` and `set` address an absolute level that a TV connected over HDMI does not have: audio leaves over HDMI, so the television or receiver owns the volume. Measured on tvOS 27, the box accepts the up/down keys while reporting the absolute controls as unavailable, so `get` returning 0 and `set` failing are expected there rather than a fault. Do not build a level slider on `get`. Does not wake the TV: the key goes to whatever owns the volume, and that television can be on while the box sleeps.
    ConnectorOAuth
  • Record a verdict on one automatically-computed failure analysis: confirm it was right, or correct the category it picked. Call automation_session_get first — this only works on a run whose `failureAnalysis.source` is "recorded" (an older, lazily-analysed run has nothing to give feedback on yet). `failureKey` picks which failure on the run when there is more than one (from `failureAnalysis.failures[].failureKey`); omit it on a run with exactly one. Set `verdict` to "correct" to confirm the latest analysis, or "incorrect" plus `correctedCategory` to override it. Feedback is APPEND-ONLY — nothing is ever deleted or edited — and the most recent entry becomes the `effectiveVerdict` the next automation_session_get / automation_report reads return. Only your own runs can be given feedback on, same ownership rule as every other automation_* tool: a foreign session reads as not found.
    ConnectorOAuth
  • List addressable UI elements (resource-id, text, or content-desc present) whose bounding box intersects the given physical-pixel rectangle. Returns each element with its attributes, bounds, center coords, and ranked locator strategies. Sorted smallest-first so the most specific element comes back first. Use to enumerate the contents of a region (bottom nav, dialog, list section) without parsing the full XML.
    ConnectorOAuth
  • Push a base64-encoded file to the device. Allowed destinations: /sdcard/ (user storage) or /data/local/tmp/ (writable scratch dir — frida-server, tcpdump, etc.). Decoded size hard cap 20971520 bytes (20MB). remotePath must contain no shell metacharacters. For APKs, prefer app_install instead. Returns { ok, remotePath, sizeBytes }.
    Connector
    Destructive
    OAuth