Siri Shortcuts
Siri Shortcuts
Siri Shortcuts MCP 서버는 macOS의 Shortcuts 앱 기능을 Model Context Protocol(MCP)를 통해 제공하며, LLM이 macOS에서 Siri 단축어를 검색, 실행, 관리할 수 있게 해주는 서버입니다. 이를 통해 AI 에이전트는 사용자가 미리 정의한 자동화 워크플로우에 접근하여 다양한 시스템 작업, 앱 상호작용, 데이터 처리 등을 수행할 수 있습니다. 각 단축어는 개별 도구로 동적 생성되어 자연스러운 상호작용이 가능합니다.
특징
- 단축어 목록 조회: 사용 가능한 모든 Shortcuts 앱 단축어 목록 제공
- 단축어 실행: 이름으로 특정 단축어 실행 기능
- 매개변수 지원: 입력이 필요한 단축어에 매개변수 전달
- 동적 도구 생성: 각 단축어를 별도의 MCP 도구로 자동 노출
- 결과 반환: 단축어 실행 결과를 클라이언트에 반환
- Shortcuts 앱 통합: macOS Shortcuts 앱과 직접 통합
- 프로세스 간 통신: AppleScript를 통한 시스템 수준 통합
- 무상태 운영: 서버 재시작 시에도 항상 최신 단축어 목록 동기화
API
도구
단축어 관리
- list_shortcuts: 사용 가능한 모든 단축어 목록 조회
- 입력: 없음
-
출력: 단축어 이름 및 설명 목록
-
open_shortcut: Shortcuts 앱에서 단축어 열기
- 입력: 단축어 이름
- 출력: 열기 성공 여부
단축어 실행
- run_shortcut: 단축어 실행
- 입력: 단축어 이름, 입력 값(선택적)
-
출력: 실행 결과
-
run_shortcut_[이름]: 특정 단축어 전용 도구
- 입력: 단축어 매개변수(해당하는 경우)
- 출력: 실행 결과
시스템 통합
- get_system_info: 시스템 정보 조회
- 입력: 정보 유형(선택적)
-
출력: macOS 및 Shortcuts 관련 시스템 정보
-
get_shortcuts_version: Shortcuts 앱 버전 조회
- 입력: 없음
- 출력: 현재 설치된 Shortcuts 앱 버전
사용 방법
설치
# npm을 통한 설치
npm install -g mcp-server-siri-shortcuts
# 또는 Smithery를 통한 설치
npx -y @smithery/cli install @dvcrn/mcp-server-siri-shortcuts --client claude
# 또는 Docker 이미지 사용
docker pull ghcr.io/metorial/mcp-container--dvcrn--mcp-server-siri-shortcuts--mcp-server-siri-shortcuts
구성
Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정합니다:
{
"mcpServers": {
"siri-shortcuts": {
"command": "npx",
"args": ["-y", "mcp-server-siri-shortcuts"],
"env": {}
}
}
}
Docker를 사용하는 경우:
{
"mcpServers": {
"siri-shortcuts": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--dvcrn--mcp-server-siri-shortcuts--mcp-server-siri-shortcuts",
"npm run start"
]
}
}
}
필요 조건
- macOS: 12.0 (Monterey) 이상
- Shortcuts 앱: macOS에 설치되어 있어야 함
- Node.js: v14 이상
- 권한: 자동화 권한이 Shortcuts 앱에 부여되어 있어야 함
사용 예시
// 사용 가능한 단축어 목록 조회
const shortcuts = await list_shortcuts();
console.log(`사용 가능한 단축어: ${shortcuts.length}개`);
shortcuts.forEach(shortcut => {
console.log(`- ${shortcut.name}`);
});
// 기본 방식으로 단축어 실행
const result = await run_shortcut({
name: "날씨 요약 가져오기",
input: "서울"
});
console.log(`실행 결과: ${result}`);
// 특정 단축어 전용 도구 사용
const reminderResult = await run_shortcut_create_reminder({
title: "보고서 작성하기",
dueDate: "tomorrow at 3pm",
priority: "high"
});
console.log(`알림 생성 결과: ${reminderResult}`);
// Shortcuts 앱에서 단축어 열기
await open_shortcut("이메일 요약");
console.log("Shortcuts 앱에서 단축어가 열렸습니다.");
// 시스템 정보 조회
const systemInfo = await get_system_info();
console.log(`macOS 버전: ${systemInfo.osVersion}`);
console.log(`Shortcuts 앱 버전: ${systemInfo.shortcutsVersion}`);