AgentMarketMCP / SKILL 资产档案馆

目录 / Robot Actions

MCP 需 API Key 未评级 已上架

Robot Actions

Drive real Android & iOS devices and web browsers from natural language for mobile + web QA. 145+ MCP tools across device control, app management, automation sessions, browser automation, and flow recording / replay. **Auth required**: get an API token from your Robot Actions account → Profile → API Tokens, then paste it with the `Bearer ` prefix into the `apiToken` field when installing. **Sign up**: <https://www.robotactions.com> (free tier on the shared `test.robotactions.com` tenant; paid customers get a dedicated subdomain). **Source / docs**: <https://github.com/krishtoautomate/robotactions>

该来源不提供完整文件导出(国内平台多为平台内托管),仅存元数据与原链

接入信息

传输形态
http
鉴权方式
需 API Key(需要配置:apiToken)
端点
https://remote-device-server--krishpavulur.run.tools
该服务需要凭证,请按官方文档申请后替换占位符
{
  "mcpServers": {
    "Robot Actions": {
      "headers": {
        "Authorization": "Bearer \u003cYOUR_KEY\u003e"
      },
      "url": "https://remote-device-server--krishpavulur.run.tools"
    }
  }
}

能力清单

工具说明
device_listList available devices (Android and iOS). Shows only free devices and devices currently used by you.
device_infoGet detailed info about a device including physical screen size. device_tap/device_swipe use PHYSICAL pixel coordinates — same as page_source bounds. No scaling needed.
device_screenshotTake a screenshot of a device. Returns the JPEG image PLUS, by default, a compact list of labeled UI elements with their bounds (in device-tap coord space — use directly with device_tap, no scaling). The bundled element list eliminates the second roundtrip to device_page_source and removes visual-estimation guesswork for tap targets that appear in the accessibility tree. Set includeElements=false to skip the page-source fetch and return only the image.
device_page_sourceGet UI hierarchy XML of a device . Bounds are in physical pixel coordinates — use them directly with device_tap/device_swipe (no scaling needed). Supports element filtering by text/class and compact description format.
device_shellExecute a shell command on an Android device and return output
device_terminate_appForce-stop an Android app by package name. Tries the control channel first, falls back to `am force-stop`, verifies with `pidof`, and surfaces diagnostic info if the app persists (e.g. Samsung FGS resurrection). Returns `{ stopped, wasRunning, transport, retryRecommended }`.
device_tapTap at (x,y) coordinates on a device screen. Coordinates are in DEVICE TAP-COORD SPACE (the "Tap-coord space" dims printed in the device_screenshot footer; same space as device_page_source bounds). First call starts a device control session (~3s). COORDINATE SOURCES — in priority order: 1. PRIMARY: device_page_source bounds [L,T][R,B] (or the "Labeled elements" block bundled with device_screenshot) → tap center = ((L+R)/2, (T+B)/2). NO scaling. Pixel-exact. 2. FALLBACK ONLY (element not in page_source — image-only widget / custom Canvas): visual estimate from the screenshot pixels, scaled with the formula below. VISUAL → TAP COORDINATE FORMULA (Android): scale = device_width / rendered_chat_width tap_x = visual_x × scale tap_y = visual_y × scale where `device_width` is the "Tap-coord space" width from the device_screenshot footer and `rendered_chat_width` is the "Image" width from the same footer. Both axes share one scale (aspect preserved). The footer prints concrete values per device — never assume any constant. Skipping the scale on a visual estimate is the #1 cause of taps landing in the wrong place — the agent sees a downscaled image but device_tap expects full-resolution tap-space coords.
device_swipeSwipe from (x1,y1) to (x2,y2) on a device screen. Coordinates are PHYSICAL pixels — same as the bounds in device_page_source (no scaling needed).
device_focus_eventsRead recent Android focus-change events from logcat. Useful AFTER a tap on an input field and BEFORE device_type to verify focus actually landed on the expected element — diagnoses the "type went into the wrong field" race that bites parallel tap+type sequences. Filters to ViewRootImpl (window focus), WindowManager (focus transitions), and InputMethodManager (IME show/hide) events. Returns a short summary line followed by the matching logcat lines (newest last). Empty result = no focus events in the recent window, which usually means the tap did NOT change focus (tap missed, or you tapped a non-focusable element).
device_keySend a keycode to a device. Accepts numeric keycode OR named key (HOME, BACK, ENTER, VOLUME_UP, VOLUME_DOWN, POWER, APP_SWITCH, ESCAPE, DELETE, TAB, SEARCH, MENU). System-policy keys (APP_SWITCH/187, MENU/82, POWER/26) are always sent via shell — they require policy-level handling that the control channel cannot reach. Other keys try the control channel first and fall back to shell on error/timeout.
device_typeType text into the focused field on Android. CRITICAL: call this AFTER device_tap / device_tap_by_text completes — do NOT issue the focusing tap and this type in parallel, or the type will race the focus change and land in the previously-focused field (observed on a banking-app login: username+password concatenated into username box). method="keys" (default): decompose ASCII to keycode events (DOWN/UP with shift) — most reliable; non-ASCII chars (CJK/emoji) auto-fall-back to IME injection for that segment. method="ime": IME injection only — full UTF-8 in one shot, but Samsung IMEs intercept `.`/`@`/`_` as autocomplete/action shortcuts and may trigger system gestures. method="shell": shell `input text` — slowest, and Samsung IME drops `@`/`.`/`_`. Optional clearFirst wipes the field first; pressKey sends a keycode after typing.
device_find_elementFind a UI element on an Android device by visible text or content description. Returns element center coordinates in PHYSICAL pixels — use directly with device_tap (no scaling needed).
device_elements_in_regionList 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.
device_locators_forGenerate ranked locator strategies for a UI element on Android. Pass either coordinates (x, y — picks the smallest containing element) OR a text/contentDesc/resourceId to look up. Returns the same priority-ordered list the UI inspector shows: id, text, content-desc, accessibility selector, XPath. Use these to fill page-object selectors when generating test scripts so you do not have to re-derive them.
device_tap_by_textFind a UI element by text, content-description, or resource-id and tap it. NOT always usable — for elements without stable text/contentDesc/resourceId (image-only icons, custom Canvas widgets, dynamic/localized labels), use `device_tap(x, y)` with bounds from `device_page_source` instead. Both tools are first-class. When multiple nodes share the same text, this tool ranks candidates so an interactive widget (EditText, Button) wins over a passive label (TextView) — pass `resourceId` to pin a specific element. Returns after the tap is dispatched; an additional ~150ms focus-settle wait is included when the matched element is an EditText so a following `device_type` lands in the right field. CRITICAL: call this BEFORE `device_type` sequentially — do NOT issue both in parallel, or the type may race the focus change and write into the previously-focused field.
device_dismiss_recent_appOpen the Recents screen and dismiss an app card. Optionally tap "Close all". Useful for clearing background apps or verifying an app was killed. Sends keycode 187 (APP_SWITCH) shell (policy-gated), waits for the UI to settle, then locates and swipes away the target card. Returns { success, action, ... }.
device_screenControl device screen power state and rotation. action="on": wake the screen if asleep (idempotent — checks current wakefulness first). action="off": put the screen to sleep (idempotent). action="rotate": set orientation to portrait/landscape/portrait-reverse/landscape-reverse; auto-rotation gets disabled so the new orientation sticks. Returns { ok, action, screenState, orientation? }.
device_panelPull down the notification panel, the Quick Settings panel, or collapse open panels. action="notifications": pull down the first panel (notifications). action="settings": pull down Quick Settings (some OEMs require notifications first). action="collapse": close any open panel. Tries control channel first; falls back to `cmd statusbar` shell on error. Returns { ok, action, transport }.
device_file_listList files and directories at a path on the device. Uses the device file-sync protocol (no shell roundtrip). Returns { ok, remotePath, count, entries: [{ name, isDir, size, modTime }] }. Common roots: /sdcard/ (user storage), /sdcard/Download, /sdcard/DCIM. Symlinks are resolved one level.
device_file_pullPull a file from the device. Returns base64-encoded content. Default size cap 5242880 bytes (5MB); pass maxSizeBytes to override up to 20971520 bytes (20MB). Refuses directories and oversized files before transferring. Returns { ok, remotePath, sizeBytes, content (base64) }.
device_file_pushPush 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 }.
device_app_apk_pathsList APK file paths for an installed app via `pm path`. Returns base APK plus any split APKs (config splits, dynamic feature modules). Each entry includes path and sizeBytes — use device_file_pull on individual paths to fetch the bytes (default 5MB cap, raise via maxSizeBytes up to 20MB). Returns { ok, packageName, apks: [{ path, sizeBytes, role: 'base'|'split' }] }.
device_navigate_urlOpen a URL in Chrome on an Android device. Much simpler than manually tapping the address bar. Launches Chrome with the given URL directly.
device_launch_appLaunch an Android app. Accepts a package name (e.g. com.android.chrome) OR a display name (e.g. "Chrome"). Display-name lookup is case-insensitive substring match against installed apps.
device_current_appGet the currently active (foreground) app on an Android device. Returns package name and activity.
device_scrollScroll the screen in a direction on an Android device. Uses video coordinate space automatically. No coordinate math needed.
device_get_browser_urlGet the current URL loaded in Chrome on an Android device. Returns the URL string without needing to parse page source.
device_long_pressLong press at (x,y) on an Android device screen. Triggers context menus, drag handles, and other long-press actions. Coordinates are PHYSICAL pixels (from page_source bounds).
device_drag_dropDrag-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).
device_wait_for_elementPoll the UI until an element with the given text or resource-id appears, or timeout. Returns element coordinates in PHYSICAL pixels (ready for device_tap).
device_scroll_to_elementScroll the screen until an element matching ANY of the provided locators (text, contentDesc, resourceId) appears, then return its coordinates in PHYSICAL pixels. Scrolls up to maxScrolls times.
device_notificationsRead current notifications on an Android device. Returns structured list of active notifications (app, title, text).
device_batteryGet battery status of an Android device (level, charging state, temperature).
device_clipboard_getRead the current clipboard content from an Android device. Reliable on Android 12 and earlier. On Android 13+, both this path and the legacy `cmd clipboard get` path are blocked by the OS (the device-side control process runs as shell, which lacks foreground/READ_CLIPBOARD_IN_BACKGROUND), so this returns an empty-clipboard sentinel rather than the cleartext "No shell command implementation." error. To round-trip text on 13+, set the clipboard via device_clipboard_set and paste it directly — do not rely on reading it back.
device_clipboard_setSet the Android device clipboard via the device control channel. Pass paste: true to have the device inject KEYCODE_PASTE immediately after (built into the device control protocol — no separate Ctrl+V needed). Empty string clears the clipboard.
agent_memory_appendAppend a block to the calling user's persistent agent memory. Use this when the user explicitly says "remember X", "save this", or "note for next time" — DO NOT auto-update on every interaction. Memory is auto-prepended to your system prompt on every chat in this user's account. Cap: 10240 bytes total; over-cap appends return 413. Markdown is encouraged; keep entries terse and factual (preferences, project context, references), not verbose.
agent_memory_replaceReplace the entire memory file for the calling user. USE SPARINGLY — append is the safer primary. Only call replace when memory has drifted wrong, accumulated stale entries, or the user asks for a clean rewrite. Cap: 10240 bytes; over-cap calls return 413.
device_record_startStart a screen recording on an Android device. Recording subscribes to the per-device shared device control session (same session that powers live UI streaming and MCP control — never a duplicate device control process). H.264/H.265 video frames are remuxed server-side into an mp4 on the server host. No on-device storage, no FLAG_SECURE limits, no 180 s on-device recorder cap. The recording auto-stops after maxDurationSec (default 300, max 600) so a forgotten stop call cannot fill disk indefinitely. Returns a recordingId to pass to device_record_stop. Only one recording per device at a time.
device_record_stopStop a screen recording started by device_record_start. Closes the remux pipeline cleanly so the mp4 has a valid moov atom. Returns hostPath (already on the server host), sizeBytes, durationMs, and the negotiated codec/resolution.
ios_record_startStart a screen recording on an iOS device. Captures the per-device MJPEG broadcast and remuxes server-side into an H.264 mp4 written under /recordings/. An iOS session must already be running (call ios_start_session first). The recording auto-stops after maxDurationSec (default 300, max 600) so a forgotten stop call cannot fill the disk. Returns a recordingId to pass to ios_record_stop. Only one recording per device at a time.
ios_record_stopStop an iOS screen recording started by ios_record_start. Sends SIGTERM to the remux pipeline so the mp4 has a valid moov atom. Returns hostPath, sizeBytes, durationMs, and codec.
ios_record_cleanupDelete a finished iOS recording mp4 from disk. Pass the httpPath returned by ios_record_stop. Idempotent — deleting a non-existent file is not an error. Refuses to delete recordings that are still being written (call ios_record_stop first).
device_network_infoGet network info from an Android device: WiFi SSID, IP address, and signal strength.
device_list_appsList installed apps on an Android device. Optionally filter to user-installed apps only.
device_uninstall_appUninstall an app from an Android device by package name.
device_clear_app_dataClear all data and cache for an app on an Android device. Equivalent to "Clear Storage" in Settings.
device_set_locationMock GPS coordinates on an Android device for testing location-aware apps. Uses a bundled mock-location helper service (Apache-2.0, auto-installed on first call). API 26+. Scope: every app that reads LocationManager / FusedLocationProviderClient sees the mock fix; apps that check Location.isFromMockProvider (banks, ride-share, Pokémon GO) will detect it and refuse — that's an OS-level signal we can't hide.
device_clear_locationStop mock GPS on an Android device. Counterpart to device_set_location — the helper service stops pushing mocked fixes and apps fall back to the real GPS / network provider.
device_launch_app_in_languageLaunch an Android app forced into a specific language / locale without changing the device's system settings. Requires Android 13+ (API 33). Uses the per-app LocaleManager API via `cmd locale set-app-locales`. The tool force-stops the app first so cold launch picks up the new locale. Override persists until cleared (or until the app is uninstalled).
device_set_device_languageChange the Android device's system language and locale (persistent, affects every app, survives reboot). Uses a bundled locale-change helper with reflection into ActivityManagerNative.updateConfiguration. For per-app testing without changing the whole device, prefer device_launch_app_in_language. Caveats: Samsung One UI / MIUI may re-apply their own locale after a few seconds; Android 14+ requires hidden_api_policy=1 (set automatically); MDM-managed devices may refuse the CHANGE_CONFIGURATION grant.
device_clear_app_localeDrop the per-app locale override on an Android app so it falls back to the device system language. Counterpart to device_launch_app_in_language. Requires Android 13+.
device_toggle_wifiEnable or disable WiFi on an Android device.
device_toggle_bluetoothEnable or disable Bluetooth on an Android device.
ios_start_sessionStart a iOS automation session on an iOS device . Must be called before any iOS control commands. Takes ~10-30s to launch.
ios_end_sessionEnd a iOS automation session on an iOS device, releasing resources.
ios_screenshotTake a screenshot of an iOS device. Returns base64 PNG image. Requires an active iOS automation session (auto-starts if needed).
ios_mjpeg_screenshotTake a fast screenshot of an iOS device via MJPEG stream. Returns JPEG image. Much faster than ios_screenshot (slow path). Requires an active iOS automation session.
ios_page_sourceGet the UI hierarchy (page source) of an iOS device. Default format is "description" — a compact, readable summary of visible named elements (type, label, position). Use "xml" for the full hierarchy. Requires an active iOS automation session (auto-starts if needed).
ios_window_sizeGet the screen width of an iOS device from the iOS automation session. Use these dimensions for tap/swipe coordinates. Requires an active iOS automation session.
ios_tapTap at (x,y) on an iOS device screen. Coordinates are in physical screen points. Requires an active iOS automation session.
ios_swipeSwipe from (x1,y1) to (x2,y2) on an iOS device screen. Coordinates are in physical screen points. Requires an active iOS automation session.
ios_long_pressLong press at (x,y) on an iOS device screen. Triggers context menus, peek/pop, drag handles. Distinct from ios_swipe (has motion) and ios_drag_drop (hold + motion). Coordinates are screen points. Requires an active iOS automation session.
ios_drag_dropDrag-and-drop on an iOS device: hold at (x1,y1) for holdMs to grab, then move to (x2,y2) over durationMs. Distinct from ios_swipe (no explicit hold). Use for home-screen icon reorder, drag-into-folder, slide-to-confirm. Coordinates are screen points. Requires an active iOS automation session.
ios_send_keysType text on an iOS device. The keyboard must be visible (tap a text field first). Use \n in text to press the Return/Go key. Requires an active iOS automation session.
ios_press_buttonPress a hardware or keyboard button on an iOS device. Hardware: home, volumeUp, volumeDown. Keyboard submit: return, go, done, search. Editing: backspace (delete-left), delete (delete-right alias — iOS soft keyboard treats both the same in most contexts). Whitespace: tab. Requires an active iOS automation session. Note: for reliable backspace, ensure the soft keyboard is actually raised (visible) before pressing — a tap that visually focuses a field may not yet have raised the keyboard, in which case key events are dropped.
ios_lock_statusCheck if an iOS device screen is locked. Requires an active iOS automation session.
ios_unlockUnlock an iOS device screen. Requires an active iOS automation session.
ios_active_appGet the currently active (foreground) app on an iOS device. Returns bundleId, name, and pid. Requires an active iOS automation session.
ios_orientationSet the screen orientation of an iOS device. Requires an active iOS automation session.
ios_set_pasteboardSet the clipboard (pasteboard) content on an iOS device. Requires an active iOS automation session.
ios_terminate_appTerminate an app on an iOS device. If no bundleId provided, terminates the current foreground app. Requires an active iOS automation session.
ios_settingsGet or update iOS automation settings on an iOS device. Call without settings to get current values. Pass settings object to update. Requires an active iOS automation session.
ios_navigate_urlNavigate Safari (or any open browser) to a URL on an iOS device. Handles URL bar tap, clear, type, and submit automatically. Much faster than manually tapping the URL bar. Requires an active iOS automation session (auto-starts if needed).
ios_find_elementFind a UI element on an iOS device by its accessibility label or text. Returns the element center coordinates (x, y), bounds, and which strategy matched. Requires an active iOS automation session (auto-starts if needed).
ios_tap_by_labelFind a UI element by label and tap it in one call. Eliminates the need to fetch page source and calculate coordinates. Requires an active iOS automation session (auto-starts if needed).
ios_scroll_to_elementScroll the screen until a UI element with the given label becomes visible, then return its coordinates. Eliminates multi-swipe guesswork for off-screen content. Requires an active iOS automation session (auto-starts if needed).
ios_dismiss_keyboardDismiss the software keyboard on an iOS device if it is visible. Requires an active iOS automation session (auto-starts if needed).
ios_get_browser_urlGet the current URL loaded in Safari on an iOS device. Returns the URL string. Requires an active iOS automation session (auto-starts if needed).
ios_device_infoGet detailed device info from an iOS device (no automation session required). Returns activation state, serial, product type, iOS version, etc.
ios_batteryGet battery status of an iOS device (capacity, charging state). No automation session required.
ios_list_appsList all installed apps on an iOS device. No automation session required.
ios_install_appInstall an IPA or .app on an iOS device. No automation session required.
ios_uninstall_appUninstall an app from an iOS device by bundle ID. No automation session required.
ios_launch_appLaunch/activate an app on an iOS device by bundle ID. Uses iOS automation activate if a session is active, falls back to the direct iOS transport.
ios_kill_appKill an app on an iOS device by bundle ID, process ID, or process name. No automation session required.
ios_fast_screenshotTake a screenshot of an iOS device (no automation session required). Returns PNG image. Alternative to ios_screenshot when the iOS automation session is not running.
ios_set_locationSet the iOS device's GPS location for testing location-aware apps. Works on physical devices (iOS 16.4+) via the bundled iOS automation agent's simulated-location route. Coordinates persist until the device reboots or ios_clear_location is called. PREREQ: On the device, grant the iOS automation agent app Location Services permission (Settings → Privacy & Security → Location Services → automation runner → While Using App). Without this, the simulated value is cached server-side but apps on the device still see zero coordinates. SCOPE: only affects apps that read CoreLocation (CLLocationManager, Safari navigator.geolocation). Does NOT affect apps using IP-based geolocation, Wi-Fi/cell-tower triangulation, or anti-fraud detection paths.
ios_clear_locationClear the simulated GPS location so the iOS device returns to using its real CoreLocation fix. Counterpart to ios_set_location.
ios_get_locationRead the iOS device's current GPS location. Returns the simulated value when ios_set_location is active, otherwise the device's real CoreLocation fix.
ios_launch_app_in_languageLaunch an iOS app forced into a specific language / locale, without changing the device's system settings. Useful for QA testing app localization (e.g. open the app in Spanish without flipping the whole device to Spanish). Override is per-launch — relaunching the app outside this tool reverts to system language. The target app must use NSLocalizedString / Bundle.main.localizedStringForKey at runtime (modern apps do; some legacy apps cache locale on first cold launch — kill via ios_kill_app and re-call this tool to force re-read).
ios_set_device_languageChange the iOS device's system language and / or locale (persistent, affects every app). Uses go-ios `lang` under the hood. iOS may relaunch SpringBoard to apply the change — expect a 5-10s flicker. For per-app testing without changing the whole device, prefer ios_launch_app_in_language.
ios_diagnosticsGet device diagnostics (battery, HDMI, WiFi) from an iOS device. No automation session required.
ios_crash_listList crash reports on an iOS device. No automation session required.
ios_psList running processes on an iOS device. No automation session required.
ios_rebootReboot an iOS device. WARNING: This will restart the device. No automation session required.
ios_shellRun a low-level iOS device-management command. Pass the subcommand and optional arguments. No automation session required. Example: subcommand="syslog", args=["--parse"]
session_createCreate a new cross-platform automation session on the testing grid. Works for both web browsers and mobile devices. Returns sessionId and capabilities.
session_quitQuit/delete an active cross-platform automation session
session_listList all active sessions on the testing grid
session_screenshotTake a screenshot of the current session screen. Returns base64-encoded PNG.
session_urlNavigate the browser to a URL
session_find_elementFind an element on the page. Returns elementId for use with click/sendKeys. Strategies: "css selector", "xpath", "id", "name", "link text", "partial link text", "tag name", "class name".
session_clickClick an element by its elementId (from session_find_element)
session_send_keysSend keys (type text) to an element
session_page_sourceGet the page source (HTML for browsers, XML for mobile apps)
session_executeExecute JavaScript in the browser context. Returns the script result.
session_backNavigate back in the browser/app history
session_get_titleGet the current page title or activity name
playwright_navigateOpen a browser page on the testing-grid web automation proxy and navigate to a URL. Returns a pageId for use with other playwright_* tools.
playwright_screenshotTake a screenshot of the current page. Returns base64 PNG.
playwright_snapshotGet the accessibility tree / page structure as text. Useful for finding elements and understanding page layout.
playwright_get_sourceGet the full HTML source of the current page
playwright_clickClick an element on the page by CSS selector
playwright_typeType text into an element on the page
playwright_evaluateExecute JavaScript in the page context and return the result
playwright_closeClose the browser automation session and release the testing-grid node. Always call this when done.
app_uploadUpload an app file (APK/IPA) to the server. Supports chunked uploads for large files (max 100MB per chunk). For single upload, provide fileName + fileData. For chunked upload, also provide chunkIndex + totalChunks.
app_listList uploaded app files belonging to the current user.
app_installInstall an uploaded app on a device. For Android: installs APK via the Android transport. For iOS: installs IPA . Use app_list to get the file ID first.
app_deleteDelete an uploaded app file from the server. Use app_list to get the file ID.
flow_recording_listList flow recordings belonging to the authenticated user. Returns recording metadata including name, platform, device, step count, and timestamps.
flow_recording_getGet a specific flow recording with all its steps. Verifies the recording belongs to the authenticated user. Returns recording metadata and the ordered list of steps with action types, coordinates, element info, and timestamps.
flow_recording_replayReplay a flow recording on a device. Executes each recorded step in order using element locators with coordinate fallback. Returns a full result summary with per-step pass/fail status. Validation failures are automatically skipped so the replay never blocks.
flow_recording_startStart recording a new scenario on a device. Automatically captures the initial app state and adds an appLaunch step. Returns a recordingId — pass it to flow_recording_action for each step, then flow_recording_save when done.
flow_recording_actionPerform and record one action step on the device. Performs the action (tap, swipe, sendKeys, keyPress, longPress, wait) and records it with automatic page source + element capture. Coordinates are in video / iOS-automation space — use flow_recording_start's windowSize as the reference.
flow_recording_saveSave a completed recording to the database. Waits for any pending background captures (page source + screenshots) to finish before persisting.
flow_recording_cancelCancel and discard an in-progress recording. All steps are lost — use flow_recording_save instead if you want to keep them.
flow_replay_startKick off a flow replay in the background. Returns a replayId immediately — pass it to flow_replay_status to poll progress. Use this instead of flow_recording_replay when you want to monitor live or do other work while the replay runs. Validation failures are auto-skipped (MCP has no interactive input).
flow_replay_statusPoll the status of an in-progress or recently completed replay started via flow_replay_start. Returns current step index, completed step pass/fail, and overall status. Verifies the replay belongs to the authenticated user.
flow_replay_summaryCompact replay summary for analysis. Returns replay metadata (totals, passed/failed/skipped counts) + one row per step with status, action, duration, diff scores, and a short error excerpt. Always small — call this first when analyzing a replay, then use flow_replay_step for full per-step detail.
flow_replay_stepFull data for ONE step of a replay: action type, recorded element + locators + coordinates, recorded page-source XML, live page-source XML captured during replay, locator actually used, scores, error message. Heavy — call selectively for steps you want to diagnose.
flow_replay_step_screenshotReturn the screenshot for one step of a replay as an image you can view directly. kind="recorded" is what was captured during recording; "live" is what the device showed during replay; "diff" is the visual diff overlay. Use selectively — not every step needs visual inspection.
flow_recording_replaysList all replay runs of a saved recording — the run history. Returns one row per replay with id, status, totals, started/completed timestamps, and computed durationMs. Useful for trend analysis (pass rate over time) and finding the most recent failure to drill into. Filtered to the authenticated user.
jira_get_issueFetch a single Jira issue by key (e.g. "ACME-123"). Returns key, browse URL, summary, description, issue type, status, priority, assignee, reporter, labels, project, and timestamps. Uses the calling user's stored Jira credential — does not accept inline credentials. Returns an actionable error if Jira is not configured.
jira_searchSearch Jira issues with a JQL query. Returns up to 50 matching issues with the same projection as jira_get_issue. Narrow the JQL if you need more — the hard cap exists to keep agent context bounded. Common JQL examples: `project = ACME AND status = "In Progress"`, `assignee = currentUser() AND created >= -7d`, `text ~ "login bug"`.
jira_create_issueCreate a new Jira issue. Returns the new issue key and browse URL. ALWAYS confirm with the user before calling — this is a mutating operation. If the user mentions "PROJ-X" they want a comment, not a new issue. Use jira_get_issue first to ensure you have the right project context. Defaults issueType to "Task" if not specified.
azdo_get_work_itemFetch a single Azure DevOps work item by integer ID. Returns id, browse URL, title, description (HTML stripped to plain text), work item type, state, priority, assignee, creator, tags, area path, iteration path, and timestamps. Uses the calling user's stored AzDO credential — does not accept inline credentials. Returns an actionable error if AzDO is not configured.
azdo_search_work_itemsSearch AzDO work items with WIQL (Work Item Query Language — AzDO's equivalent of Jira's JQL). Returns up to 50 matching work items with the same projection as azdo_get_work_item. WIQL examples: `SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active' AND [System.AssignedTo] = @Me`, `SELECT [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.CreatedDate] >= @Today - 7`. The SELECT clause is required but only the IDs are honored — the tool batch-fetches full fields.
azdo_create_work_itemCreate a new AzDO work item. Returns the new id + browse URL. ALWAYS confirm with the user before calling — this is a mutating operation. Defaults workItemType to 'Task'. The 'project' arg is the AzDO project name (often the same as the URL segment after the org). description is plain text and gets wrapped in basic <p> tags for AzDO's HTML field.
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错

侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。