Skip to main content
Glama
TickTick MCP Server
by jawello

TickTick MCP Server -- Claude를 위한 완벽한 TickTick 통합

License: MIT Version Python Tools Glama

28가지 도구. 전체 CRUD. 스마트 쿼리. 다중 조건 필터. 일괄 작업. GTD 지원. Dida365 호환.

Claude를 TickTick 계정에 연결하고 자연어 대화로 전체 작업 시스템을 관리하세요 -- 작업 생성, 프로젝트 간 검색, 기한 초과 항목 확인, 일괄 생성, 앱을 열지 않고도 체계적으로 유지할 수 있습니다.

"뭐가 기한이 지났지?" --> 모든 프로젝트에서 놓친 마감 기한을 즉시 보여줍니다.


왜 이 서버인가?

기능

이 서버

TickTick 공식 MCP

jacepark12

도구

28

22

~20

다중 조건 필터

예 (우선순위 + 태그 + 날짜 + 프로젝트)

예

아니요

프로젝트 간 작업 이동

예

예

아니요

일괄 완료

예 (최대 20개)

예 (최대 20개)

아니요

일괄 업데이트

예

예

아니요

완료된 작업 보기

예

예

아니요

프로젝트 간 검색

전체 텍스트 검색

예

예

하위 작업

예

아니요

아니요

GTD 집중 보기

예 (높은 우선순위 + 기한 + 기한 초과)

아니요

부분

Dida365 지원

예 (구성 가능한 기본 URL)

아니요

예

비동기 (httpx)

예

해당 없음

아니요 (동기 요청)

Pydantic 검증

예 (타입 입력)

해당 없음

아니요

MCP 주석

예 (readOnly, destructive 힌트)

해당 없음

아니요

자체 호스팅 / 오픈 소스

예

아니요 (호스팅 서비스)

예

개인정보 보호

100% 로컬, 토큰만 사용

TickTick 서버를 거침

100% 로컬


Related MCP server: TickTick MCP

빠른 시작

사전 요구 사항

1단계 -- 클론 및 설치

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

2단계 -- TickTick 개발자 앱 등록

  1. developer.ticktick.com으로 이동

  2. New App을 클릭하고 아무 이름이나 입력

  3. OAuth Redirect URL을 http://localhost:8080/callback으로 설정

  4. Client ID와 Client Secret을 복사

3단계 -- 인증

TICKTICK_CLIENT_ID=your_id TICKTICK_CLIENT_SECRET=your_secret .venv/bin/python3 setup_auth.py

브라우저가 열려 앱을 승인합니다. Allow를 클릭하세요 -- 토큰은 ~/.ticktick_mcp/tokens.json에 저장되고 자동으로 갱신됩니다.

4단계 -- Claude Code에 등록

claude mcp add ticktick \
  -e TICKTICK_CLIENT_ID=your_id \
  -e TICKTICK_CLIENT_SECRET=your_secret \
  -- /path/to/ticktick-mcp/.venv/bin/python3 /path/to/ticktick-mcp/server.py

Claude Desktop의 경우

claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "/path/to/ticktick-mcp/.venv/bin/python3",
      "args": ["/path/to/ticktick-mcp/server.py"],
      "env": {
        "TICKTICK_CLIENT_ID": "your_id",
        "TICKTICK_CLIENT_SECRET": "your_secret"
      }
    }
  }
}

5단계 -- 생산성 스킬 추가 (선택 사항)

mkdir -p ~/.claude/skills/ticktick
cp skills/ticktick/SKILL.md ~/.claude/skills/ticktick/

Dida365 지원

Dida365(TickTick의 중국어 버전)의 경우 다음 환경 변수를 설정하세요:

TICKTICK_BASE_URL=https://api.dida365.com/open/v1
TICKTICK_TOKEN_URL=https://dida365.com/oauth/token

사용 예시

사용자 말

결과

"금요일에 치과에 전화하라고 알려줘"

기한이 있는 작업 생성

"'Q1 보고서 검토'를 업무에 추가, 높은 우선순위"

업무 프로젝트에 작업, 우선순위 5

"뭐가 기한이 지났지?"

모든 프로젝트의 기한 초과 작업 표시

"무엇에 집중해야 할까?"

GTD 보기: 높은 우선순위 + 오늘 기한 + 기한 초과

"'예산'에 대해 검색해줘"

모든 프로젝트 전체 텍스트 검색

"높은 우선순위 작업을 모두 보여줘"

프로젝트 간 우선순위=5 필터

"이번 주에 기한인 것은?"

다음 7일 내 기한인 작업

"작업 생성: 우유 사기, 존에게 전화, 보고서 제출"

3개 작업 일괄 생성

"'휴가 계획'이라는 프로젝트를 만들어줘"

새 프로젝트 생성

