applescript-mcp MCP 서버
LLM 애플리케이션이 AppleScript를 통해 macOS와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜(Model Context Protocol) 서버입니다. 이 서버는 AI 애플리케이션이 시스템 기능을 제어하고, 파일을 관리하고, 알림을 처리하는 등의 작업을 수행할 수 있는 표준화된 인터페이스를 제공합니다.
특징
- 🗓️ 캘린더 관리(이벤트, 알림)
- 📋 클립보드 작업
- 🔍 Finder 통합
- 🔔 시스템 알림
- ⚙️ 시스템 제어(볼륨, 다크 모드, 앱)
- 📟 iTerm 터미널 통합
- 📬 메일(새 이메일 만들기, 이메일 목록, 이메일 받기)
- 🔄 단축키 자동화
- 💬 메시지(채팅 목록, 메시지 받기, 메시지 검색, 메시지 보내기)
- 🗒️ 노트(서식 있는 노트 만들기, 노트 목록 만들기, 노트 검색)
- 📄 페이지(문서 생성)
계획된 기능
- 🧭 Safari(Safari에서 열기, 페이지 내용 저장, 선택한 페이지/탭 가져오기)
- ✅ 알림(만들기, 받기)
필수 조건
- macOS 10.15 이상
- Node.js 18 이상
사용 가능한 카테고리
달력
명령 | 설명 | 매개변수 |
---|---|---|
add | 캘린더 이벤트 만들기 | title , startDate , endDate , calendar (선택 사항) |
list | 오늘의 이벤트를 나열하세요 | 없음 |
예시
지엑스피1
클립보드
명령 | 설명 | 매개변수 |
---|---|---|
set_clipboard | 클립보드에 복사 | content |
get_clipboard | 클립보드 내용 가져오기 | 없음 |
clear_clipboard | 클립보드 지우기 | 없음 |
예시
파인더
명령 | 설명 | 매개변수 |
---|---|---|
get_selected_files | 선택한 파일 가져오기 | 없음 |
search_files | 파일 검색 | query , location (선택 사항) |
quick_look | 미리보기 파일 | path |
예시
알림
참고: 알림을 보내려면 시스템 설정 > 알림 > 스크립트 편집기에서 알림을 활성화해야 합니다.
명령 | 설명 | 매개변수 |
---|---|---|
send_notification | 알림 표시 | title , message , sound (선택 사항) |
toggle_do_not_disturb | DND 모드 전환 | 없음 |
예시
체계
명령 | 설명 | 매개변수 |
---|---|---|
volume | 시스템 볼륨 설정 | level (0-100) |
get_frontmost_app | 활성화된 앱을 받으세요 | 없음 |
launch_app | 오픈 애플리케이션 | name |
quit_app | 응용 프로그램 닫기 | name , force (선택 사항) |
toggle_dark_mode | 다크 모드 전환 | 없음 |
예시
아이텀
명령 | 설명 | 매개변수 |
---|---|---|
paste_clipboard | iTerm에 붙여넣기 | 없음 |
run | 명령 실행 | command , newWindow (선택 사항) |
예시
단축키
명령 | 설명 | 매개변수 |
---|---|---|
run_shortcut | 바로가기 실행 | name , input (선택 사항) |
list_shortcuts | 사용 가능한 모든 단축키 나열 | limit (선택 사항) |
예시
우편
명령 | 설명 | 매개변수 |
---|---|---|
create_email | Mail.app에서 새 이메일을 만드세요 | recipient , subject , body |
list_emails | 사서함에서 이메일 나열 | mailbox (선택 사항), count (선택 사항), unreadOnly (선택 사항) |
get_email | 검색을 통해 특정 이메일 받기 | subject (선택 사항), sender (선택 사항), dateReceived (선택 사항), mailbox (선택 사항), account (선택 사항), unreadOnly (선택 사항), includeBody (선택 사항) |
예시
메시지
명령 | 설명 | 매개변수 |
---|---|---|
list_chats | 사용 가능한 iMessage 및 SMS 채팅 나열 | includeParticipantDetails (선택 사항, 기본값: false) |
get_messages | 메시지 앱에서 메시지 받기 | limit (선택 사항, 기본값: 100) |
search_messages | 특정 텍스트가 포함된 메시지 검색 | searchText , sender (선택 사항), chatId (선택 사항), limit (선택 사항, 기본값: 50), daysBack (선택 사항, 기본값: 30) |
compose_message | 미리 채워진 메시지 또는 자동 전송으로 메시지 앱을 엽니다. | recipient (필수), body (선택), auto (선택, 기본값: false) |
예시
노트
명령 | 설명 | 매개변수 |
---|---|---|
create | 마크다운과 유사한 서식으로 메모 만들기 | title , content , format (서식 옵션이 있는 경우 선택 사항) |
createRawHtml | 직접 HTML 콘텐츠로 메모 만들기 | title , html |
list | 특정 폴더에서 선택적으로 메모를 나열합니다. | folder (선택 사항) |
get | 제목으로 특정 메모 받기 | title , folder (선택 사항) |
search | 특정 텍스트가 포함된 노트 검색 | query , folder (선택 사항), limit (선택 사항, 기본값: 5), includeBody (선택 사항, 기본값: true) |
예시
페이지
명령 | 설명 | 매개변수 |
---|---|---|
create_document | 일반 텍스트로 새 Pages 문서 만들기 | content |
예시
건축학
AppleScript-MCP 서버는 TypeScript를 사용하여 구축되었으며 모듈식 아키텍처를 따릅니다.
핵심 구성 요소
- AppleScriptFramework (
framework.ts
): 다음을 수행하는 주요 서버 클래스:- MCP 프로토콜 통신을 관리합니다
- 도구 등록 및 실행을 처리합니다.
- 로깅 기능을 제공합니다
- AppleScript 명령을 실행합니다
- 카테고리 (
src/categories/*.ts
): 기능별로 구성된 모듈식 스크립트 컬렉션:- 각 카테고리에는 관련 스크립트(예: 달력, 시스템, 메모)가 포함되어 있습니다.
- 카테고리는
index.ts
의 프레임워크에 등록됩니다.
- 유형 (
src/types/index.ts
): 다음을 정의하는 TypeScript 인터페이스:ScriptDefinition
: 개별 스크립트의 구조ScriptCategory
: 관련 스크립트 모음LogLevel
: 표준 로깅 수준FrameworkOptions
: 구성 옵션
실행 흐름
- 클라이언트는 MCP 프로토콜을 통해 도구 요청을 보냅니다.
- 서버는 적절한 카테고리와 스크립트를 식별합니다.
- 스크립트 콘텐츠가 생성됩니다(정적 또는 함수를 통한 동적으로)
- AppleScript는 macOS
osascript
명령을 통해 실행됩니다. - 결과는 클라이언트에게 반환됩니다.
로깅 시스템
프레임워크에는 다음과 같은 포괄적인 로깅 시스템이 포함되어 있습니다.
- stderr 및 MCP 로깅 프로토콜 모두에 기록합니다.
- 다양한 심각도 ��준(디버그, 정보, 경고, 오류 등)을 지원합니다.
- 문제 해결을 위한 자세한 실행 정보를 제공합니다.
개발
설정
새로운 기능 추가
1. 카테고리 파일 생성
src/categories/newcategory.ts
생성합니다.
2. 스크립트 추가
3. 카테고리 등록
src/index.ts
업데이트:
고급 스크립트 개발
더 복잡한 스크립트의 경우 다음을 수행할 수 있습니다.
- 동적 스크립트 생성을 사용하세요 :
- 복잡한 데이터 처리 :
디버깅
MCP Inspector 사용
MCP Inspector는 서버를 테스트하고 디버깅하기 위한 웹 인터페이스를 제공합니다.
벌채 반출
환경 변수를 설정하여 디버그 로깅을 활성화합니다.
구성 예
npm run build
실행한 후 mcp.json
파일에 다음을 추가합니다.
일반적인 문제
- 권한 오류 : 시스템 환경 설정 > 보안 및 개인 정보 보호 > 개인 정보 보호 > 자동화 확인
- 스크립트 실패 : 통합하기 전에 Script Editor.app에서 직접 스크립트를 테스트합니다.
- 통신 문제 : stdio 스트림이 리디렉션되지 않는지 확인하세요.
- 데이터베이스 액세스 : 일부 기능(예: 메시지)에는 전체 디스크 액세스 권한이 필요합니다.
자원
기여하다
- 저장소를 포크하세요
- 기능 브랜치 생성
- 변경 사항을 커밋하세요
- 지점으로 밀어 넣기
- 풀 리퀘스트 만들기
특허
MIT 라이선스 - 자세한 내용은 라이선스를 참조하세요.
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
AppleScript를 통해 LLM 애플리케이션이 macOS와 상호 작용할 수 있도록 합니다.
Related MCP Servers
- AsecurityAlicenseAqualityEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environmentLast updated -1032785JavaScriptMIT License
- AsecurityFlicenseAqualityEnables LLMs to perform web browsing tasks, take screenshots, and execute JavaScript using Puppeteer for browser automation.Last updated -415,5021JavaScript
- AsecurityFlicenseAqualityEnables browser automation for LLMs on Linux display servers, supporting web interaction, screenshots, and JavaScript execution in a real browser.Last updated -754JavaScript
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -17PythonApache 2.0