역링크
ClickUp
ClickUp
ClickUp MCP 서버는 ClickUp 프로젝트 관리 플랫폼과 상호작용할 수 있는 Model Context Protocol 서버입니다. 이 서버를 통해 AI 어시스턴트는 ClickUp의 작업, 리스트, 폴더, 스페이스 등을 관리하고 조작할 수 있으며, 작업 생성, 업데이트, 대량 작업 등을 지원합니다.
특징
- 작업(Task) 생성, 조회, 편집 및 삭제
- 리스트, 폴더, 스페이스 관리
- 상태, 태그, 우선순위 관리
- 사용자 지정 필드 지원
- 댓글 및 첨부 파일 관리
- 작업 할당 및 담당자 관리
- 시간 추적 및 로깅
- 대시보드 및 뷰 조회
- 자동화 룰 설정
- 대량 작업 처리 기능
- 세부 권한 설정 지원
- 팀 및 워크스페이스 관리
API
리소스
clickup://workspaces/{workspace_id}
- 특정 워크스페이스의 정보와 스페이스 목록을 제공합니다.
clickup://spaces/{space_id}
- 특정 스페이스의 정보와 폴더 및 리스트를 제공합니다.
clickup://folders/{folder_id}
- 특정 폴더의 정보와 리스트를 제공합니다.
clickup://lists/{list_id}
- 특정 리스트의 정보와 작업을 제공합니다.
clickup://tasks/{task_id}
- 특정 작업의 세부 정보를 제공합니다.
도구
워크스페이스 및 스페이스 관리
list_workspaces
사용 가능한 워크스페이스를 나열합니다. - 입력: 없음 - 출력: 워크스페이스 ID, 이름 및 설정을 포함한 목록
get_workspace
특정 워크스페이스의 정보를 가져옵니다. - 입력: - workspace_id: 워크스페이스 ID - 출력: 워크스페이스 상세 정보
list_spaces
워크스페이스 내의 스페이스를 나열합니다. - 입력: - workspace_id: 워크스페이스 ID - archived: (선택적) 보관된 스페이스 포함 여부 - 출력: 스페이스 목록
get_space
특정 스페이스의 정보를 가져옵니다. - 입력: - space_id: 스페이스 ID - 출력: 스페이스 상세 정보
create_space
새 스페이스를 생성합니다. - 입력: - workspace_id: 워크스페이스 ID - name: 스페이스 이름 - features: (선택적) 활성화할 기능 - multiple_assignees: (선택적) 다중 담당자 허용 여부 - 출력: 생성된 스페이스 정보
폴더 및 리스트 관리
list_folders
스페이스 내의 폴더를 나열합니다. - 입력: - space_id: 스페이스 ID - archived: (선택적) 보관된 폴더 포함 여부 - 출력: 폴더 목록
get_folder
특정 폴더의 정보를 가져옵니다. - 입력: - folder_id: 폴더 ID - 출력: 폴더 상세 정보
create_folder
새 폴더를 생성합니다. - 입력: - space_id: 스페이스 ID - name: 폴더 이름 - 출력: 생성된 폴더 정보
list_lists
폴더 또는 스페이스 내의 리스트를 나열합니다. - 입력: - folder_id 또는 space_id: 폴더 ID 또는 스페이스 ID - archived: (선택적) 보관된 리스트 포함 여부 - 출력: 리스트 목록
get_list
특정 리스트의 정보를 가져옵니다. - 입력: - list_id: 리스트 ID - 출력: 리스트 상세 정보
create_list
새 리스트를 생성합니다. - 입력: - folder_id 또는 space_id: 폴더 ID 또는 스페이스 ID - name: 리스트 이름 - content: (선택적) 리스트 설명 - due_date: (선택적) 마감일 - priority: (선택적) 우선순위 - assignee: (선택적) 담당자 - 출력: 생성된 리스트 정보
작업 관리
list_tasks
리스트 내의 작업을 나열합니다. - 입력: - list_id: 리스트 ID - archived: (선택적) 보관된 작업 포함 여부 - subtasks: (선택적) 하위 작업 포함 여부 - statuses: (선택적) 상태 필터 - assignees: (선택적) 담당자 필터 - due_date_gt: (선택적) 특정 날짜 이후 마감일 - due_date_lt: (선택적) 특정 날짜 이전 마감일 - order_by: (선택적) 정렬 기준 - 출력: 작업 목록
get_task
특정 작업의 정보를 가져옵니다. - 입력: - task_id: 작업 ID - include_subtasks: (선택적) 하위 작업 포함 여부 - 출력: 작업 상세 정보
create_task
새 작업을 생성합니다. - 입력: - list_id: 리스트 ID - name: 작업 이름 - description: (선택적) 작업 설명 - priority: (선택적) 우선순위 - status: (선택적) 상태 - assignees: (선택적) 담당자 배열 - tags: (선택적) 태그 배열 - due_date: (선택적) 마감일 - start_date: (선택적) 시작일 - time_estimate: (선택적) 예상 소요 시간(분) - custom_fields: (선택적) 사용자 지정 필드 - 출력: 생성된 작업 정보
update_task
기존 작업을 업데이트합니다. - 입력: - task_id: 작업 ID - name: (선택적) 새 작업 이름 - description: (선택적) 새 작업 설명 - status: (선택적), 새 상태 - priority: (선택적) 새 우선순위 - assignees: (선택적) 새 담당자 배열 - tags: (선택적) 새 태그 배열 - due_date: (선택적) 새 마감일 - start_date: (선택적) 새 시작일 - time_estimate: (선택적) 새 예상 소요 시간 - custom_fields: (선택적) 새 사용자 지정 필드 - 출력: 업데이트된 작업 정보
delete_task
작업을 삭제합니다. - 입력: - task_id: 작업 ID - 출력: 삭제 결과
create_subtask
하위 작업을 생성합니다. - 입력: - parent_task_id: 상위 작업 ID - name: 하위 작업 이름 - description: (선택적) 하위 작업 설명 - priority: (선택적) 우선순위 - status: (선택적) 상태 - assignees: (선택적) 담당자 배열 - due_date: (선택적) 마감일 - 출력: 생성된 하위 작업 정보
댓글 관리
list_task_comments
작업의 댓글을 나열합니다. - 입력: - task_id: 작업 ID - 출력: 댓글 목록
add_task_comment
작업에 댓글을 추가합니다. - 입력: - task_id: 작업 ID - comment_text: 댓글 내용 - assignee: (선택적) 댓글 담당자 - notify_all: (선택적) 모든 사람에게 알림 여부 - 출력: 생성된 댓글 정보
시간 추적
list_time_entries
작업의 시간 기록을 나열합니다. - 입력: - task_id: 작업 ID - start_date: (선택적) 시작 날짜 - end_date: (선택적) 종료 날짜 - 출력: 시간 기록 목록
create_time_entry
새 시간 기록을 생성합니다. - 입력: - task_id: 작업 ID - start: 시작 시간 (Unix 타임스탬프) - duration: 소요 시간(밀리초) - description: (선택적) 설명 - 출력: 생성된 시간 기록 정보
대량 작업
bulk_update_tasks
여러 작업을 한 번에 업데이트합니다. - 입력: - task_ids: 작업 ID 배열 - status: (선택적) 새 상태 - priority: (선택적) 새 우선순위 - assignees: (선택적) 새 담당자 배열 - due_date: (선택적) 새 마감일 - tags: (선택적) 새 태그 배열 - 출력: 업데이트 결과
bulk_delete_tasks
여러 작업을 한 번에 삭제합니다. - 입력: - task_ids: 삭제할 작업 ID 배열 - 출력: 삭제 결과
사용 방법
설치 및 구성
- 사전 요구 사항:
- ClickUp 계정
-
ClickUp API 키
-
MCP 서버 설치:
pip install clickup-mcp-server -
Claude Desktop 구성:
{ "mcpServers": { "clickup": { "command": "python", "args": ["-m", "clickup_mcp"], "env": { "CLICKUP_API_KEY": "your-api-key", "CLICKUP_DEFAULT_WORKSPACE": "your-workspace-id", "CLICKUP_DEFAULT_SPACE": "your-space-id" } } } } -
API 키 획득 방법:
- ClickUp 계정에 로그인
- 왼쪽 하단의 사용자 프로필 클릭
- "Apps" 선택
- "API Tokens" 섹션에서 "Generate API Token" 클릭
-
생성된 토큰을 안전하게 저장
-
구성 옵션:
CLICKUP_API_KEY: ClickUp API 키 (필수)CLICKUP_DEFAULT_WORKSPACE: 기본 워크스페이스 ID (선택적)CLICKUP_DEFAULT_SPACE: 기본 스페이스 ID (선택적)CLICKUP_DEFAULT_LIST: 기본 리스트 ID (선택적)CLICKUP_CACHE_TTL: 캐시 수명(초) (기본값: 300)CLICKUP_RATE_LIMIT: API 요청 간 최소 간격(밀리초) (기본값: 100)CLICKUP_LOG_LEVEL: 로그 수준 (기본값: INFO)
기본 사용 예시
-
워크스페이스 및 스페이스 확인:
// 사용 가능한 워크스페이스 확인 list_workspaces() // 특정 워크스페이스의 스페이스 확인 list_spaces({ workspace_id: "12345678" }) -
새 작업 생성:
create_task({ list_id: "87654321", name: "웹사이트 디자인 개선", description: "홈페이지 디자인을 모던하게 개선하여 사용자 경험을 향상시킵니다.", priority: 2, // 높음 status: "진행 중", assignees: ["12345"], // 사용자 ID due_date: 1728291600000, // Unix 타임스탬프 (2025-06-07) tags: ["디자인", "웹사이트"], custom_fields: { "budget": "5000", // 사용자 지정 필드 ID: 값 "department": "마케팅" } }) -
특정 리스트의 작업 조회:
list_tasks({ list_id: "87654321", statuses: ["진행 중", "검토 중"], due_date_gt: 1719792000000, // 2025-05-01 due_date_lt: 1727539200000, // 2025-05-31 order_by: "due_date" }) -
작업 업데이트:
update_task({ task_id: "abc123", status: "완료됨", priority: 3, // 보통 due_date: 1727452800000, // 2025-05-30 description: "원래 설명에 추가된 내용: 모바일 대응 디자인 포함" }) -
작업에 댓글 추가:
add_task_comment({ task_id: "abc123", comment_text: "최신 디자인 가이드라인에 맞게 디자인을 업데이트했습니다. 피드백 부탁드립니다.", notify_all: true }) -
여러 작업 한 번에 업데이트:
bulk_update_tasks({ task_ids: ["abc123", "def456", "ghi789"], status: "검토 중", assignees: ["67890"] // 새 담당자 ID }) -
시간 기록 추가:
create_time_entry({ task_id: "abc123", start: 1719926400000, // 2025-05-01 10:00:00 duration: 7200000, // 2시간 (밀리초) description: "디자인 초안 작업" })
보안 고려사항
- ClickUp API 키는 매우 민감한 정보이므로 안전하게 관리해야 합니다.
- API 키는 해당 사용자와 동일한 권한을 가지므로, 권한이 제한된 계정으로 API 키를 생성하는 것이 좋습니다.
- 환경 변수나 구성 파일에 저장된 API 키를 안전하게 관리하세요.
- 민감한 프로젝트 데이터나 개인 정보가 포함된 내용을 외부에 노출하지 않도록 주의하세요.
- API 호출 제한을 고려하여 불필요한 요청을 최소화하세요.