Limrun
Cloud iOS simulators and Android emulators your agent can create, drive, and throw away.
От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные
Что умеет
- Get Agent Skill: Get the full step-by-step procedure for Limrun work the MCP tools do not cover (builds, local files), as an agent skill to follow with the lim CLI. Available skills: limrun-xcode: Bui
- Ios Use: Perform a list of actions on the iOS simulator. When you are instructed to test anything on the screen, always use this tool to perform the actions necessary to achieve the goal. If you need
- Ios App: List, launch, or terminate installed iOS simulator apps. This tool does not install apps. Use it for app inventory and lifecycle operations only.
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Cloud iOS simulators and Android emulators your agent can create, drive, and throw away. Create a device in seconds, pre-install apps, drive it through screenshots and the accessibility tree, and delete it when done.
Список инструментов сервера (15)
Технические названия из tools/list. Нужны только разработчикам.
| get-agent-skill | Get the full step-by-step procedure for Limrun work the MCP tools do not cover (builds, local files), as an agent skill to follow with the lim CLI. Available skills: limrun-xcode: Build and sign iOS apps with lim xcode on a remote Xcode sandbox. limrun-gradle: Build Android APKs with lim gradle on a remote build sandbox. limrun-xcode-bazel: Build iOS apps with Bazel remote build execution on Limrun. limrun-expo-development: Develop and run Expo apps against Limrun simulators and emulators. |
| ios-use | Perform a list of actions on the iOS simulator. When you are instructed to test anything on the screen, always use this tool to perform the actions necessary to achieve the goal. If you need to open a URL or deeplink, always use ios-open-url tool first. To open React Native apps, you must use ios-open-url tool with the publicly available URL that has "exp://" scheme so that it is opened in Expo Go app. Available action kinds are: tap, tapElement, setElementValue, incrementElement, decrementElement, type, pressKey, scroll, wait, toggleKeyboard, openUrl, setOrientation, touchDown, touchMove, touchUp, keyDown, keyUp, buttonDown, buttonUp, deviceInfo, startRecording, stopRecording, discoverStoreKitConfig, clearStoreKitConfig, softReset. The actions will be performed in the order they are listed. stopRecording accepts an optional presignedUrl to upload the completed recording to. If presignedUrl is omitted, this tool returns a download URL with the token in the query string. For element-based actions, prefer selector-based targeting whenever the accessibility tree exposes stable element data. Selector fields are: AXUniqueId, AXLabel, AXLabelContains, type, title, titleContains, AXValue. For tap, use exactly one targeting mode: selector, axUniqueId, or x and y coordinates. The axUniqueId field can use IDs returned by ios-screenshot-and-element-tree, including generated IDs in the annotated tree. An example list of actions: [ { "kind": "tap", "selector": { "AXLabelContains": "Email", "type": "TextField" } }, { "kind": "setElementValue", "selector": { "AXLabelContains": "Email", "type": "TextField" }, "text": "test@example.com" }, { "kind": "tapElement", "selector": { "AXLabel": "Login" } }, { "kind": "wait", "duration": 1000 } ] If you need to open a URL or deeplink, always use ios-open-url tool first. For React Native apps, always use ios-open-url tool to open the app via the "exp://" scheme and make sure the app is running before starting the list of actions. In Expo Go, you can refresh the app by pressing the captial R key twice, e.g. two actions with kind "pressKey" and key "R". The list of actions should be short and concise but when you fill forms, you should use as many actions as necessary to fill the whole form. You can call this tool multiple times to execute a longer list of actions. Depending on how long you expect the screen to change after your actions, add a wait action before calling ios-screenshot-and-element-tree. This tool returns only execution results; use ios-screenshot-and-element-tree when you need the latest visual state. |
| ios-app | List, launch, or terminate installed iOS simulator apps. This tool does not install apps. Use it for app inventory and lifecycle operations only. |
| ios-logs | Fetch the last N combined stdout/stderr log lines for an installed iOS app bundle ID. |
| ios-open-url | Open a URL in the iOS simulator. Always use this tool to open Safari with a URL and apps with deeplinks. The URLs must be publicly available. For example, if you are testing a React Native app, use this tool to open the app via the publicly available URL that has "exp://" scheme so that it is opened in Expo Go app. |
| ios-screenshot-and-element-tree | Get the current screenshot of the iOS simulator screen and the accessibility element tree. Always use this tool before starting to test anything on the screen. The accessibility element tree is a JSON structure describing all UI elements, their types, labels, and positions but it may not contain all the visible elements on the screen. |
| android-use | Perform a list of actions on the Android emulator. When you are instructed to test or interact with anything on screen, use this tool to perform the necessary actions. If you need to open a URL or deeplink, use android-open-url first. To open React Native apps in Expo Go, use android-open-url with the public "exp://" URL first and make sure the app is running before starting the action list. Available action kinds are: tap, setText, pressKey, scrollScreen, scrollElement, findElement, openUrl, startRecording, stopRecording, wait. Actions run strictly in the order they are listed. stopRecording accepts an optional presignedUrl to upload the completed recording to. If presignedUrl is omitted, this tool returns a download URL with the token in the query string. Android selectors must match attributes from the UI hierarchy XML. Use the selector object with these fields: - resourceId: matches the XML "resource-id" attribute - text: matches the XML "text" attribute - contentDesc: matches the XML "content-desc" attribute - className: matches the XML "class" attribute - packageName: matches the XML "package" attribute - index: matches the XML "index" attribute - clickable, enabled, focused: match the corresponding XML boolean attributes - boundsContains: matches any element whose bounds contain the provided x,y coordinate Example XML node: <node index="3" text="Chrome" resource-id="" class="android.widget.TextView" package="app.lawnchair" content-desc="Chrome" clickable="true" enabled="true" focused="false" bounds="[533,1222][706,1422]" /> Example selectors for that node: { "text": "Chrome", "className": "android.widget.TextView", "packageName": "app.lawnchair" } { "contentDesc": "Chrome", "clickable": true } For example if you want to dismiss the developer dialog in Expo Go by clicking "Continue" button, use a tap action like: { "kind": "tap", "selector": { "className": "android.widget.Button", "text": "Continue", } } Prefer selector-based targeting whenever the XML tree exposes a stable element. Combine multiple selector fields to make matches specific. Do not use XML attribute names directly in the selector object; for example use "resourceId" instead of "resource-id" and "contentDesc" instead of "content-desc". For tap, use exactly one targeting mode: - selector: best when the element is present in the XML tree - x and y: only when you already know the exact screen coordinates For setText, prefer selector or coordinates that identify the input field to update. For scrollElement, provide a selector for the container to scroll. Use findElement when you want to check whether a selector matches anything before acting on it. Example action list: [ { "kind": "tap", "selector": { "text": "Chrome", "className": "android.widget.TextView", "clickable": true } }, { "kind": "wait", "duration": 1000 } ] Keep action lists short and focused, but include enough actions to complete the task when filling forms or stepping through a flow. You can call this tool multiple times for longer interactions. If you expect the UI to change after your actions, add a wait action so the returned screenshot and element tree reflect the final state. In Expo Go, you can refresh the app by pressing capital R twice, for example two pressKey actions with key "R". |
| android-open-url | Open a URL or deeplink on the Android instance. |
| android-screenshot-and-element-tree | Returns latest screenshot and Android UI hierarchy snapshot. |
| list-apps | List apps available to be installed in iOS/Android simulators. Use this tool before creating iOS/Android simulators with pre-installed apps so you can select valid app names. |
| create-ios-simulator | Create a cloud iOS simulator and wait until it is ready. Returns the instance ID to pass to the ios-* tools. Pre-install apps by asset name (see list-apps) or public URL. The app must be a simulator build whose ".app" folder is archived into a tar.gz or zip archive. |
| create-android-emulator | Create a cloud Android emulator and wait until it is ready. Returns the instance ID to pass to the android-* tools. Pre-install apps by asset name (see list-apps) or public APK URL. |
| get-instance-status | Get the current state of an instance by ID. |
| list-instances | List the organization's running iOS simulators and Android emulators. |
| delete-instance | Delete an iOS simulator or Android emulator by ID. Call this when you are done with an instance. |