Skip to main content
Glama

DesktopBridge 🌉

CI Home Node License: MIT

macOS용 로컬 Model Context Protocol 서버입니다. Claude(또는 모든 MCP 호스트)가 stdio를 통해 이 서버와 통신하며 다음 작업을 수행할 수 있습니다:

  • 허용된 디렉터리(allowlisted directories) 내 파일 읽기, 쓰기, 나열, 검색

  • CPU / 메모리 / 디스크 통계, 가동 시간, 그리고 편집된(redacted) 환경 변수 읽기

  • 실행 중인 애플리케이션 나열

  • 분리된 stdout/stderr, 타임아웃, 선택적 진행률 스트리밍을 지원하는 셸 명령 실행

  • 클립보드 읽기 및 쓰기

  • 스크린샷 캡처 및 디스플레이 나열

이 프로세스는 프로세스를 실행한 사용자와 동일한 OS 권한을 가집니다. 모델에게 Mac에서 터미널을 하나 준다고 생각하고, DESKTOP_BRIDGE_ROOTS로 피해 범위를 줄이세요.

요구 사항

  • macOS(클립보드, 스크린샷, 애플리케이션 나열은 Apple 도구 사용)

  • Node.js 20.19+ (22 LTS 권장)

Related MCP server: macOS Automator MCP Server

설치

cd desktop-bridge
npm install
npm run build
npm test

컴파일된 진입점은 dist/index.js입니다.

Claude Desktop에 연결

  1. 서버를 빌드합니다(npm run build).

  2. Claude Desktop → Settings → Developer → Edit Config를 엽니다.

  3. claude_desktop_config.example.json의 블록을 병합하고 경로와 사용자 이름을 바꿉니다:

{
  "mcpServers": {
    "desktop-bridge": {
      "command": "node",
      "args": ["/Users/YOU/dev/desktop-bridge/dist/index.js"],
      "env": {
        "DESKTOP_BRIDGE_ROOTS": "/Users/YOU/Desktop,/Users/YOU/Documents,/Users/YOU/Downloads"
      }
    }
  }
}
  1. Claude Desktop을 완전히 종료하고 다시 엽니다.

  2. MCP 도구(브리지 아이콘 🌉) 아래에 desktop-bridge가 나타나는지 확인합니다.

macOS의 설정 파일:

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code에 연결

claude mcp add desktop-bridge -- node /Users/YOU/dev/desktop-bridge/dist/index.js

또는 동일한 command / args / env 블록을 ~/.claude.json에 추가합니다.

Cursor에 연결

~/.cursor/mcp.json(또는 프로젝트의 .cursor/mcp.json)에 추가합니다:

{
  "mcpServers": {
    "desktop-bridge": {
      "command": "node",
      "args": ["/Users/YOU/dev/desktop-bridge/dist/index.js"]
    }
  }
}

호스트 없이 스모크 테스트

npm run inspector

이 명령은 빌드된 stdio 서버에 대해 MCP Inspector를 실행합니다. list_roots를 호출한 다음 get_system_info를 호출하세요.

로그는 stderr로만 출력됩니다. 이 프로세스에서 console.log를 사용하지 마세요 — stdout은 JSON-RPC 채널입니다.

환경 변수

변수

기본값

의미

DESKTOP_BRIDGE_ROOTS

~/Desktop, ~/Documents, ~/Downloads (존재하는 경우)

파일 도구가 접근할 수 있는 쉼표로 구분된 디렉터리 목록. 스크린샷이 저장될 공간을 위해 OS 임시 디렉터리가 항상 추가됩니다.

DESKTOP_BRIDGE_MAX_FILE_BYTES

10485760

단일 파일 읽기/쓰기의 최대 크기 (1 KiB–100 MiB).

DESKTOP_BRIDGE_COMMAND_TIMEOUT_MS

30000

기본 run_command 타임아웃 (100–300000).

DESKTOP_BRIDGE_MAX_OUTPUT_BYTES

1048576

결합된 stdout+stderr 캡처 상한. 초과 출력은 프로세스를 종료하고 truncated를 설정합니다.

DESKTOP_BRIDGE_ALLOW_SHELL

true

false로 설정하면 run_command가 비활성화됩니다.

DESKTOP_BRIDGE_RESTRICT_SHELL_CWD

true

true인 경우 run_command의 cwd는 허용된 루트 안에 있어야 합니다.

DESKTOP_BRIDGE_STATUS_URL

설정 안 됨

상태 사이트용 하트비트 POST URL (…/api/heartbeat).

DESKTOP_BRIDGE_STATUS_TOKEN

설정 안 됨

사이트의 HEARTBEAT_TOKEN과 일치하는 Bearer 토큰.

DESKTOP_BRIDGE_STATUS_INTERVAL_MS

15000

하트비트 간격 (5초–5분).

주석이 달린 템플릿은 .env.example을 복사하세요. 서버는 .env 파일이 아닌 프로세스 환경 변수(Claude Desktop env 블록)를 읽습니다.

도구

도구

기능

list_roots

