Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

CUA 테스트: 컴퓨터 사용 에이전트를 위한 MCP 서버에 대한 나의 의견

Young-jae

Young-jae

Updated on April 23, 2025

CUA는 컴퓨터 사용 에이전트 프레임워크와 세련된 MCP 서버인 Cua를 통해 AI 에이전트가 자연어로 macOS 또는 Linux 시스템을 제어할 수 있게 해줍니다. 저는 Apple Silicon Mac에서 CUA MCP 서버를 설정하는 데 뛰어들었고, 이건 로컬 작업 자동화에 큰 변화를 가져다주는 것임을 말씀드리고 싶습니다. 이 초보자 가이드에서는 CUA의 MCP 서버를 설치하고 테스트하는 방법을 공유할 예정이며, 재미있는 예제로는 터미널을 열고 디렉토리 내용을 나열하는 것을 보여드리겠습니다. 기술적인 스킬은 필요 없습니다—그저 호기심만 있으면 됩니다! AI를 컴퓨터의 속삭임이 되게 할 준비가 되셨나요? 시작해봅시다!

💡
아름다운 API 문서를 생성하는 훌륭한 API 테스트 도구가 필요하신가요?

개발 팀이 함께 최대의 생산성으로 작업할 수 있는 통합된 올인원 플랫폼이 필요하신가요?

Apidog는 모든 요구를 충족시켜주며, Postman을 더 저렴한 가격에 대체합니다!
button

CUA와 CUA MCP 서버란?

CUA (컴퓨터 사용 에이전트)는 AI 에이전트가 화면 제어, 키보드/마우스 자동화, macOS와 Linux의 샌드박스 가상 머신(vms)을 통해 컴퓨터와 상호작용할 수 있도록 해주는 오픈 소스 프레임워크입니다. Cua MCP 서버는 모델 컨텍스트 프로토콜(MCP) 구성 요소로, Claude Desktop이나 Cursor와 같은 AI 클라이언트가 자연어를 통해 CUA 작업을 실행할 수 있게 해주는 브리지 역할을 합니다. 시스템에 대한 원격 제어를 AI에게 제공하는 것과 같아서 클라우드 종속성 없이 안전하게 명령을 실행합니다. 우리는 이를 설정하고 간단한 작업으로 테스트할 것이며, 모든 것을 개인적이고 재미있게 유지할 것입니다. 시작해봅시다!

cua image

환경 설정: CUA 준비하기

CUA MCP 서버를 실행하기 전에 시스템을 준비합시다. 각 단계가 설명되어 있어 초보자에게 친숙합니다.

1. 사전 요구사항 확인: 다음 도구가 준비되어 있는지 확인하세요:

  • Python: 버전 3.10 이상. 터미널에서 python --version을 실행하세요. 누락되었거나 구버전일 경우, python.org에서 다운로드하세요. Python은 CUA의 스크립트와 서버를 구동합니다.
  • Git: Cua 저장소를 복제하기 위해 필요합니다. git --version으로 확인하세요. 필요하다면 git-scm.com에서 설치하세요.
  • Docker: MCP 서버의 컨테이너화된 설정에 필요합니다. docker.com에서 다운로드하고 docker --version으로 확인하세요.
  • 하드웨어: Apple Silicon (M1/M2/M3) Mac 또는 Linux 시스템, 4개 이상의 코어 CPU, 16GB 이상의 RAM, 10GB 이상의 여유 저장 공간이 필요합니다. 누락된 것이 있나요? 문제를 피하기 위해 지금 설치하세요.

2. 프로젝트 폴더 만들기: 전용 폴더로 깔끔하게 유지합시다:

mkdir cua-mcp-test
cd cua-mcp-test

이 폴더는 CUA 프로젝트를 저장할 것이며, cd는 다음 단계로 전환하는 것을 도와줍니다.

3. Cua 저장소 복제: GitHub에서 CUA 소스 코드를 가져옵니다:

git clone https://github.com/trycua/cua.git
cd cua

git clone은 libs/mcp-server에 MCP 서버 코드를 포함하여 Cua 저장소를 가져옵니다. cd cua는 프로젝트 디렉토리로 이동합니다.

