local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Allows interaction with macOS through AppleScript, including calendar management, clipboard operations, Finder integration, system notifications, system controls, and iTerm terminal integration
Required as a prerequisite for running the MCP server
Planned feature to allow opening pages in Safari, saving page content, and getting selected page/tab
applescript-mcp MCP 서버
LLM 애플리케이션이 AppleScript를 통해 macOS와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜(Model Context Protocol) 서버입니다. 이 서버는 AI 애플리케이션이 시스템 기능을 제어하고, 파일을 관리하고, 알림을 처리하는 등의 작업을 수행할 수 있는 표준화된 인터페이스를 제공합니다.
특징
- 🗓️ 캘린더 관리(이벤트, 알림)
- 📋 클립보드 작업
- 🔍 Finder 통합
- 🔔 시스템 알림
- ⚙️ 시스템 제어(볼륨, 다크 모드, 앱)
- 📟 iTerm 터미널 통합
- 📬 메일(새 이메일 만들기, 이메일 목록, 이메일 받기)
- 🔄 단축키 자동화
- 💬 메시지(채팅 목록, 메시지 받기, 메시지 검색, 메시지 보내기)
계획된 기능
- 🧭 Safari(Safari에서 열기, 페이지 내용 저장, 선택한 페이지/탭 가져오기)
- ✅ 알림(생성, 받기)
- 🗒️ 메모(생성, 가져오기, 나열)
필수 조건
- macOS 10.15 이상
- Node.js 18 이상
사용 가능한 카테고리
달력
명령 | 설명 | 매개변수 |
---|---|---|
add | 캘린더 이벤트 만들기 | title , startDate , endDate |
list | 오늘의 이벤트를 나열하세요 | 없음 |
클립보드
명령 | 설명 | 매개변수 |
---|---|---|
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 (선택 사항) |
우편
명령 | 설명 | 매개변수 |
---|---|---|
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 (선택 사항) |
get_messages | 메시지 앱에서 메시지 받기 | limit (선택 사항, 기본값: 100) |
search_messages | 특정 텍스트가 포함된 메시지 검색 | searchText , sender (선택 사항), chatId (선택 사항), limit (선택 사항, 기본값: 50), daysBack (선택 사항, 기본값: 30) |
compose_message | 미리 채워진 메시지 또는 자동 전송으로 메시지 앱을 엽니다. | recipient (필수), body (선택), auto (선택, 기본값: false) |
개발
설정
지엑스피1
새로운 기능 추가
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.
AppleScript를 통해 LLM 애플리케이션이 macOS와 상호 작용할 수 있도록 합니다.