Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MOBILOOP_CONFIGNoPath to a JSON configuration file. Optional; if not set, defaults are used.
MOBILOOP_RUN_IDNoOptional run identifier; artifacts are written under .mobiloop/runs/<id> when set.
APPIUM_SERVER_URLNoThe URL of the Appium server. Defaults to http://127.0.0.1:4723 in trusted mode; in secure mode, it must be set in the host environment.http://127.0.0.1:4723
MOBILOOP_ARTIFACTS_DIRNoPath to a dedicated directory for evidence, logs, screenshots, reports, and flow memory. Defaults to .mobiloop in the workspace root.
MOBILOOP_SECURITY_MODENoSet to 'secure' to ignore project-local config and enforce host-controlled settings, or 'trusted' to allow explicit overrides from config.
MOBILOOP_WORKSPACE_ROOTYesAbsolute path to the mobile app workspace that the MCP server may access.
AGENTIC_MOBILE_MCP_CONFIGNoLegacy fallback for MOBILOOP_CONFIG. New projects should use MOBILOOP_CONFIG.
MOBILOOP_REQUIRE_APPROVALNoSet to 'true' to require approval payloads for high-impact tools (default in secure mode).
AGENTIC_MOBILE_WORKSPACE_ROOTNoLegacy fallback for MOBILOOP_WORKSPACE_ROOT. New projects should use MOBILOOP_WORKSPACE_ROOT.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
code.read_fileA

Read a non-secret file inside workspaceRoot.

code.search_codeB

Search workspaceRoot. Uses ripgrep when available and falls back to a built-in scanner.

code.apply_patchA

[approval required][workspace write][risk:dangerous] Apply a unified diff after validating all touched paths stay inside workspaceRoot and are not forbidden.

code.git_diffC

Return git diff for workspaceRoot.

code.create_branchA

[approval required][workspace write][risk:dangerous] Create and checkout a guarded feature branch. Branch must match allowedBranchPattern.

code.commit_changesA

[approval required][workspace write][risk:dangerous] Commit changes only while on an allowed feature/ai branch. Optionally stage specific non-secret paths.

code.open_prB

[approval required][workspace write][risk:dangerous] Open a pull request with GitHub CLI from the current allowed feature branch.

env.preflightB

Check host/project readiness for Android, iOS, Flutter, React Native, CI, or all environments.

env.compatibility_matrixB

Return supported host/platform requirements for this MCP package.

env.ensure_appiumA

[approval required][workspace write][network][risk:network] Check Appium readiness, optionally install a driver and start a detached Appium server.

build.detect_projectB

Detect Flutter, React Native, or native Android project type.

build.install_dependenciesA

[approval required][workspace write][network][risk:dangerous] Install dependencies for the detected or specified mobile project type.

build.run_lintA

[approval required][workspace write][network][risk:dangerous] Run lint/static analysis for Flutter, React Native, or Android.

build.run_unit_testsA

[approval required][workspace write][network][risk:dangerous] Run unit tests for Flutter, React Native, or Android.

build.build_debug_apkA

[approval required][workspace write][network][risk:dangerous] Build a debug APK and return discovered APK artifact paths.

build.build_release_candidateB

[approval required][workspace write][network][risk:dangerous] Build a release candidate APK. Release signing requirements are delegated to the target project.

build.collect_build_logsB

List build log artifacts emitted by this MCP server.

device.list_devicesA

List Android devices via adb devices -l.

device.start_emulatorA

[approval required][device mutation][risk:dangerous] Start an Android emulator by AVD name. Returns after launching or optional boot wait.

device.stop_emulatorA

[approval required][device mutation][risk:dangerous] Stop an Android emulator through adb emu kill.

device.install_appA

[approval required][device mutation][risk:dangerous] Install or replace an APK on an Android device.

device.uninstall_appB

[approval required][device mutation][risk:dangerous] Uninstall an Android package from a device.

device.clear_app_dataB

[approval required][device mutation][risk:dangerous] Clear app data for an Android package.

device.grant_permissionsB