4. 가상 환경 설정: 패키지 충돌을 피하기 위해 Python 가상 환경을 만듭니다:

python -m venv venv

활성화합니다:

  • Mac/Linux: source venv/bin/activate
  • Windows: venv\Scripts\activate 터미널에서 (venv)이 보이면 깨끗한 Python 환경에서 CUA의 의존성을 격리할 수 있습니다.

5. VS Code에서 열기: 쉽게 코딩하기 위해 Visual Studio Code에서 프로젝트를 시작합니다:

code .

VS Code는 cua 폴더를 열어 스크립팅 준비가 되어 있습니다. VS Code가 없다면 code.visualstudio.com에서 다운로드하거나 다른 편집기를 사용하세요. 하지만 VS Code의 Python 통합은 최고입니다.

CUA MCP 서버 설치

CUA MCP 서버를 Claude 3.7과 함께 작업하기 위해 설치해봅시다. 간단한 스크립트를 사용하여 수월한 설정을 보장하고, 모든 의존성이 설치되도록 합니다.

1. 간편한 설치 스크립트 실행: CUA 저장소는 설치를 간소화하는 한 줄의 코드를 제공합니다:

curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/mcp-server/scripts/install_mcp_server.sh | bash

이 스크립트는 많은 작업을 자동으로 처리합니다:

  • ~/.cua 디렉토리를 생성합니다 (존재하지 않는 경우).
  • ~/.cua/start_mcp_server.sh에 시작 스크립트를 생성합니다.
  • 스크립트를 실행 가능하게 만듭니다.
  • Python 가상 환경을 관리하고 cua-mcp-server 패키지를 설치/업데이트합니다. macOS와 Linux에 맞춰져 있으며, 컨테이너화된 서버를 위해 Docker를 사용합니다. 의존성을 가져오는 데 조금 시간이 걸릴 것입니다.

2. Python 의존성 설치: 수동 설치를 선호하거나 문제가 발생한 경우, CUA MCP 서버를 직접 설치합니다:

pip install cua-mcp-server

다음이 설치됩니다:

  • MCP 서버 자체.
  • CUA 에이전트 및 컴퓨터 의존성 (예: 화면 제어, 키보드/마우스 자동화용).
  • PATH에 있는 실행 가능한 cua-mcp-server 스크립트.

3. Docker 확인: MCP 서버는 Docker 컨테이너에서 실행되므로 Docker가 활성화되어 있는지 확인합니다:

docker ps

Docker가 실행 중이지 않으면 Docker Desktop (Mac)을 통해 시작하거나 sudo systemctl start docker (Linux) 명령어로 시작하세요. 이는 서버의 샌드박스 환경에서 매우 중요합니다.

Claude Desktop을 위한 CUA MCP 서버 구성

