Skip to content
SilanDocs
Main site

Silan’s MCP server (silan mcp) lists every tool in Silan’s spec below. The current release serves 45 of them: the five flow tools (validate_scenario, run_scenario, list_runs, get_run, get_report) are in the spec but the engine answers them with the scenario engine is not available in this engine (seen 4 Nov 2026). Each tool is a direct mapping of one REST operation, so what a tool does and what REST does never differ. The server runs on the Mac that holds the devices.

A profile picks which tools an AI app sees. Start the server with silan mcp --profile <name>. The plugin launchers and the Claude app bundle read SILAN_MCP_PROFILE to pick one; silan mcp itself does not. The tool counts are what the current release lists over tools/list (4 Nov 2026).

Profile Tools For
core 16 Everyday tasks: look, tap, type, swipe, wait, open apps and links, hand over logins.
testing 27 App testing: core plus scenarios, recordings, checks, notifications, test pushes, installs, location, clipboard, rotation and text size.
full 45 Everything, including the built-in agent, routines and raw element queries.
Tool What it does REST operation Profiles
list_devices List the devices this client may use (phones, tablets, simulators and emulators), with their state. listDevices core, testing, full
get_device One device with its capabilities and health. getDevice full
list_apps Apps installed on the device. listApps full
observe See the screen - a screenshot plus a compact list of elements with refs you can act on. observe core, testing, full
screenshot The current screen as an image. screenshot full
get_elements The full element tree of the current screen. getElements full
find_elements Find elements by text, identifier, role or a plain description, best match first. findElements full
claim_devices Claim devices so no other agent uses them; pass the returned lease to later calls. createLease core, testing, full
release_devices Give claimed devices back. releaseLease core, testing, full
tap Tap an element ref, a query (text, identifier, role) or a point; count 2 or 3 for double or triple taps. act core, testing, full
long_press Touch and hold a target. act core, testing, full
swipe Swipe up, down, left or right, from a target or the screen center. act core, testing, full
drag Drag from one target to another. act full
multi_touch A multi-finger gesture - a preset such as pinchIn, pinchOut or rotate, or explicit finger paths. act full
type_text Type any text into the focused field or a target (with no target, a field must have focus); never use it for passwords (use fill_credential). act core, testing, full
press_key Press a named key or one character, with optional modifiers. act core, testing, full
dismiss_keyboard Close the on-screen keyboard when it covers what you need; it does nothing when the keyboard is not open. act core, testing, full
press_button Press a hardware button (home, lock, volumeUp, volumeDown, siri, action, back, recents, power). To change apps, use launch_app with the app’s name; never press home. act core, testing, full
open_system_ui Open Control Center, Notification Center, the app switcher, Spotlight or the lock screen. act full
launch_app Open an app by bundle ID, package name or display name; fresh restarts it first. To change apps, use launch_app with the app’s name; never press home. act core, testing, full
terminate_app Force-quit an app. act full
open_url Open a web page or deep link. act core, testing, full
rotate Rotate the device to portrait or landscape. act testing, full
run_shortcut Run a Shortcuts shortcut on an iPhone. act full
set_text_size Change the system text size. act testing, full
get_clipboard Read the device clipboard. getClipboard testing, full
set_clipboard Put text on the device clipboard. setClipboard testing, full
set_location Set a simulated GPS location; latitude and longitude both null clear it (clearLocation). setLocation testing, full
install_app Install an app build (.ipa, .app or .apk) from a path on this Mac. installApp testing, full
uninstall_app Remove an app. uninstallApp full
wait_for Wait inside the engine until a condition holds (element visible or gone, text, app, notification, stable screen). waitFor core, testing, full
check Check a condition once, without waiting. check testing, full
get_notifications Notifications seen on the device, even if the banner has already gone. listNotifications testing, full
send_test_push Send a test push notification to an app on the device. sendTestPush testing, full
list_credential_sites Sites the person has set up for password filling (no secrets). listCredentialSites full
fill_credential Fill a saved username, password or one-time code into the focused field; you never see the secret. fillCredential core, testing, full
request_person_login Hand a login to the person and wait until they hand the device back. requestPersonLogin core, testing, full
validate_scenario Check a multi-device scenario without running it. validateScenario testing, full
run_scenario Run a multi-device scenario, a file or a saved routine; returns a run to follow. startRun testing, full
get_run Status and results of a run. getRun testing, full
list_runs Recent runs, newest first. listRuns testing, full
get_report A run’s report as a link to HTML, JUnit or JSON. getReport testing, full
start_recording Record the screens of one or more devices into .mp4 files on this Mac, one per device, on one clock. Returns the recording id and the folder the files go to (the installed Silan uses ~/Movies/Silan Recordings/). Hides what screenshots hide; a frame it cannot check in time repeats the last checked frame, or is black when the device locked or showed something hidden in between. Stops by itself after max_seconds (default 600, at most 1800), at 500 MB, or when you let go of a device you held. startRecording testing, full
stop_recording Stop a recording and finish its .mp4 files. Returns each file’s path (a file:// url) and the folder that holds them. stopRecording testing, full
run_agent_task Give Silan’s built-in agent a task in plain language, with a step and cost budget. startAgentTask full
get_agent_task Status, steps and cost of an agent task. getAgentTask full
list_routines Saved routines. listRoutines full
run_routine Run a saved routine now. runRoutine full
get_job Status of a long-running job. getJob full
get_approval Whether the person has approved a held action yet. getApproval full