허용된 디렉터리 및 파일 크기 상한

read_file

텍스트(선택적 줄 범위) 또는 base64

write_file

생성/덮어쓰기/추가; 선택적 mkdir -p

list_directory

이름, 유형, 크기, 수정 시간, 권한

search_files

이름에 대한 Glob 및/또는 파일 내용에 대한 정규식

get_system_stats

CPU %, 부하, 메모리, df

get_system_info

호스트, 가동 시간, 사용자, 편집된 환경 변수

list_applications

System Events를 통한 GUI(또는 전체) 프로세스

run_command

분리된 stdout/stderr을 지원하는 셸; stream → 진행률 알림

read_clipboard / write_clipboard

pbpaste / pbcopy

get_display_info

디스플레이 이름, 기본 플래그, 배율, 프레임

take_screenshot

screencapture를 통한 PNG; 5 MiB 이하일 때 이미지 블록 반환

리소스: desktop://roots, desktop://system/info.
프롬프트: inspect_desktop, find_file.

보안 모델

  • 파일: 모든 경로는 realpath로 확인됩니다. 확인된 경로는 구성된 루트 안에 있어야 합니다. .., 추가 슬래시, 루트를 벗어나는 심볼릭 링크는 거부됩니다.

  • 홈 디렉터리는 기본 루트가 아닙니다. 이렇게 하면 의도적으로 추가하기 전까지 ~/.ssh 및 유사한 디렉터리에 접근할 수 없습니다.

  • 셸: 여전히 전체 사용자 셸입니다. cwd가 제한되어 있어도 명령은 어디로든 cd할 수 있습니다. 파일/클립보드/화면 도구만 원한다면 DESKTOP_BRIDGE_ALLOW_SHELL=false로 비활성화하세요.

  • 환경 변수: password/token/secret/key/credential/cookie/session과 일치하는 키는 [redacted]로 대체됩니다.

  • Stdio: 네트워크 리스너가 없습니다. 호스트가 이 프로세스를 생성합니다.

macOS 권한

기능

권한

스크린샷

Node를 실행한 앱(Claude Desktop, Cursor 또는 Terminal)에 대한 화면 기록 권한

list_applications

macOS가 요청하면 자동화 → System Events

접근성 의존도가 높은 앱

제목이 숨겨질 수 있음; 도구는 어느 쪽이든 프로세스 이름을 나열합니다

screencapture가 실패하면 시스템 설정 → 개인정보 보호 및 보안 → 화면 기록을 열고 호스트 앱을 활성화한 다음 다시 시작하세요.

개발

npm run build    # tsc → dist/
npm start        # node dist/index.js (stdio)
npm test         # compile + node:test

구성: src/lib/* (경로 가드, 프로세스 실행기, glob/검색), src/tools/* (MCP 도구), src/index.ts (stdio 진입점).

https://home.jameymcelveen.com은 브라우저 시작 페이지입니다(web/, 추가 npm 패키지 없음). 로그인은 @mcelveen.usSTATUS_PASSWORD를 사용합니다.

현재 제공되는 기능과 앞으로 추가될 기능을 위한 덤프 트레이:

항목

참고

검색

자동 포커스. Google / Kagi / DDG. 뱅: !g !k !d !gh !yt !w !maps

링크

로컬 랜딩 페이지 앱과 동일한 타일과 속성. 설정에서 JSON으로 편집

날씨

Open-Meteo, °F, 좌표를 재정의하지 않으면 Florence SC 기준

Mac

DesktopBridge 하트비트: 온라인 / 지연 / 오프라인, IP, 부하

스크래치

자동 저장 메모

말씀

매일 성경 구절

Chrome/Safari/Firefox 홈페이지를 https://home.jameymcelveen.com으로 설정하세요(브라우저가 페이지가 직접 설정하는 것을 허용하지 않습니다). 세션 쿠키는 30일 동안 유지됩니다. /는 검색에 포커스합니다. ⌘K도 동일합니다.

main에 푸시하면 CI가 실행된 후 Vercel(사이트)과 Railway(하트비트 + 저장된 설정)에 배포됩니다.

Mac에서 MCP 서버 환경 변수에 추가하세요:

DESKTOP_BRIDGE_STATUS_URL=https://home.jameymcelveen.com/api/heartbeat
DESKTOP_BRIDGE_STATUS_TOKEN=<HEARTBEAT_TOKEN>

라이선스

MIT

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides a Model Context Protocol server for executing AppleScript and JavaScript for Automation scripts on macOS, featuring a knowledge base of pre-defined scripts and supporting automation of macOS applications and system functions.
    2
    507
    874
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables execution of AppleScript and JavaScript for Automation scripts on macOS, allowing programmatic control of applications and system functions through a rich knowledge base of pre-defined scripts.
    2
    507
    8
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Secure AppleScript execution for AI applications via Model Context Protocol with configurable security profiles and automatic TCC permission handling.
    3
    1

View all related MCP servers

Related MCP Connectors

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all MCP Connectors

Latest Blog Posts

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/jameymcelveen/desktop-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server