yale-agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yale-agentTake a screenshot of the current window and OCR it to extract the text"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
YaleAgent
Linux desktop automation agent — Wayland-native, zero-restrictions, AI-ready.
YaleAgent is a comprehensive desktop automation framework for Linux, built with verified 2026-era backends. It provides screen capture, input simulation, browser automation, OCR, AT-SPI accessibility, and an MCP server for AI integration.
Architecture
┌─────────────────────────────────────────────────────┐
│ YaleAgent │
│ │
│ ┌──────────┐ ┌──────────┐ ┌────────────────────┐│
│ │ CLI │ │ Dashboard│ │ MCP Server ││
│ │ typer │ │ FastAPI │ │ JSON-RPC 2.0 stdio ││
│ └──────────┘ └──────────┘ └────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────┐│
│ │ Command Catalog (68 tools across 11 categories) ││
│ └─────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────┐│
│ │ Services Layer ││
│ │ desktop: Portal screenshot, ydotool input, ││
│ │ wmctrl windows, pyatspi AT-SPI ││
│ │ browser: Playwright Chrome lifecycle ││
│ │ ocr: Tesseract text recognition ││
│ │ store: JSON key-value persistence ││
│ └─────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────┘Related MCP server: computer-use-linux
Quick Start
# Clone
git clone https://github.com/yaleedhaque/yale-agent.git
cd yale-agent
# Setup (installs deps + verifies backends)
./scripts/setup.sh
# Activate venv
source .venv/bin/activate
# Run
yale-agent dashboard # Web UI at http://127.0.0.1:8766
yale-agent mcp # MCP stdio server (for AI agents)
yale-agent tools # List all 47 registered tools
yale-agent run desktop.screenshot # Capture screenTool Categories
Desktop (8 tools)
Tool | Description |
| Capture screen or window (XDG Portal / scrot) |
| Move mouse to absolute position (ydotool Wayland) |
| Click mouse button (left/middle/right) |
| Press key or chord (ctrl+c, Return) |
| Type text string |
| List all open windows |
| Focus a window by title |
| Read accessibility tree (pyatspi) |
Browser (20 tools)
Tool | Description |
| Launch Chrome instance |
| Close browser |
| Navigate to URL |
| Capture page screenshot |
| Click element by CSS selector |
| Type into element |
| Press keyboard key |
| Execute JavaScript |
| Get visible text |
| Get HTML source |
| List open tabs |
| Open new tab |
| Switch to tab by index |
| Scroll page |
| Get browser status |
| Accessibility tree snapshot (depth/cap) |
| Extract interactive DOM elements (clickables) |
| Click a text element by its text content |
| Wait for text to appear before timeout |
| Fill input matched by placeholder text |
Vision (5 tools)
Tool | Description |
| OCR an image file |
| Screenshot + OCR in one call |
| Find text on screen/image → clickable center (exact + fuzzy) |
| Find text then click it (ydotool) |
| OCR a screen region (OmniParser-style GUI detection) |
Media (5 tools)
Tool | Description |
| Toggle play/pause (playerctl) |
| Next track |
| Previous track |
| Seek ±seconds in current track |
| Currently playing tracks across players |
Audio (3 tools)
Tool | Description |
| Current volume + mute state (wpctl) |
| Set volume (0–1 or ±delta) |
| Toggle mute, reports real post-state |
Clipboard (2 tools)
Tool | Description |
| Read clipboard (wl-paste) |
| Write clipboard (wl-copy) |
Notify (2 tools)
Tool | Description |
| Desktop notification (notify-send) |
| Test notification with default body |
System (6 tools)
Tool | Description |
| Execute shell command |
| List running processes |
| Get system information |
| Disk usage for path |
| Get environment variables |
| Launch a desktop app (gtk-launch / gio) |
Filesystem (9 tools)
Tool | Description |
| Read file contents |
| Write/create file |
| Append to file |
| List directory |
| Search files by pattern |
| Copy file/directory |
| Delete file/directory |
| Get file metadata |
| Hash a file (sha256/md5) |
Memory (5 tools)
Tool | Description |
| Get value from store |
| Set value |
| Delete key |
| Search by query |
| List keys in namespace |
Network (3 tools)
Tool | Description |
| Make HTTP request |
| Ping a host |
| DNS lookup |
Backend Stack (Verified on this machine)
Capability | Backend | Notes |
Screenshot | XDG Desktop Portal ( | Wayland-native, no extension |
Screenshot (fallback) | scrot | X11 fallback |
Mouse input | ydotool 0.1.8 | Direct |
Keyboard input | ydotool | symbolic chords ( |
Clipboard | wl-copy / wl-paste | Wayland-native (xclip fallback) |
Notifications | notify-send | DBus notifications |
Media keys | playerctl | Play/pause/next/prev/seek/status |
Volume | wpctl (WirePlumber) |
|
Window mgmt | GNOME Shell Introspect → wmctrl | X11 wmctrl is the fallback |
App discovery | pyatspi (AT-SPI2) |
|
OCR | Tesseract 5.3 | exact + word-aligned fuzzy matching |
Browser | Playwright + Chrome 152 |
|
MCP Integration
YaleAgent is a first-class MCP server. Configure in your MCP client:
{
"yale-agent": {
"command": "yale-agent",
"args": ["mcp"],
"cwd": "/path/to/yale-agent"
}
}All 68 tools are exposed via the MCP tools/list and tools/call methods.
MCP / CLI
CLI:
yale-agent run <tool> '{json}'→ JSON result on stdout.MCP:
yale-agent mcp→ JSON-RPC 2.0 over stdio (protocolVersion2024-11-05).Dashboard:
yale-agent dashboard→ FastAPI athttp://127.0.0.1:8766.
Input Permissions (Wayland)
Mouse/keyboard injection uses ydotool writing to /dev/uinput. Add the user to
the input group so no root is needed:
sudo usermod -aG input $USER # then log out/inA udev rule (/etc/udev/rules.d/99-yale-input.rules) sets /dev/uinput to
root:input 0660 so the group owns it.
Dashboard
The web dashboard at http://127.0.0.1:8766 provides:
Tool catalog with one-click execution
JSON editor for custom tool calls
Execution log
Health status
Configuration
Default config at config/default.json. Override via environment variables:
YALECT_TIMEOUT— command timeout (seconds)YALECT_BROWSER_PATH— Chrome binary pathYALECT_DASHBOARD_PORT— dashboard portYALECT_LOG_LEVEL— logging level
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Melaya is a remote MCP server. It gives an assistant hands on your own Android phone and browser: it reads the screen through the accessibility tree, then taps, types and navigates inside the apps and sites you allow-list, with no per-app API. It also builds, schedules and runs agent pipelines across 6k+ connected tools. OAuth 2.1, nothing to install.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
65+ AI tools as MCP: research, write, code, scrape, translate, RAG, agent memory, workflows
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA desktop automation MCP server that enables AI agents to interact with Linux environments through screenshots, window inspection, and input simulation. It provides tools for mouse control, keyboard input, and screen capture using xdotool and XDG Desktop Portals.MIT
- AlicenseNot gradedqualityAmaintenanceControls a real Linux desktop from any MCP host. Reads accessibility trees, takes screenshots, and drives clicks, scrolls, and keystrokes across GNOME, KDE/KWin, Hyprland, i3, and COSMIC.528487MIT
- AlicenseNot gradedqualityDmaintenanceEnables full Linux desktop control including windows, mouse, keyboard, clipboard, audio, screenshots, OCR, accessibility, and system management through MCP-compatible AI agents.1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for controlling Linux desktops over Wayland, enabling AI agents to perform mouse, keyboard, window, and screenshot operations on Fedora KDE Plasma.AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yaleedhaque/yale-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server