[approval required][device mutation][risk:dangerous] Grant one or more Android runtime permissions to a package.

device.capture_screenshotC

Capture a PNG screenshot from an Android device into artifacts.

device.pull_logsB

Pull Android logcat into artifacts. Optionally filter by package pid when available.

ios.list_simulatorsA

List available iOS simulators via xcrun simctl.

ios.boot_simulatorA

[approval required][device mutation][risk:dangerous] Boot an iOS simulator and optionally wait until boot completes.

ios.shutdown_simulatorB

[approval required][device mutation][risk:dangerous] Shutdown an iOS simulator.

ios.build_appC

[device mutation][risk:device] Build an iOS simulator app with xcodebuild into MCP artifacts.

ios.install_appB

[approval required][device mutation][risk:dangerous] Install an .app bundle on an iOS simulator.

ios.launch_appA

[approval required][device mutation][risk:dangerous] Launch an installed iOS simulator app by bundle id.

ios.capture_screenshotB

Capture an iOS simulator screenshot into artifacts.

ios.collect_logsC

Collect recent simulator logs into artifacts.

appium.create_sessionA

[approval required][device mutation][risk:dangerous] Create an Appium session. Pass W3C capabilities or raw capabilities object.

appium.delete_sessionC

[approval required][device mutation][risk:dangerous] Delete an Appium session.

appium.observe_screenC

Capture screenshot and page source for the current Appium session, optionally waiting for app UI readiness.

appium.get_page_sourceC

Return raw Appium page source XML.

appium.get_accessibility_treeC

Return a compact accessibility summary parsed from page source.

appium.tap_by_textA

[approval required][device mutation][risk:dangerous] Tap a visible element by text with exact-first matching before contains fallback.

appium.tap_by_accessibility_idC

[approval required][device mutation][risk:dangerous] Tap by accessibility id.

appium.tap_by_resource_idC

[approval required][device mutation][risk:dangerous] Tap by Android resource id or Appium id locator.

appium.tap_coordinatesA

[approval required][device mutation][risk:dangerous] Tap screen coordinates. Use only when semantic locators are unavailable.

appium.type_textC

[approval required][device mutation][risk:dangerous] Type text into an element located by accessibility id, id, xpath, text, or native selector.

appium.swipeC

[approval required][device mutation][risk:dangerous] Perform a touch swipe by coordinates.

appium.go_backC

[approval required][device mutation][risk:dangerous] Send Android/iOS back navigation to the Appium session.

appium.wait_for_visibleC

Wait until a locator becomes visible.

appium.assert_visibleB

Assert that a locator is visible. Returns passed false instead of throwing when not visible.

appium.assert_not_visibleC

Assert that a locator is not visible within timeout.

verify.assert_screen_contains_textC

Assert current Appium page source contains expected text.

verify.assert_no_crash_in_logcatC

Assert logcat or a saved log file has no crash signatures.

verify.assert_appium_session_healthyB

Assert the Appium session and page source are reachable, distinguishing automation failures from app crashes.

verify.assert_api_responseA

[network][risk:network] Call an API and assert status and optional body substrings.

verify.collect_evidenceC

Collect screenshot, page source, and logcat evidence where available.

verify.assert_navigation_reachedC

Assert a navigation target by expected Appium page source text.

verify.assert_accessibility_labelsC

Assert clickable or input-like nodes have a text, label, name, content-desc, or resource-id.

verify.assert_screenshot_diffC

Compare two PNG screenshots and assert the pixel diff ratio is at or below maxDiffRatio.

verify.assert_sqlite_queryB

Run a read-only sqlite query and assert exact output or expected substring.

verify.hash_artifactB

Compute SHA-256 for a workspace artifact or evidence file.

flow.analyze_from_codeC

Infer mobile screens, routes, transitions, and visible text candidates from source code.

flow.generate_test_scenariosC

Generate candidate mobile E2E scenarios from static source-flow analysis for an AI agent to execute/refine.

flow.run_scriptB

