Skip to main content
Glama
plhyun22

TickTick Calendar MCP Server

by plhyun22
README.md
# TickTick Calendar MCP Server

사내 일정관리 앱(TickTick)과 Obsidian(Claude Code) 연동을 위한 MCP 서버입니다.

## 설치

### 1. 클론

```bash
git clone https://github.com/plhyun22/ticktick-mcp-server.git
cd ticktick-mcp-server
npm install
```

### 2. 환경변수 설정

```bash
cp .env.example .env
```

`.env` 파일을 열어 아래 두 값을 설정합니다:

```env
CALENDAR_SERVER_URL=http://[서버IP]:4000   # 관리자에게 문의
MCP_API_KEY=...                             # 관리자에게 문의
```

### 3. Claude Code에 MCP 등록

`~/.claude/settings.json` 파일에 아래 내용을 추가합니다:

```json
{
  "mcpServers": {
    "ticktick-calendar": {
      "command": "node",
      "args": ["<클론한 경로>/index.js"],
      "env": {
        "CALENDAR_SERVER_URL": "http://[서버IP]:4000",
        "MCP_API_KEY": "..."
      }
    }
  }
}
```

> **자동 설치**: 아래 Claude Code 설치 프롬프트를 사용하면 위 과정을 자동으로 처리합니다.

---

## Claude Code 자동 설치 프롬프트

아래 텍스트를 복사하여 Claude Code 채팅창에 붙여넣으세요.
`[서버IP]`, `[API_KEY]`, `[클론경로]`는 관리자에게 받은 값으로 교체하세요.

```
다음 작업을 순서대로 수행해줘:

1. 아래 경로에 ticktick-mcp-server 폴더를 만들고 이 저장소를 클론해줘:
   - Windows: C:\Users\{사용자명}\ticktick-mcp-server
   - Mac/Linux: ~/ticktick-mcp-server
   git clone https://github.com/plhyun22/ticktick-mcp-server.git <위 경로>

2. 클론한 폴더에서 npm install 실행

3. 클론한 폴더에 .env 파일 생성:
   CALENDAR_SERVER_URL=http://[서버IP]:4000
   MCP_API_KEY=[API_KEY]

4. 홈 디렉토리의 .claude/settings.json 파일을 열어서 (없으면 생성)
   mcpServers 항목에 아래 내용을 추가해줘:
   {
     "ticktick-calendar": {
       "command": "node",
       "args": ["<클론경로>/index.js"],
       "env": {
         "CALENDAR_SERVER_URL": "http://[서버IP]:4000",
         "MCP_API_KEY": "[API_KEY]"
       }
     }
   }

5. 설정 완료 후 사용 가능한 MCP 툴 목록을 알려줘.
```

---

## Claude Code 업데이트 프롬프트

MCP 서버가 업데이트됐을 때 아래 텍스트를 복사하여 Claude Code 채팅창에 붙여넣으세요.

```
ticktick MCP 업데이트 해줘. ~/.claude/settings.json 에서 ticktick-calendar MCP 서버의 index.js 경로를 찾아서, 그 상위 폴더(git 저장소)에서 git pull 실행하고 결과 알려줘. 완료되면 Claude Code 재시작이 필요하다고 안내해줘.
```

---

## 사용 가능한 MCP 툴

| 툴 | 설명 |
|----|------|
| `list_users` | 팀원 프로필 목록 조회 (user_id 확인용) |
| `list_calendars` | 전체 캘린더 목록 조회 (calendar_id 확인용) |
| `parse_and_register` | 마크다운 텍스트 → AI 파싱 → 캘린더 등록 |
| `register_file` | 로컬 .md 파일 경로 → 직접 읽어서 등록 |

### 파라미터

`parse_and_register` / `register_file` 공통:

| 파라미터 | 필수 | 설명 |
|----------|------|------|
| `content` / `file_path` | ✓ | 파싱할 텍스트 또는 파일 경로 |
| `calendar_id` | ✓ | 등록할 캘린더 ID (`list_calendars`로 확인) |
| `user_id` | - | 작성자 유저 ID (`list_users`로 확인) — 생략 시 캘린더 소유자로 등록 |

### 사용 예시

**팀 캘린더에 파일 등록**
```
이 파일을 팀 캘린더에 등록해줘: /path/to/wiki/8월업무계획.md
```

**개인 일정 등록 (프로필 지정)**
```
아래 내용을 차태현 씨 캘린더에 일정으로 등록해줘:
- 8월 5일 오후 2시 서버 점검
- 8월 12일 팀 미팅
```

**팀 일정 등록**
```
아래 내용을 팀 캘린더에 일정으로 등록해줘:
- 8월 5일 오후 2시 전체 회의
```