nworks 0.6.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -127
- package/dist/index.js +419 -28
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +275 -18
- package/dist/mcp.js.map +1 -1
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -1,79 +1,141 @@
|
|
|
1
1
|
# nworks
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/nworks)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://www.npmjs.com/package/nworks)
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
First full MCP server for NAVER WORKS.
|
|
8
|
+
NAVER WORKS API를 스크립트나 AI 에이전트에서 쓰기 쉽게 만든 CLI + MCP 서버입니다.
|
|
9
|
+
|
|
10
|
+
**Automate messages, calendar, drive, mail, tasks, and boards — from CLI or AI agents.**
|
|
11
|
+
|
|
12
|
+
## Quickstart
|
|
6
13
|
|
|
7
14
|
```bash
|
|
8
|
-
|
|
15
|
+
npm install -g nworks
|
|
16
|
+
nworks login --user
|
|
17
|
+
nworks calendar list
|
|
9
18
|
```
|
|
10
19
|
|
|
11
|
-
|
|
20
|
+
### AI 에이전트가 실제로 이렇게 씁니다
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
User: 오늘 일정 알려줘
|
|
24
|
+
|
|
25
|
+
Claude → nworks_calendar_list
|
|
26
|
+
→ 3건: 스탠드업(10:00), 점심미팅(12:00), 코드리뷰(15:00)
|
|
27
|
+
|
|
28
|
+
User: 팀 채널에 배포 완료 메시지 보내줘
|
|
29
|
+
|
|
30
|
+
Claude → nworks_message_send
|
|
31
|
+
{ "channel": "C001", "text": "v1.2.0 배포 완료" }
|
|
32
|
+
→ Message sent
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Install
|
|
12
36
|
|
|
13
37
|
```bash
|
|
14
|
-
|
|
38
|
+
npx nworks # 바로 실행
|
|
39
|
+
npm install -g nworks # 글로벌 설치
|
|
15
40
|
```
|
|
16
41
|
|
|
17
|
-
##
|
|
42
|
+
## 로그인
|
|
18
43
|
|
|
19
44
|
```bash
|
|
20
|
-
#
|
|
21
|
-
nworks login
|
|
22
|
-
--client-id <CLIENT_ID> \
|
|
23
|
-
--client-secret <CLIENT_SECRET> \
|
|
24
|
-
--service-account <SERVICE_ACCOUNT> \
|
|
25
|
-
--private-key <PATH_TO_KEY> \
|
|
26
|
-
--bot-id <BOT_ID>
|
|
45
|
+
# User OAuth (캘린더, 드라이브, 메일, 할 일, 게시판)
|
|
46
|
+
nworks login --user --scope "calendar,calendar.read,file,mail,task,board,user.read"
|
|
27
47
|
|
|
28
|
-
#
|
|
29
|
-
nworks login
|
|
48
|
+
# 봇 메시지 전송이 필요한 경우 (Service Account)
|
|
49
|
+
nworks login
|
|
30
50
|
|
|
31
51
|
# 인증 확인
|
|
32
52
|
nworks whoami
|
|
33
53
|
|
|
34
|
-
#
|
|
35
|
-
nworks
|
|
54
|
+
# 로그아웃
|
|
55
|
+
nworks logout
|
|
56
|
+
```
|
|
36
57
|
|
|
37
|
-
|
|
38
|
-
nworks directory members
|
|
58
|
+
> `nworks login --user`는 CLIENT_ID + CLIENT_SECRET만 있으면 됩니다. 환경변수나 기존 설정에 이미 있는 값은 다시 물어보지 않습니다.
|
|
39
59
|
|
|
40
|
-
|
|
41
|
-
nworks calendar list
|
|
60
|
+
> **Developer Console 설정**: User OAuth를 사용하려면 [Developer Console](https://dev.worksmobile.com)에서 Redirect URL에 `http://localhost:9876/callback`을 등록해야 합니다.
|
|
42
61
|
|
|
43
|
-
|
|
44
|
-
nworks calendar create --title "회의" --start "2026-03-14T14:00+09:00" --end "2026-03-14T15:00+09:00"
|
|
62
|
+
---
|
|
45
63
|
|
|
46
|
-
|
|
47
|
-
nworks drive list
|
|
64
|
+
## MCP 서버 (AI 에이전트 연동)
|
|
48
65
|
|
|
49
|
-
|
|
50
|
-
|
|
66
|
+
Claude Desktop, Cursor 등에서 MCP server로 NAVER WORKS 22개 도구를 사용할 수 있습니다.
|
|
67
|
+
메시지 전송, 일정 관리, 파일 업로드, 메일, 할 일, 게시판까지 — AI 에이전트가 NAVER WORKS 워크플로우를 자동화합니다.
|
|
51
68
|
|
|
52
|
-
|
|
53
|
-
nworks mail send --to "user@example.com" --subject "제목" --body "내용"
|
|
69
|
+
### 설정
|
|
54
70
|
|
|
55
|
-
|
|
56
|
-
nworks mail list
|
|
71
|
+
먼저 로그인합니다:
|
|
57
72
|
|
|
58
|
-
|
|
59
|
-
nworks task
|
|
73
|
+
```bash
|
|
74
|
+
nworks login --user --scope "calendar,calendar.read,file,mail,task,board,user.read"
|
|
75
|
+
```
|
|
60
76
|
|
|
61
|
-
|
|
62
|
-
|
|
77
|
+
그리고 MCP 설정에 추가합니다 (`~/.config/claude/claude_desktop_config.json`):
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"nworks": {
|
|
83
|
+
"command": "nworks",
|
|
84
|
+
"args": ["mcp"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
63
88
|
```
|
|
64
89
|
|
|
65
|
-
|
|
90
|
+
끝입니다. 인증 한 번으로 22개 도구 모두 사용 가능 — 별도 env 설정이 필요 없습니다.
|
|
91
|
+
|
|
92
|
+
### MCP 도구 목록 (22개)
|
|
93
|
+
|
|
94
|
+
| 도구 | 설명 | 필요 인증 |
|
|
95
|
+
|------|------|----------|
|
|
96
|
+
| `nworks_message_send` | 사용자/채널에 메시지 전송 | Service Account |
|
|
97
|
+
| `nworks_message_members` | 채널 구성원 조회 | Service Account |
|
|
98
|
+
| `nworks_directory_members` | 조직 구성원 조회 | Service Account |
|
|
99
|
+
| `nworks_calendar_list` | 캘린더 일정 조회 | User OAuth |
|
|
100
|
+
| `nworks_calendar_create` | 캘린더 일정 생성 | User OAuth |
|
|
101
|
+
| `nworks_calendar_update` | 캘린더 일정 수정 | User OAuth |
|
|
102
|
+
| `nworks_calendar_delete` | 캘린더 일정 삭제 | User OAuth |
|
|
103
|
+
| `nworks_drive_list` | 드라이브 파일/폴더 목록 | User OAuth |
|
|
104
|
+
| `nworks_drive_upload` | 드라이브 파일 업로드 | User OAuth |
|
|
105
|
+
| `nworks_drive_download` | 드라이브 파일 다운로드 | User OAuth |
|
|
106
|
+
| `nworks_mail_send` | 메일 전송 | User OAuth |
|
|
107
|
+
| `nworks_mail_list` | 메일 목록 조회 | User OAuth |
|
|
108
|
+
| `nworks_mail_read` | 메일 상세 조회 | User OAuth |
|
|
109
|
+
| `nworks_task_list` | 할 일 목록 조회 | User OAuth |
|
|
110
|
+
| `nworks_task_create` | 할 일 생성 | User OAuth |
|
|
111
|
+
| `nworks_task_update` | 할 일 수정/완료 | User OAuth |
|
|
112
|
+
| `nworks_task_delete` | 할 일 삭제 | User OAuth |
|
|
113
|
+
| `nworks_board_list` | 게시판 목록 조회 | User OAuth |
|
|
114
|
+
| `nworks_board_posts` | 게시판 글 목록 조회 | User OAuth |
|
|
115
|
+
| `nworks_board_read` | 게시판 글 상세 조회 | User OAuth |
|
|
116
|
+
| `nworks_board_create` | 게시판 글 작성 | User OAuth |
|
|
117
|
+
| `nworks_whoami` | 인증 상태 확인 | — |
|
|
118
|
+
|
|
119
|
+
### AI 에이전트 사용 예시
|
|
66
120
|
|
|
67
|
-
|
|
121
|
+
```
|
|
122
|
+
User: 내일 오후 2시에 회의 잡고, 팀 채널에 알려줘
|
|
68
123
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
124
|
+
Claude → nworks_calendar_create
|
|
125
|
+
{ "summary": "회의", "start": "2026-03-15T14:00:00", "end": "2026-03-15T15:00:00" }
|
|
126
|
+
→ Event created
|
|
127
|
+
|
|
128
|
+
Claude → nworks_message_send
|
|
129
|
+
{ "channel": "C001", "text": "내일 14:00 회의가 잡혔습니다" }
|
|
130
|
+
→ Message sent
|
|
75
131
|
```
|
|
76
132
|
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## CLI 사용법
|
|
136
|
+
|
|
137
|
+
> 모든 명령어에 `--json` 지원 (파이프, 스크립트, 에이전트 파싱 용이). `message send`, `mail send`, `drive upload`는 `--dry-run`으로 실제 전송 없이 테스트 가능.
|
|
138
|
+
|
|
77
139
|
### 메시지 (Bot API)
|
|
78
140
|
|
|
79
141
|
```bash
|
|
@@ -101,22 +163,16 @@ nworks message members --channel <channelId>
|
|
|
101
163
|
nworks directory members # 조직 구성원 목록
|
|
102
164
|
```
|
|
103
165
|
|
|
104
|
-
### 캘린더 (User OAuth
|
|
166
|
+
### 캘린더 (User OAuth)
|
|
105
167
|
|
|
106
168
|
```bash
|
|
107
169
|
# 오늘 일정 조회
|
|
108
170
|
nworks calendar list
|
|
109
171
|
|
|
110
|
-
# 기간 지정
|
|
172
|
+
# 기간 지정
|
|
111
173
|
nworks calendar list --from "2026-03-14T00:00:00+09:00" --until "2026-03-14T23:59:59+09:00"
|
|
112
174
|
|
|
113
|
-
# 특정 사용자의 일정
|
|
114
|
-
nworks calendar list --user <userId>
|
|
115
|
-
|
|
116
175
|
# 일정 생성
|
|
117
|
-
nworks calendar create --title "회의" --start "2026-03-14T14:00:00+09:00" --end "2026-03-14T15:00:00+09:00"
|
|
118
|
-
|
|
119
|
-
# 초 생략 가능
|
|
120
176
|
nworks calendar create --title "회의" --start "2026-03-14T14:00+09:00" --end "2026-03-14T15:00+09:00"
|
|
121
177
|
|
|
122
178
|
# 장소/설명 포함
|
|
@@ -130,36 +186,22 @@ nworks calendar create --title "팀 회의" --start "2026-03-14T10:00+09:00" --e
|
|
|
130
186
|
# 일정 수정
|
|
131
187
|
nworks calendar update --id <eventId> --title "변경된 제목"
|
|
132
188
|
|
|
133
|
-
# 시간 변경
|
|
134
|
-
nworks calendar update --id <eventId> --start "2026-03-14T15:00+09:00" --end "2026-03-14T16:00+09:00"
|
|
135
|
-
|
|
136
189
|
# 일정 삭제
|
|
137
190
|
nworks calendar delete --id <eventId>
|
|
138
191
|
```
|
|
139
192
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
### 드라이브 (User OAuth 필요)
|
|
193
|
+
### 드라이브 (User OAuth)
|
|
143
194
|
|
|
144
195
|
```bash
|
|
145
|
-
#
|
|
196
|
+
# 파일/폴더 목록
|
|
146
197
|
nworks drive list
|
|
147
198
|
|
|
148
|
-
#
|
|
149
|
-
nworks drive list --folder <folderId>
|
|
150
|
-
|
|
151
|
-
# 페이지네이션
|
|
152
|
-
nworks drive list --count 50 --cursor <nextCursor>
|
|
153
|
-
|
|
154
|
-
# 파일 업로드 (루트)
|
|
199
|
+
# 파일 업로드
|
|
155
200
|
nworks drive upload --file ./report.pdf
|
|
156
201
|
|
|
157
202
|
# 특정 폴더에 업로드
|
|
158
203
|
nworks drive upload --file ./report.pdf --folder <folderId>
|
|
159
204
|
|
|
160
|
-
# 동일 파일명 덮어쓰기
|
|
161
|
-
nworks drive upload --file ./report.pdf --overwrite
|
|
162
|
-
|
|
163
205
|
# 파일 다운로드
|
|
164
206
|
nworks drive download --file-id <fileId>
|
|
165
207
|
|
|
@@ -167,9 +209,7 @@ nworks drive download --file-id <fileId>
|
|
|
167
209
|
nworks drive download --file-id <fileId> --out ./downloads --name report.pdf
|
|
168
210
|
```
|
|
169
211
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
### 메일 (User OAuth 필요)
|
|
212
|
+
### 메일 (User OAuth)
|
|
173
213
|
|
|
174
214
|
```bash
|
|
175
215
|
# 메일 전송
|
|
@@ -188,12 +228,10 @@ nworks mail list --unread
|
|
|
188
228
|
nworks mail read --id <mailId>
|
|
189
229
|
```
|
|
190
230
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
### 할 일 (User OAuth 필요)
|
|
231
|
+
### 할 일 (User OAuth)
|
|
194
232
|
|
|
195
233
|
```bash
|
|
196
|
-
# 할 일 목록
|
|
234
|
+
# 할 일 목록
|
|
197
235
|
nworks task list
|
|
198
236
|
|
|
199
237
|
# 미완료만 조회
|
|
@@ -208,44 +246,31 @@ nworks task create --title "배포" --due 2026-03-20
|
|
|
208
246
|
# 할 일 완료 처리
|
|
209
247
|
nworks task update --id <taskId> --status done
|
|
210
248
|
|
|
211
|
-
# 할 일 미완료로 되돌리기
|
|
212
|
-
nworks task update --id <taskId> --status todo
|
|
213
|
-
|
|
214
249
|
# 할 일 삭제
|
|
215
250
|
nworks task delete --id <taskId>
|
|
216
251
|
```
|
|
217
252
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
### MCP 서버
|
|
253
|
+
### 게시판 (User OAuth)
|
|
221
254
|
|
|
222
255
|
```bash
|
|
223
|
-
|
|
224
|
-
nworks
|
|
225
|
-
```
|
|
256
|
+
# 게시판 목록
|
|
257
|
+
nworks board list
|
|
226
258
|
|
|
227
|
-
|
|
259
|
+
# 게시판 글 목록
|
|
260
|
+
nworks board posts --board <boardId>
|
|
228
261
|
|
|
229
|
-
|
|
262
|
+
# 글 상세 조회
|
|
263
|
+
nworks board read --board <boardId> --post <postId>
|
|
230
264
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
"args": ["-y", "nworks", "mcp"],
|
|
237
|
-
"env": {
|
|
238
|
-
"NWORKS_CLIENT_ID": "<Client ID>",
|
|
239
|
-
"NWORKS_CLIENT_SECRET": "<Client Secret>",
|
|
240
|
-
"NWORKS_SERVICE_ACCOUNT": "<Service Account>",
|
|
241
|
-
"NWORKS_PRIVATE_KEY_PATH": "<Private Key 경로>",
|
|
242
|
-
"NWORKS_BOT_ID": "<Bot ID>"
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
265
|
+
# 글 작성
|
|
266
|
+
nworks board create --board <boardId> --title "공지사항" --body "내용"
|
|
267
|
+
|
|
268
|
+
# 알림 발송 + 댓글 비활성화
|
|
269
|
+
nworks board create --board <boardId> --title "공지" --body "내용" --notify --no-comment
|
|
247
270
|
```
|
|
248
271
|
|
|
272
|
+
---
|
|
273
|
+
|
|
249
274
|
## OAuth Scope 설정
|
|
250
275
|
|
|
251
276
|
[NAVER WORKS Developer Console](https://dev.worksmobile.com)에서 앱의 OAuth Scope를 추가해야 합니다.
|
|
@@ -255,36 +280,29 @@ nworks mcp --list-tools # 등록된 tool 목록
|
|
|
255
280
|
| `bot` | Bot 메시지 전송 | Service Account | `message send` |
|
|
256
281
|
| `bot.read` | Bot 채널/구성원 조회 | Service Account | `message members` |
|
|
257
282
|
| `user.read` | 조직 구성원 조회 | Service Account | `directory members` |
|
|
258
|
-
| `calendar` | 캘린더 쓰기 | User OAuth | `calendar create/update/delete`
|
|
283
|
+
| `calendar` | 캘린더 쓰기 | User OAuth | `calendar create/update/delete` |
|
|
259
284
|
| `calendar.read` | 캘린더 읽기 | User OAuth | `calendar list` |
|
|
260
285
|
| `file` | 드라이브 읽기/쓰기 | User OAuth | `drive list/upload/download` |
|
|
261
286
|
| `file.read` | 드라이브 읽기 전용 | User OAuth | `drive list/download` |
|
|
262
287
|
| `mail` | 메일 읽기/쓰기 | User OAuth | `mail send/list/read` |
|
|
263
288
|
| `mail.read` | 메일 읽기 전용 | User OAuth | `mail list/read` |
|
|
264
|
-
| `task` | 할 일 읽기/쓰기 | User OAuth | `task list/create/update/delete`
|
|
265
|
-
| `task.read` | 할 일 읽기 전용 | User OAuth | `task list`
|
|
289
|
+
| `task` | 할 일 읽기/쓰기 | User OAuth | `task list/create/update/delete` |
|
|
290
|
+
| `task.read` | 할 일 읽기 전용 | User OAuth | `task list` |
|
|
291
|
+
| `board` | 게시판 읽기/쓰기 | User OAuth | `board list/posts/read/create` |
|
|
292
|
+
| `board.read` | 게시판 읽기 전용 | User OAuth | `board list/posts/read` |
|
|
266
293
|
|
|
267
294
|
> **Tip**: scope를 변경한 후에는 토큰을 재발급해야 합니다.
|
|
268
295
|
> ```bash
|
|
269
|
-
> nworks logout && nworks login ...
|
|
296
|
+
> nworks logout && nworks login --user --scope "..."
|
|
270
297
|
> ```
|
|
271
298
|
|
|
272
|
-
> **Developer Console 설정**: User OAuth를 사용하려면 Developer Console에서 Redirect URL에 `http://localhost:9876/callback`을 등록해야 합니다.
|
|
273
|
-
|
|
274
299
|
## 사용 시나리오
|
|
275
300
|
|
|
276
301
|
### CI/CD 배포 알림
|
|
277
302
|
|
|
278
303
|
```bash
|
|
279
304
|
# GitHub Actions에서 배포 완료 후 팀 채널에 알림
|
|
280
|
-
nworks message send --channel $CHANNEL_ID --text "
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### AI 에이전트 메시지
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
# Claude Desktop / Cursor에서 MCP tool로 직접 메시지 전송
|
|
287
|
-
# nworks mcp 서버가 nworks_message_send tool을 제공
|
|
305
|
+
nworks message send --channel $CHANNEL_ID --text "v${VERSION} 배포 완료"
|
|
288
306
|
```
|
|
289
307
|
|
|
290
308
|
### 팀 자동화 스크립트
|
|
@@ -292,34 +310,67 @@ nworks message send --channel $CHANNEL_ID --text "✅ v${VERSION} 배포 완료"
|
|
|
292
310
|
```bash
|
|
293
311
|
# 매일 아침 팀원에게 리마인더 전송
|
|
294
312
|
for userId in $(nworks directory members --json | jq -r '.users[].userId'); do
|
|
295
|
-
nworks message send --to "$userId" --text "
|
|
313
|
+
nworks message send --to "$userId" --text "오늘의 스탠드업 10시입니다"
|
|
296
314
|
done
|
|
297
315
|
```
|
|
298
316
|
|
|
299
|
-
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Advanced Configuration
|
|
320
|
+
|
|
321
|
+
### 환경 변수
|
|
322
|
+
|
|
323
|
+
환경변수로 인증 정보를 설정하면 `nworks login` 없이 바로 사용할 수 있습니다.
|
|
300
324
|
|
|
301
325
|
```bash
|
|
326
|
+
# 공통 (필수)
|
|
302
327
|
NWORKS_CLIENT_ID= # 필수
|
|
303
328
|
NWORKS_CLIENT_SECRET= # 필수
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
329
|
+
|
|
330
|
+
# 봇 메시지 전송 시에만 필요 (User OAuth만 쓰면 불필요)
|
|
331
|
+
NWORKS_SERVICE_ACCOUNT= # 봇 전용
|
|
332
|
+
NWORKS_PRIVATE_KEY_PATH= # 봇 전용
|
|
333
|
+
NWORKS_BOT_ID= # 봇 전용
|
|
334
|
+
|
|
335
|
+
# 선택
|
|
307
336
|
NWORKS_DOMAIN_ID= # optional
|
|
308
337
|
NWORKS_SCOPE= # optional (기본: bot bot.read user.read)
|
|
309
338
|
NWORKS_VERBOSE=1 # optional, 디버그 로깅
|
|
310
339
|
```
|
|
311
340
|
|
|
312
|
-
|
|
341
|
+
### MCP 서버에 환경 변수 직접 설정
|
|
342
|
+
|
|
343
|
+
`nworks login` 대신 환경 변수로 직접 설정할 수도 있습니다:
|
|
344
|
+
|
|
345
|
+
```json
|
|
346
|
+
{
|
|
347
|
+
"mcpServers": {
|
|
348
|
+
"nworks": {
|
|
349
|
+
"command": "npx",
|
|
350
|
+
"args": ["-y", "nworks", "mcp"],
|
|
351
|
+
"env": {
|
|
352
|
+
"NWORKS_CLIENT_ID": "<Client ID>",
|
|
353
|
+
"NWORKS_CLIENT_SECRET": "<Client Secret>"
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
봇 메시지도 사용하려면 `NWORKS_SERVICE_ACCOUNT`, `NWORKS_PRIVATE_KEY_PATH`, `NWORKS_BOT_ID`도 추가합니다.
|
|
361
|
+
|
|
362
|
+
---
|
|
313
363
|
|
|
314
364
|
## Roadmap
|
|
315
365
|
|
|
316
366
|
- ~~**v0.1** — 메시지, 조직 구성원, MCP 서버~~
|
|
317
367
|
- ~~**v0.2** — 캘린더 일정 조회 + User OAuth~~
|
|
318
|
-
- ~~**v0.3** — 드라이브 파일
|
|
319
|
-
- ~~**v0.4** — 메일 (`
|
|
320
|
-
- ~~**v0.5** — 할 일 (`
|
|
321
|
-
- ~~**v0.6** — 캘린더 쓰기 (`
|
|
322
|
-
-
|
|
368
|
+
- ~~**v0.3** — 드라이브 파일 조회/업로드/다운로드~~
|
|
369
|
+
- ~~**v0.4** — 메일 (`mail send/list/read`)~~
|
|
370
|
+
- ~~**v0.5** — 할 일 (`task list/create/update/delete`)~~
|
|
371
|
+
- ~~**v0.6** — 캘린더 쓰기 (`calendar create/update/delete`)~~
|
|
372
|
+
- ~~**v0.7** — 게시판 (`board list/posts/read/create`)~~
|
|
373
|
+
- **v1.0** — User OAuth 단독 로그인, MCP/CLI 인증 UX 개선, README 재구성
|
|
323
374
|
|
|
324
375
|
## License
|
|
325
376
|
|