Skip to main content
Glama
XixianLiang

HarmonyOS MCP Server

by XixianLiang

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_appA

Get all installed packages on the device Returns: A list of all installed packages on the device as a string

launch_appC

launch app accrodingt to the given package name. Args: package_name: the package name of the package.

stop_appD
current_appA

Get the current foreground application information.

Returns: Tuple[str, str]: A tuple contain the package_name andpage_name of the foreground application. If no foreground application is found, returns (None, None).

media_play_pauseA

Play or pause media on the phone.

Sends the media play/pause keycode to control any currently active media. Can be used to play music or videos that were recently playing.

Returns: str: Success message if the command was sent, or an error message if the command failed.

media_nextC

play the next media

media_previousB

play the previous media

volume_upB

turn up the volume

volume_downB

turn down the volume

volume_muteC

mute the volume

get_uilayoutA

Retrieves information about clickable elements in the current UI. Returns a formatted string containing details about each clickable element, including its text, content description, bounds, and center coordinates.

Returns: str: A formatted list of clickable elements with their properties

get_screenshotA

Takes a screenshot of the device and returns it. Returns: Image: the screenshot

clickB

click the given coordinate Args: center: a string like "(x, y)", sample: "(227, 168)"

long_clickB

long click the given coordinate Args: center: a string like "(x, y)", sample: "(227, 168)"

swipeD
input_textC

input text to the given coordinate Args: center: a string like "(x, y)", sample: "(227, 168)" text: the text to input

Prompts

Interactive templates invoked by user choice

NameDescription
system_promptSystem prompt description

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: UI interaction tools (click, long_click, swipe, input_text, get_screenshot, get_uilayout) are well-separated from app management (launch_app, stop_app, list_app, current_app) and media controls (media_*, volume_*). No two tools have overlapping functionality.

Naming Consistency4/5

Tools follow a predictable pattern: UI tools use verb_noun (e.g., get_screenshot, launch_app) and media/volume tools use noun_verb (e.g., media_next, volume_down). While consistent within subdomains, the two patterns differ slightly, but overall naming is readable and logical.

Tool Count5/5

16 tools is well-scoped for a server covering both UI automation and media control. Each tool serves a clear function without redundancy, and the number is appropriate for the domain.

Completeness4/5

The tool set covers core UI actions (click, input, screenshot, layout) and app lifecycle (launch, stop, list, current), plus media and volume controls. Minor gaps like missing swipe description and common UI actions (e.g., back, scroll) are present, but the set is largely complete for typical tasks.

Maintenance

ActivityInactive
ResponsivenessUnresponsive