mait.sh1.132.1

Private beta: features and content may change. No warranty; use at your own risk.

Tools

What your agent can do on a remote desktop, grouped by purpose, with the graphics settings, recording options and limits.

Beta
Overview

Twelve tools, grouped by purpose.

MCP RDP provides twelve tools. Three of them, rdp_pointer, rdp_type and rdp_sound, choose their operation with an action argument. Every tool except rdp_connection_list accepts an optional connectionId (rdp_connection_drop requires it); leaving it out selects a default connection that your deployment may not allow.

mcp-rdpmait0.9.9the service
Connections

Open, list and close a desktop connection.

ToolUse it toParameters
rdp_connection_createOpen a named connection to a Windows or other RDP desktop and connect at once. You get the connection status and whether a recording started; a recording that fails to start can leave the connection itself working.none required; see the options below
rdp_connection_listList the connections of this session with their host, port, security and tags, but never a password. It shows what was stored, not whether the desktop is still reachable.none
rdp_connection_dropClose a connection and finish its recording, if it has one.connectionId (required)

Why: a connection is a named slot, so several desktops can be open at once and every other tool names the one it acts on. Stop and fetch a recording before you drop, because a drop ends it.

Every input of rdp_connection_create is optional:

OptionUse it to
connectionIdChoose the id; one is generated when left out
profileUse a named profile prepared on the server, so the account and password stay out of the request
templateTune the graphics for the kind of desktop; see the templates below
host, portOverride the target
username, password, domainOverride the account; treat them as secrets
securityPick auto or nla (the same choice) or tls
graphicsModePick rfx, legacy, h264 or auto
saveVideoStart a recording at once; an object such as {} takes the defaults
performanceFlagsSwitch rendering features such as the wallpaper or themes off for a lighter picture
name, tagsLabel the connection

The template tunes the graphics for the family of server:

TemplateUse it for
defaultThe safe baseline for most desktops: a decoded picture that screenshots and recordings can use
windowsA Windows host
windows-h264A Windows host that offers H.264, for the cheapest recording; it needs the server to negotiate it
gnomeA GNOME Remote Desktop host
Clipboard

Not available in this release.

Not available in this release; use rdp_type to enter text. Your client may list rdp_clipboard_send and rdp_clipboard_receive; do not call them.

Screen

Take a picture of the desktop.

ToolUse it toParameters
rdp_screenshotTake a picture of the desktop and publish it as a file you can fetch. A black image can mean the desktop has not painted, so look at the picture before you act on it.connectionId (optional), delay, filename, colorDepth, maxSize, inlineImage

Why: the agent decides from what the desktop shows, and the picture is the proof. Keep maxSize at zero when you plan to click, so the coordinates in the image are the real ones.

Pointer and keyboard

Move the pointer, type and press keys.

ToolUse it toParameters
rdp_pointerClick, double-click, drag, scroll or move the pointer on the desktop. The result confirms the input was sent, not what the application did with it.action (required: click, drag, scroll, move), x, y, button, double, start_x, start_y, end_x, end_y, direction, clicks
rdp_key_pressPress one key or a shortcut such as Enter, Tab or Ctrl+c. Focus the right window first, because a shortcut can mean different things in different applications, and shortcuts that combine Ctrl or Win with a letter do not work on every target, so check a screenshot.key (required)
rdp_typeType a passage into the focused window, either one line or several lines in one call.action (required: text or multiline), text, enter, lines

Why: act, then look. Every input tool only confirms it was sent, so follow it with rdp_screenshot. Use rdp_type to put text into a field, since rdp_key_press presses a single key. Long text is paced, so a very long passage is rejected before it types: send it in pieces. To move text onto the desktop, type it.

Sound

Capture the desktop's sound, or send sound to it.

ToolUse it toParameters
rdp_soundCapture the desktop's sound to a file, play a sound file into its microphone, or read the sound status. Files are read and written on the server host, and starting or stopping confirms the call, not that anything was heard.action (required), captureId, playId, filePath, format, maxDuration, sink, pulseSink, loop

The actions of rdp_sound:

ActionUse it to
statusSee whether the desktop is offering sound output, and the active captures
capture_startStart saving the desktop's sound to filePath in opus (the default), wav or flac, or play it through a PulseAudio sink with sink set to pulse
capture_stopStop it with the captureId; the result reports bytesReceived
play_startSend a 16-bit PCM WAV file, or raw signed 16-bit PCM, into the desktop's microphone; the application must be listening
play_stopStop it with the playId; the result reports bytesSent and bytesDropped

Why: an application's sound is part of what it does. A capture file is separate from the sound in a video recording, and the capture can truncate a file that already exists at the path.

Video

Record the desktop as video, with sound.

ToolUse it toParameters
rdp_start_videoStart recording the desktop as video, with its sound. The recording runs in the background while the other tools keep working, and a connection can hold one recording at a time.connectionId (optional), audio, quality, fps, codec, filename, maxDurationSecs, condense
rdp_stop_videoStop the recording and publish the file. The result reports the duration, the frame count and whether any sound was recorded.connectionId (optional)

The options of rdp_start_video:

OptionDefaultUse it to
audiotrueWrite the desktop's sound into the file; read hasAudio in the stop result to know whether any sound arrived
qualitystandardPick economy (5 frames a second), standard (10) or fidelity (15)
fpsfrom qualitySet the frame rate directly, from 1 to 60
codecvp9Pick vp9 or vp8 for a WebM file
filenamea timestampName the file; it is a name under the resource store, never a path
maxDurationSecsthe deployment's limitStop the recording after this many seconds
condenseoffTurn on condensing, described below

Why: the file is evidence. Stop a recording and fetch it before you drop the connection or end the session. With audio on, a file always carries an audio track; an empty one is correct for a silent source.

The condense object keeps the stretches where the desktop changes and saves a screenshot and a note for each event:

OptionDefaultUse it to
profilebalancedPick responsive, balanced or thorough: how long the picture must stay still before an event ends
keepOriginaltrueKeep the unfiltered recording next to the condensed file, so you can check what was left out
analysisFpsfrom the profileSet how often the desktop is sampled, from 1 to 60
screenshotFormatpngPick png or webp for the event screenshots
preserveAudiofalseKeep the stretches in which sound was playing, so a spoken passage over a still picture is not cut
fastForwardSlowContentMs0Sample slow content, such as a progress bar, instead of keeping all of it
Limits

What to expect when a call fails.

A tool failure comes back as a tool error with a message. Unknown argument names are rejected. The limits that matter:

LimitValue
Calls30 per minute across the rdp tools, shared by every client of one server
One call60 seconds by default; a timed-out call may already have sent input or written a file
Typingone call is refused if its planned pacing exceeds 45 seconds, about 257 ordinary characters
Connections16 explicit connections per session, unless the deployment changes it
Recordingsone per connection at a time; a plain recording stops at 30 minutes or 2 GiB unless the deployment says otherwise

Connection IDs and published files belong to the MCP session that made them, so keep one client for the whole workflow, and fetch your files before the session ends. See Troubleshooting and the tools reference for every field.