"휴가 작업 아래에 '선크림 사기' 하위 작업 추가"

하위 작업 생성

"치과 작업을 끝냈어"

작업 완료 표시

"오래된 스프린트 프로젝트 삭제"

프로젝트 및 모든 작업 삭제


MCP 도구 참조

프로젝트 (5개 도구)

도구

설명

ticktick_list_projects

ID, 이름, 색상과 함께 모든 프로젝트 나열

ticktick_get_project

특정 프로젝트의 세부 정보 가져오기

ticktick_get_project_with_tasks

프로젝트 세부 정보 + 완료되지 않은 모든 작업을 한 번에 가져오기

ticktick_create_project

새 프로젝트 생성 (이름, 색상, 보기 모드)

ticktick_update_project

프로젝트의 이름, 색상 또는 보기 모드 업데이트

ticktick_delete_project

프로젝트 영구 삭제

작업 -- 기본 CRUD (7개 도구)

도구

설명

ticktick_list_tasks

특정 프로젝트의 모든 작업 나열

ticktick_create_task

작업 생성 (제목, 기한, 우선순위, 프로젝트, 태그)

ticktick_get_task

특정 작업의 전체 세부 정보 가져오기

ticktick_update_task

제목, 내용, 날짜 또는 우선순위 업데이트

ticktick_complete_task

작업을 완료로 표시

ticktick_delete_task

작업 영구 삭제

ticktick_create_subtask

상위 작업 아래에 하위 작업 생성

작업 -- 스마트 쿼리 (7개 도구)

도구

설명

ticktick_get_all_tasks

모든 활성 프로젝트의 모든 작업 가져오기

ticktick_search_tasks

제목, 내용, 하위 작업 전체 텍스트 검색

ticktick_get_tasks_by_priority

우선순위별 필터 (없음/낮음/중간/높음)

ticktick_get_tasks_due_today

모든 프로젝트에서 오늘 기한인 작업

ticktick_get_overdue_tasks

모든 프로젝트의 모든 기한 초과 작업

ticktick_get_tasks_due_this_week

다음 7일 내 기한인 작업

ticktick_get_tasks_due_in_days

정확히 N일 후에 기한인 작업

작업 -- 일괄 및 생산성 (5개 도구)

도구

설명

ticktick_batch_create_tasks

여러 작업을 한 번에 생성

ticktick_batch_update_tasks

여러 작업을 한 번에 업데이트

ticktick_complete_tasks_bulk

한 번에 최대 20개 작업을 완료로 표시

ticktick_move_task

작업을 한 프로젝트에서 다른 프로젝트로 이동

ticktick_get_focus_tasks

GTD 집중 보기: 높은 우선순위 + 오늘 기한 + 기한 초과

작업 -- 고급 필터 (2개 도구)

도구

설명

ticktick_filter_tasks

다중 조건 필터: 우선순위 + 태그 + 날짜 범위 + 프로젝트 + 상태

ticktick_get_completed_tasks

프로젝트에서 완료된 작업 보기

사용자 (1개 도구)

도구

설명

ticktick_get_user_preferences

사용자 설정 가져오기 (시간대, 주 시작일 등)


아키텍처

ticktick_mcp/server.py # All MCP tools, async httpx, flat tool arguments
server.py              # Thin entry point re-exporting the package
setup_auth.py          # One-time OAuth 2.0 setup (browser-based)
~/.ticktick_mcp/       # Token storage (auto-refreshed)
skills/ticktick/       # Claude skill for natural task language

설계 선택:

  • 모든 곳에서 비동기 -- httpx.AsyncClient로 비차단 API 호출

  • 평면 도구 인자 -- 단일 params 객체가 아닌 인자당 Annotated[T, Field(...)]: 에이전트는 평면 인자를 안정적으로 생성하며 래퍼를 자주 누락합니다

  • MCP 주석 -- 더 안전한 도구 사용을 위한 readOnlyHint, destructiveHint

  • 자동 토큰 갱신 -- 60초 버퍼로 토큰이 투명하게 갱신됩니다


문제 해결

"Given client ID does not match" -- developer.ticktick.com에서 Client ID를 다시 확인하세요.

포트 8080이 이미 사용 중 -- lsof -ti:8080 | xargs kill -9 실행 후 다시 시도하세요.

토큰 만료 -- setup_auth.py를 다시 실행하여 새 토큰을 받으세요.

Claude가 도구를 인식하지 못함 -- claude mcp list를 실행하여 등록을 확인하세요.


기여

기여를 환영합니다! 변경하고 싶은 내용을 논의하기 위해 먼저 이슈를 열어주세요.

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# Make your changes to server.py
# Test: python3 -c "from server import mcp; print(len(mcp._tool_manager._tools), 'tools')"

링크


라이선스

MIT (c) Salen-Project

Related MCP Connectors

Related MCP Servers