이제 CUA MCP 서버를 Claude 3.7(에서 작업할 수 있도록 설정하고, 필요한 API 키와 환경 변수를 설정합니다. Claude Desktop와 함께하겠습니다.

claude desktop

1. Anthropic API 키 받기: anthropic.com에 가입하고 API 섹션으로 이동하여 API 키를 생성합니다. 안전하게 저장하세요 (공유하지 마세요!). 이 키는 Claude 3.7이 CUA MCP 서버와 통신할 수 있게 해줍니다.

2. Claude Desktop 구성 업데이트: Claude Desktop의 config 파일에 CUA MCP 서버를 추가하는데, 일반적으로 ~/.config/claude-desktop/claude_desktop_config.json에 위치합니다 (Mac). 존재하지 않는 경우 생성합니다:

{
  "mcpServers": {
    "cua-agent": {
      "command": "/bin/bash",
      "args": ["~/.cua/start_mcp_server.sh"],
      "env": {
        "CUA_AGENT_LOOP": "OMNI",
        "CUA_MODEL_PROVIDER": "ANTHROPIC",
        "CUA_MODEL_NAME": "claude-3-7-sonnet-20250219",
        "ANTHROPIC_API_KEY": "your-api-key"
      }
    }
  }
}

your-api-key를 자신의 Anthropic API 키로 대체하세요. 이 구성은:

  • 설치 단계에서의 시작 스크립트를 사용합니다.
  • 유연한 작업 처리를 위해 에이전트 루프를 OMNI로 설정합니다.
  • 클로드 3.7 (claude-3-7-sonnet-20250219)을 모델로 지정합니다.
  • API 키를 안전하게 전달합니다. 파일을 올바른 위치에 저장하세요. 자세한 내용은 Anthropic의 MCP 사용자 안내서를 참조하세요.

3. 선택 사항: Cursor 통합: CUA를 Cursor와 함께 사용하고 싶으신가요? MCP 구성 파일을 생성합니다:

  • 프로젝트 전용: 프로젝트 디렉토리에 .cursor/mcp.json 추가.
  • 전역: 홈 디렉토리에 ~/.cursor/mcp.json 추가. 위와 동일한 mcpServers 구성을 사용하세요. 그런 다음, Cursor의 에이전트 채팅에서 “컴퓨터 제어 도구를 사용하여 사파리를 열어라.”라고 말하면 CUA가 제어를 시작합니다. Cursor의 MCP 문서를 참조하세요.

Claude 3.7으로 CUA MCP 서버 테스트하기

이제 CUA MCP 서버를 테스트할 차례입니다. Claude 3.7이 터미널을 열고 디렉토리 내용을 나열하게 해볼 것입니다! 스크립트를 만들어서 이 작업을 시뮬레이션하고, VS Code에서 실행하겠습니다.

1. 테스트 스크립트 만들기: VS Code에서 cua 프로젝트를 열고, cua 폴더에 test.py라는 이름의 파일을 만듭니다. 아래 코드를 붙여넣습니다:

import os
import asyncio
from computer import Computer
from agent import ComputerAgent, LLM, AgentLoop, LLMProvider

async def run_task() -> str:
    async with Computer(verbosity='DEBUG') as computer:
        agent = ComputerAgent(
            computer=computer,
            loop=AgentLoop.OMNI,
            model=LLM(
                provider=LLMProvider.ANTHROPIC,
                model_name="claude-3-7-sonnet-20250219",
                api_key="your-api-key"
            )
        )
        task = "Open a terminal and list the contents of the current directory"
        async for result in agent.run(task):
            return result

async def main():
    result = await run_task()
    print("\n\nResult:", result)

if __name__ == "__main__":
    asyncio.run(main())

your-api-key를 자신의 Anthropic API 키로 대체하세요 (대안으로, 쉘 프로필에서 ANTHROPIC_API_KEY를 환경 변수로 설정할 수도 있습니다). 이 스크립트는:

  • 시스템 상호작용을 위한 CUA 컴퓨터를 초기화합니다.
  • Claude 3.7과 함께 Anthropic의 API를 통해 ComputerAgent를 설정합니다.
  • 에이전트에게 터미널을 열고 (예: macOS의 터미널 앱) ls를 실행하도록 지시합니다.
  • 결과를 출력합니다. 예를 들어 파일 목록이 출력됩니다.

2. VS Code에서 Python 인터프리터 선택: VS Code가 프로젝트의 Python 환경을 사용하도록 합니다:

  • Ctrl + P (Mac에서는 Cmd + P)를 누릅니다.
  • > Select Python Interpreter를 입력하고 Enter를 누릅니다.
  • 가상 환경에서 인터프리터를 선택합니다 (예: ./venv/bin/python). 이렇게 하면 CUA의 의존성을 사용할 수 있어 “모듈을 찾을 수 없음” 오류를 방지할 수 있습니다.

3. 스크립트 실행: Docker가 실행 중인지 확인하고 Claude Desktop 구성도 설정되어 있는지 확인합니다. test.py 파일을 열면, VS Code의 “실행” 버튼 (상단 오른쪽 삼각형)을 클릭하거나 터미널에서 (가상 환경이 활성화된 상태에서):

python test.py

CUA MCP 서버가 시작되면 Claude 3.7이 작업을 처리하고 터미널이 열려 ls를 실행합니다. 제 Mac에서는 “결과: cua test.py venv”가 출력되었습니다—꽤 멋지죠! 만약 실패한다면 Docker, API 키 및 포트 11434 (Ollama 대체 사용 시)를 확인하세요. ~/Library/Logs/Claude/mcp*.log (Mac)에서 디버그 정보를 체크하세요.

4. Claude Desktop에서 테스트: Claude Desktop을 열고, “터미널을 열고 현재 디렉토리 내용을 나열하라.”라고 입력하세요. Claude는 CUA MCP 서버를 사용하여 작업을 실행하고 결과를 채팅창에 표시합니다. 제 테스트는 프로젝트 파일을 즉시 나열했습니다!

cua result output

사용 가능한 CUA 도구 및 사용법

CUA MCP 서버는 Claude 3.7에 두 가지 강력한 도구를 제공합니다:

  • run_cua_task: “Chrome을 열고 github.com으로 이동하라.”와 같은 단일 작업을 실행합니다.
  • run_multi_cua_tasks: “내 바탕화면에 ‘Projects’라는 폴더를 만들고, 그 후 열어라.”와 같이 여러 작업을 순차적으로 실행합니다.

위의 질문 형태로 Claude Desktop이나 Cursor에서 사용할 수 있습니다:

  • “내 바탕화면에 ‘Projects’라는 폴더를 만들어라.”
  • “내 다운로드 폴더에서 모든 PDF를 찾아라.”
  • “스크린샷을 찍고 오류 메시지를 강조 표시하라.”

Claude는 자동으로 이러한 작업을 CUA 에이전트에 전달하여 자동화를 쉽게 만듭니다.

Claude 3.7과 함께한 CUA에 대한 제 생각

CUA와 Claude 3.7을 테스트한 후, 저의 느낌은 다음과 같습니다:

  • 로컬 파워하우스: 모든 것을 Mac에서 실행하면 데이터가 비공식적으로 유지됩니다—클라우드가 필요 없습니다.
  • Claude 3.7의 장점: 사고력이 뛰어나서 터미널 명령 같은 작업이 수월하게 느껴집니다.
  • 설치 과정의 문제: Docker 및 API 키 구성에 약간의 조정이 필요했지만, 설치 스크립트 덕분에 시간을 절약할 수 있었습니다.
  • 끝없는 잠재력: 앱을 여는 것부터 파일을 관리하는 것까지, CUA는 마치 초능력을 부여하는 것 같습니다.

문제가 발생한다면 Docker와 API 키를 다시 확인하고, CUA GitHub의 문제를 스킴해보세요.

CUA 성공을 위한 전문가 팁

  • 디버그 로그: Claude 로그 (~/Library/Logs/Claude/mcp*.log) 또는 Docker 로그 (docker logs)를 확인하여 오류를 찾으세요.
  • 새로운 작업 시도하기: Claude에게 “브라우저를 열고 github.com으로 가라.” 또는 테스트.py나 바탕화면 앱에서 “hello.txt라는 이름의 파일을 만들어라.”라고 요청하세요.
  • 구성 최적화: 구성에서 CUA_MAX_IMAGES=5를 설정하여 “오류를 강조 표시하라.” 같은 작업에 대한 더 많은 스크린샷을 유지하세요.

최종 생각: 귀하의 CUA와 Claude 3.7 모험이 시작됩니다

당신은 해냈습니다—CUA MCP 서버를 설정하고 Claude 3.7을 컴퓨터를 제어하도록 해방했습니다! 터미널을 열고 파일을 나열하는 것에서부터 CUA가 어떻게 자동화가 마치 마법 같은 느낌을 주는지 보셨습니다. 다음에는 앱을 실행하거나 파일을 정리하는 작업을 시도해보고, 성공 사례를 공유해보세요. 다음 계획은 무엇인가요? CUA 코딩 어시스턴트? 스크린샷 봇? 그리고 더 많은 정보를 원하신다면 CUA GitHub를 확인하세요. 행복한 자동화 되세요!

button
apidog