[approval required][device mutation][risk:dangerous] Run a high-level JSON flow DSL over an Appium session: waitText, tapText, type, assertText, observe, collectEvidence, back, swipe, checkpoint.

flow.record_checkpointC

[workspace write][risk:write] Record a runtime screen checkpoint from Appium source/session and optional action needed to reach the next checkpoint.

flow.record_test_runA

[workspace write][risk:write] Record the ordered checkpoint ids for a test run. The latest passed run becomes the default replay path.

flow.plan_replayC

Match the current screen against recorded checkpoints and return Appium actions needed to reach a target checkpoint.

flow.replay_to_checkpointB

[approval required][device mutation][risk:dangerous] Auto-advance an Appium session from a previously seen screen to the latest or requested checkpoint.

flow.read_memoryB

Read recorded flow checkpoints, runs, and code-flow analyses.

flow.clear_memoryB

[approval required][workspace write][risk:dangerous] Clear flow memory under artifactsDir. This does not modify app source code.

loop.record_iterationB

[workspace write][risk:write] Append one build-test-verify loop iteration as JSONL evidence.

loop.generate_reportC

[workspace write][risk:write] Generate a Markdown report from recorded iterations.

loop.read_iterationsB

Read recorded loop iterations.

ci.collect_artifact_manifestA

Create a JSON manifest of files under the MCP artifacts directory.

ci.write_github_step_summaryB

[workspace write][risk:write] Append Markdown to GitHub Actions step summary or a workspace fallback file.

ci.comment_prA

[approval required][workspace write][network][risk:dangerous] Create a GitHub PR comment through gh. Uses current PR when prNumber is omitted.

ci.create_github_annotationsA

[workspace write][risk:write] Emit GitHub Actions warning/error annotations from findings.

orchestrator.run_android_validation_loopC

[approval required][device mutation][risk:dangerous] Run build -> install -> Appium scripted test -> verification -> evidence -> loop record for Android.

orchestrator.run_ios_validation_loopC

[approval required][device mutation][risk:dangerous] Run iOS simulator build -> install/launch -> Appium XCUITest scripted test -> verification -> evidence -> loop record.

security.scan_sourceA

Scan mobile source and platform configuration for deterministic security signals without running target code.

security.generate_test_planA

Generate a deterministic mobile security test plan from a source-scan report for an AI or engineer to execute.

security.compare_scansB

Re-run the deterministic source scan and compare it with a baseline report after fixes.

security.release_gateB

Evaluate a source-scan report against a severity threshold before release or merge.

policy.list_toolsC

List effective tool policy metadata for MCP clients and approval gates.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.8/5.0

Scored across 82 tools

Disambiguation2/5

Multiple tools have overlapping boundaries, especially around verification and evidence collection: verify.assert_screen_contains_text and verify.assert_navigation_reached both assert page-source text, while appium.observe_screen, verify.collect_evidence, and device.capture_screenshot all capture screen/evidence data. The many tap variants and several record/report/generate tools also make misselection likely without very careful description reading.

Naming Consistency4/5

Tool names largely follow a consistent snake_case verb-first pattern with namespace prefixes, such as list_devices, build_debug_apk, and assert_visible. Minor deviations like code.git_diff and env.compatibility_matrix are noun-phrase names, and verbs like write/create/run are used somewhat interchangeably, but the overall convention is recognizable.

Tool Count1/5

At 82 tools, the surface is extremely overgrown regardless of the server's broad mobile validation scope. Even accounting for Android, iOS, Appium, build, verification, flow memory, security, and CI, the count far exceeds what an agent can navigate efficiently. Many tools could be consolidated or exposed as parameterized subcommands.

Completeness4/5

The tool set covers the core mobile validation lifecycle well: build, install, launch, automate via Appium, verify, collect evidence, record flows, run security gates, and report to CI. Minor gaps exist, such as no direct Android app launch/stop utility, no iOS uninstall or clear-data operation, and limited Appium gesture coverage beyond coordinate swipes.

Maintenance

ActivityMaintained
ResponsivenessNo issues