Computer Use Agent (CUA) - Implementation Plan
Status: Planning
Priority: High
Target: v0.21.0
Vote with 👍
Executive Summary
Build a Computer Use Agent (CUA) that wraps external MCP servers and enables AI-powered desktop control through natural language commands. The agent dynamically discovers tools from the external MCP server and registers them locally, using Lemonade (Qwen3.5-35B) for intelligent reasoning about which actions to take. Goal: Let GAIA automate desktop features and system settings through natural language commands.Requirements
Prerequisites
- GAIA SDK v0.16+
- Python 3.10+
- Lemonade Server running with Qwen3.5-35B
- External MCP server for desktop control (user-provided)
External MCP Server Requirements
External MCP servers must support the MCP Protocol:- One of: stdio or HTTP transport
initializehandshaketools/listcapabilitytools/callfor tool execution
The Problem
GAIA agents currently cannot interact with desktop features and system settings. When agents need to:- Adjust system settings and preferences
- Control hardware features and utilities
- Query device status and capabilities
- Automate repetitive system tasks
Meanwhile, external MCP servers already provide desktop automation capabilities. GAIA just needs a way to connect to them.
The Solution
A Computer Use Agent that connects to external MCP servers and exposes their tools to Lemonade:Desktop Automation
System settings, features, utilities
Automate any supported function
Natural Language
Describe tasks in plain English
AI figures out the steps
Tool-Agnostic
Works with any MCP server
No hardcoded tool definitions
Architecture
Key Design Decisions
What This Agent Does NOT Do
- Does NOT expose itself as an MCP server
- Does NOT manage the external MCP server process
- Future UI integration will use OpenAI-compatible API (out of scope)
Components
Data Flow
Tool Execution Flow
Connection Flow
CLI Commands
Execute Commands
Tool Discovery
Configuration Options
Configuration
Environment Variables
Connection Modes
- stdio (Default)
- HTTP
Multi-Agent Future Architecture
The design supports future expansion with namespaced environment variables:Implementation Plan
1
MCP Client Layer (TDD)
ExternalMCPClient class with stdio and HTTP transport, JSON-RPC 2.0 protocol, connection handling2
Agent Implementation (TDD)
ComputerUseAgent inheriting from Agent, dynamic tool registration, Lemonade integration3
Standalone CLI
Command parsing, single-command execution,
--list-tools mode, error handling4
Integration Tests
Real external server tests, Lemonade integration tests, connection mode tests
5
Documentation
User guide (
docs/guides/cua.mdx), API reference, troubleshooting guide6
Code Review & Coverage
Lint check, >90% test coverage, final review
Project Structure
Success Metrics
Comparison
Error Handling
The agent provides user-friendly error messages by default, with technical details available via--verbose:
Security Considerations
- Process isolation: External MCP server runs as separate process
- No credential storage: Connection URLs configured via environment variables
- Audit logging: All tool calls can be logged with
--traceflag - Graceful degradation: Agent doesn’t crash when server unavailable
Relationship to MCP Client Mixin
This agent is a specific implementation of the MCP Client Mixin pattern (the base mixin shipped in v0.15.4):
The CUA agent validates the MCP Client Mixin architecture and provides a reference implementation.
Related
- Roadmap - High-level feature timeline
- MCP Client - MCP protocol documentation and the shipped client SDK
- Docker Agent Guide - Similar CLI-first agent pattern
Vote on GitHub
React with 👍 to help prioritize this feature