Skip to main content
Glama
dsh-computer-use-mcp

dsh-computer-use-mcp

by huiliyi37

dsh-computer-use-mcp

영문 | 中文

macOS 및 Windows용 데스크톱 GUI 자동화("컴퓨터 사용")를 제공하는 독립형 Model Context Protocol 서버입니다. 모든 MCP 호스트에서 구동할 수 있습니다: DeepSeek Harness (dsh), Claude Code, Cursor 및 기타 모든 MCP 클라이언트.

computer_use라는 단일 도구에 23가지 액션이 포함되어 있습니다: 번호가 매겨진 참조가 포함된 접근성 트리 스냅샷, 클릭 / 드래그 / 입력(클립보드 경유 CJK) / 단축키, 앱 실행 및 포커스, 메뉴 선택, 스크린샷 아티팩트, 그리고 브라우저 탭을 위한 Chrome DevTools Protocol 고속 경로.

주요 기능

  • 접근성 우선 — 스냅샷은 번호가 매겨진 트리를 반환하며, 이후의 모든 액션은 취약한 좌표가 아닌 참조(ref)로 요소를 지정합니다.

  • 크로스 플랫폼 — macOS(AX API via AppleScript/JXA) 및 Windows(관리형 폴백이 포함된 UIA3 COM 고속 경로).

  • 브라우저 CDP 고속 경로 — Chrome 계열 타깃은 자동으로 DevTools 세션으로 전환되어 1초 미만의 스냅샷과 폐색(occlusion)에 영향을 받지 않는 입력(navigate / read_page / js_eval / tabs)을 제공합니다.

  • 이미지 아티팩트로서의 스크린샷 — 비전 모델은 PNG를 수신하며, 파일은 감사(audit)를 위해 CU_HOME 아래에 유지됩니다.

  • 내장된 안전 장치 — 정적 위험 가드(danger-guard)가 위험한 스크립트 페이로드를 차단하며, 앱별 "항상 허용" 권한은 전용 테이블에 영구 저장됩니다.

설치

Node ≥ 20.

npm install -g dsh-computer-use-mcp   # then run: dsh-computer-use-mcp
# or one-shot:
npx -y dsh-computer-use-mcp

호스트에 연결하기

DeepSeek Harness (dsh)

dsh는 @deepseek-ai/dsh-mcp-client를 통해 MCP 서버를 연결합니다. dsh/computer-use.cordis.yml에 준비된 오버레이를 전달하세요:

dsh --profile <name> --patch /path/to/dsh-computer-use-mcp/dsh/computer-use.cordis.yml

모델은 이 도구를 mcp__computer-use__computer_use로 인식합니다. 키 없이 통합을 입증하는 스모크 테스트는 dsh/README.md를 참조하세요.

Claude Code

claude mcp add computer-use -- npx -y dsh-computer-use-mcp

Cursor / 일반 mcpServers JSON

{
  "mcpServers": {
    "computer-use": { "command": "npx", "args": ["-y", "dsh-computer-use-mcp"] }
  }
}

computer_use 도구

action으로 디스패치되는 단일 도구입니다. 전체 JSON 스키마는 tools/list에서 제공됩니다.

그룹

액션

읽기 / 탐색

check_permissions, list_apps, snapshot, find, wait_for, wait

입력

click, double_click, right_click, scroll, drag, type, set_value, key, paste_text

앱 / 창

focus_app, launch_app, menu_select

브라우저(CDP)

navigate, read_page, js_eval, tabs, browser_adopt

일반적인 루프: snapshot → 번호가 매겨진 트리를 분석 → 참조로 액션 수행(click {ref}) → 액션 후 피드백이 다시 스냅샷을 찍고 UI 변경 사항을 보고합니다.

보안 모델 — 활성화 전에 읽어보세요

  • MCP에는 승인 개념이 없습니다: 도구 호출은 즉시 실행됩니다. 호스트의 도구 승인/확인 레이어를 활성화하고, 신뢰할 수 없는 프롬프트에 무제한 자율성을 부여하지 마세요.

  • danger-guard는 구현 내부에서 위험한 스크립트 페이로드를 정적으로 차단합니다.

  • 앱별 "항상 허용" 권한은 호스트 자체 권한 저장소와 별개로 CU_HOME(기본값 ~/.tianshu-computer-use/) 아래에 영구 저장됩니다.

  • macOS: 이 서버를 실행하는 터미널(또는 호스트 앱)에 손쉬운 사용(Accessibility) 및 화면 기록(Screen Recording) 권한을 모두 부여하세요. check_permissions 액션이 자체 점검을 수행하고 누락된 항목을 보고합니다.

환경 변수

변수

효과

CU_HOME

권한 및 스크린샷 아티팩트용 데이터 디렉터리(기본값 ~/.tianshu-computer-use)

CU_SESSION_ID

세션별 아티팩트 하위 디렉터리 이름(기본값 mcp)

RIVET_CU_CDP=0

브라우저 CDP 고속 경로 비활성화

RIVET_CU_FEEDBACK=0

액션 후 UI 피드백 요약 비활성화

RIVET_CU_HOST=0

스크립트 호스트(macOS JXA / Windows PowerShell 채널) 비활성화

RIVET_CU_COM=0

Windows UIA3 COM 고속 경로 비활성화(관리형 빌더로 폴백)

개발

npm install
npm run build                      # tsup → dist/index.js
npm run smoke                      # SDK-client stdio smoke (tools/list + wait)
node integration/verify-server.mjs # zero-dependency JSON-RPC smoke

integration/dsh-smoke.ts는 DeepSeek Harness의 실제 플러그인 구성에 대한 키 없는 통합 스모크 테스트입니다. deepseek-harness 체크아웃에서 실행하세요(지침).

huiliyi37/Tianshu-harness — tianshu(天枢) 하네스 저장소에서 추출되었습니다. impl/ 아래의 구현은 해당 computer-use 모듈의 고정 스냅샷이며, 이 저장소가 이제 해당 코드의 원본 소스입니다.

라이선스

GNU AGPL-3.0 — 강한 카피레프트가 적용된 소스 공개 라이선스: 수정본을 배포하거나 네트워크를 통해 서비스하는 경우 공유해야 합니다. 모든 MCP 호스트에서의 로컬 사용은 제한이 없습니다. 상업용 라이선스는 요청 시 제공됩니다.

Related MCP Connectors