nworks 1.1.0 → 1.1.1

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.
Files changed (4) hide show
  1. package/README.ja.md +395 -0
  2. package/README.ko.md +395 -0
  3. package/README.md +201 -200
  4. package/package.json +1 -1
package/README.ja.md ADDED
@@ -0,0 +1,395 @@
1
+ # nworks
2
+
3
+ [![npm version](https://img.shields.io/npm/v/nworks.svg)](https://www.npmjs.com/package/nworks)
4
+ [![license](https://img.shields.io/npm/l/nworks.svg)](LICENSE)
5
+ [![npm downloads](https://img.shields.io/npm/dm/nworks.svg)](https://www.npmjs.com/package/nworks)
6
+ [![nworks MCP server](https://glama.ai/mcp/servers/yjcho9317/nworks/badges/score.svg)](https://glama.ai/mcp/servers/yjcho9317/nworks)
7
+
8
+ Featured in [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)
9
+
10
+ [🇺🇸 English](README.md) | [🇰🇷 한국어](README.ko.md) | 🇯🇵 日本語
11
+
12
+ <p align="center">
13
+ <img src="assets/demo.gif" width="600" alt="nworks demo">
14
+ </p>
15
+
16
+ LINE WORKS (NAVER WORKS) 初のMCPサーバー。
17
+ メッセージ、カレンダー、ドライブ、メール、タスク、掲示板 — 26ツール対応のCLI + MCPサーバーです。
18
+
19
+ ## クイックスタート
20
+
21
+ ```bash
22
+ npm install -g nworks
23
+ nworks login --user
24
+ nworks calendar list
25
+ ```
26
+
27
+ ### AIエージェントの使用例
28
+
29
+ ```
30
+ ユーザー: 今日の予定を教えて
31
+
32
+ Claude → nworks_calendar_list
33
+ → 3件: スタンドアップ(10:00)、ランチミーティング(12:00)、コードレビュー(15:00)
34
+
35
+ ユーザー: チームチャンネルにデプロイ完了メッセージを送って
36
+
37
+ Claude → nworks_message_send
38
+ { "channel": "C001", "text": "v1.2.0 デプロイ完了" }
39
+ → メッセージが送信されました
40
+
41
+ ユーザー: 未読メールを確認して要約して
42
+
43
+ Claude → nworks_mail_list (unread)
44
+ → 未読メール3件
45
+ Claude → nworks_mail_read (各)
46
+ → "3件: 1) CTOからのデプロイ承認, 2) 金曜日のミーティング招待, 3) 週次レポートリマインダー"
47
+ ```
48
+
49
+ ## インストール
50
+
51
+ ```bash
52
+ npx nworks # 直接実行
53
+ npm install -g nworks # グローバルインストール
54
+ ```
55
+
56
+ ## ログイン
57
+
58
+ ```bash
59
+ # User OAuth(カレンダー、ドライブ、メール、タスク、掲示板)
60
+ nworks login --user --scope "calendar calendar.read file file.read mail mail.read task task.read board board.read user.read"
61
+
62
+ # ボットメッセージ送信が必要な場合(Service Account)
63
+ nworks login
64
+
65
+ # 認証状態の確認
66
+ nworks whoami
67
+
68
+ # ログアウト
69
+ nworks logout
70
+ ```
71
+
72
+ > `nworks login --user` にはCLIENT_IDとCLIENT_SECRETのみ必要です。環境変数や既存の設定に値がある場合は再入力を求めません。
73
+
74
+ > **Developer Console設定**: User OAuthを使用するには、[Developer Console](https://dev.worksmobile.com/jp/)でRedirect URLに `http://localhost:9876/callback` を登録してください。
75
+
76
+ ---
77
+
78
+ ## AIエージェント連携(MCPサーバー)
79
+
80
+ Claude Desktop、Cursorなど、MCP対応クライアントから利用できます。
81
+
82
+ ### セットアップ
83
+
84
+ まずログインします:
85
+
86
+ ```bash
87
+ nworks login --user --scope "calendar calendar.read file file.read mail mail.read task task.read board board.read user.read"
88
+ ```
89
+
90
+ 次にMCP設定に追加します(`~/.config/claude/claude_desktop_config.json`):
91
+
92
+ ```json
93
+ {
94
+ "mcpServers": {
95
+ "nworks": {
96
+ "command": "nworks",
97
+ "args": ["mcp"]
98
+ }
99
+ }
100
+ }
101
+ ```
102
+
103
+ 一度のログインで26ツールすべて利用可能。追加のenv設定は不要です。
104
+
105
+ > CLIログインなしでも、AIエージェントが `nworks_setup` → `nworks_login_user` を呼び出せばブラウザから直接認証できます。
106
+
107
+ ### MCPツール一覧(26個)
108
+
109
+ | ツール | 説明 | 必要な認証 |
110
+ |--------|------|-----------|
111
+ | **設定/認証** | | |
112
+ | `nworks_setup` | API認証情報の設定(Client ID/Secretなど) | — |
113
+ | `nworks_login_user` | User OAuthブラウザログイン(全scope自動含む) | — |
114
+ | `nworks_logout` | 認証情報とトークンの削除 | — |
115
+ | `nworks_whoami` | 認証状態の確認 | — |
116
+ | `nworks_doctor` | 接続診断(認証、トークン、APIヘルスチェック) | — |
117
+ | **メッセージ** | | |
118
+ | `nworks_message_send` | ユーザー/チャンネルにメッセージ送信 | Service Account |
119
+ | `nworks_message_members` | チャンネルメンバー一覧 | Service Account |
120
+ | `nworks_directory_members` | 組織メンバー一覧 | Service Account |
121
+ | **カレンダー** | | |
122
+ | `nworks_calendar_list` | カレンダー予定の一覧 | User OAuth (calendar.read) |
123
+ | `nworks_calendar_create` | カレンダー予定の作成 | User OAuth (calendar + calendar.read) |
124
+ | `nworks_calendar_update` | カレンダー予定の更新 | User OAuth (calendar + calendar.read) |
125
+ | `nworks_calendar_delete` | カレンダー予定の削除 | User OAuth (calendar + calendar.read) |
126
+ | **ドライブ** | | |
127
+ | `nworks_drive_list` | ドライブのファイル/フォルダ一覧 | User OAuth (file.read) |
128
+ | `nworks_drive_upload` | ドライブにファイルアップロード | User OAuth (file) |
129
+ | `nworks_drive_download` | ドライブからファイルダウンロード(5MB超はローカル保存) | User OAuth (file.read) |
130
+ | **メール** | | |
131
+ | `nworks_mail_send` | メール送信 | User OAuth (mail) |
132
+ | `nworks_mail_list` | メールボックス一覧 | User OAuth (mail.read) |
133
+ | `nworks_mail_read` | メール詳細表示 | User OAuth (mail.read) |
134
+ | **タスク** | | |
135
+ | `nworks_task_list` | タスク一覧 | User OAuth (task.read) |
136
+ | `nworks_task_create` | タスク作成 | User OAuth (task + user.read) |
137
+ | `nworks_task_update` | タスク更新/完了 | User OAuth (task + user.read) |
138
+ | `nworks_task_delete` | タスク削除 | User OAuth (task + user.read) |
139
+ | **掲示板** | | |
140
+ | `nworks_board_list` | 掲示板一覧 | User OAuth (board.read) |
141
+ | `nworks_board_posts` | 掲示板の投稿一覧 | User OAuth (board.read) |
142
+ | `nworks_board_read` | 掲示板の投稿詳細 | User OAuth (board.read) |
143
+ | `nworks_board_create` | 掲示板に投稿作成 | User OAuth (board) |
144
+
145
+ ### AIエージェント使用例
146
+
147
+ ```
148
+ ユーザー: 明日14時にミーティングを入れて、チームチャンネルに知らせて
149
+
150
+ Claude → nworks_calendar_create
151
+ { "summary": "ミーティング", "start": "2026-03-15T14:00:00", "end": "2026-03-15T15:00:00" }
152
+ → 予定が作成されました
153
+
154
+ Claude → nworks_message_send
155
+ { "channel": "C001", "text": "明日14:00にミーティングが設定されました" }
156
+ → メッセージが送信されました
157
+
158
+ ユーザー: 未読メールを確認して要約して
159
+
160
+ Claude → nworks_mail_list (unread)
161
+ → 未読メール3件
162
+ Claude → nworks_mail_read (各)
163
+ → "3件: 1) CTOからのデプロイ承認, 2) 金曜日のミーティング招待, 3) 週次レポートリマインダー"
164
+ ```
165
+
166
+ ---
167
+
168
+ ## CLIの使い方
169
+
170
+ > すべてのコマンドで `--json` に対応(パイプ、スクリプト、エージェント解析に便利)。`message send`、`mail send`、`drive upload` は `--dry-run` で実際の送信なしにテスト可能。
171
+
172
+ ### メッセージ(Bot API)
173
+
174
+ ```bash
175
+ # ユーザーにテキストメッセージ
176
+ nworks message send --to <userId> --text "メッセージ"
177
+
178
+ # チャンネルにテキストメッセージ
179
+ nworks message send --channel <channelId> --text "お知らせ"
180
+
181
+ # ボタンメッセージ
182
+ nworks message send --to <userId> --type button --text "PRレビュー依頼" \
183
+ --actions '[{"type":"message","label":"承認","postback":"approve"}]'
184
+
185
+ # リストメッセージ
186
+ nworks message send --to <userId> --type list --text "今日のタスク" \
187
+ --elements '[{"title":"コードレビュー","subtitle":"PR #382"}]'
188
+
189
+ # チャンネルメンバー一覧
190
+ nworks message members --channel <channelId>
191
+ ```
192
+
193
+ ### 組織(Directory API)
194
+
195
+ ```bash
196
+ nworks directory members # 組織メンバー一覧
197
+ ```
198
+
199
+ ### カレンダー(User OAuth)
200
+
201
+ ```bash
202
+ # 今日の予定一覧
203
+ nworks calendar list
204
+
205
+ # 期間指定
206
+ nworks calendar list --from "2026-03-14T00:00:00+09:00" --until "2026-03-14T23:59:59+09:00"
207
+
208
+ # 予定の作成
209
+ nworks calendar create --title "ミーティング" --start "2026-03-14T14:00+09:00" --end "2026-03-14T15:00+09:00"
210
+
211
+ # 場所/説明付き
212
+ nworks calendar create --title "ランチ" --start "2026-03-14T12:00+09:00" --end "2026-03-14T13:00+09:00" \
213
+ --location "会議室" --description "四半期レビュー"
214
+
215
+ # 参加者指定 + 通知
216
+ nworks calendar create --title "チームミーティング" --start "2026-03-14T10:00+09:00" --end "2026-03-14T11:00+09:00" \
217
+ --attendees "user1@example.com,user2@example.com" --notify
218
+
219
+ # 予定の更新
220
+ nworks calendar update --id <eventId> --title "変更後のタイトル"
221
+
222
+ # 予定の削除
223
+ nworks calendar delete --id <eventId>
224
+ ```
225
+
226
+ ### ドライブ(User OAuth)
227
+
228
+ ```bash
229
+ # ファイル/フォルダ一覧
230
+ nworks drive list
231
+
232
+ # ファイルアップロード
233
+ nworks drive upload --file ./report.pdf
234
+
235
+ # 特定フォルダにアップロード
236
+ nworks drive upload --file ./report.pdf --folder <folderId>
237
+
238
+ # ファイルダウンロード
239
+ nworks drive download --file-id <fileId>
240
+
241
+ # 出力先/ファイル名指定
242
+ nworks drive download --file-id <fileId> --out ./downloads --name report.pdf
243
+ ```
244
+
245
+ ### メール(User OAuth)
246
+
247
+ ```bash
248
+ # メール送信
249
+ nworks mail send --to "user@example.com" --subject "件名" --body "本文"
250
+
251
+ # CC/BCC付き
252
+ nworks mail send --to "user@example.com" --cc "cc@example.com" --subject "件名" --body "本文"
253
+
254
+ # 受信トレイ一覧
255
+ nworks mail list
256
+
257
+ # 未読のみ
258
+ nworks mail list --unread
259
+
260
+ # メール詳細表示
261
+ nworks mail read --id <mailId>
262
+ ```
263
+
264
+ ### タスク(User OAuth)
265
+
266
+ ```bash
267
+ # タスク一覧
268
+ nworks task list
269
+
270
+ # 未完了のみ
271
+ nworks task list --status TODO
272
+
273
+ # タスク作成
274
+ nworks task create --title "コードレビュー" --body "PR #382 レビュー"
275
+
276
+ # 期限付き
277
+ nworks task create --title "デプロイ" --due 2026-03-20
278
+
279
+ # 完了にする
280
+ nworks task update --id <taskId> --status done
281
+
282
+ # タスク削除
283
+ nworks task delete --id <taskId>
284
+ ```
285
+
286
+ ### 掲示板(User OAuth)
287
+
288
+ ```bash
289
+ # 掲示板一覧
290
+ nworks board list
291
+
292
+ # 投稿一覧
293
+ nworks board posts --board <boardId>
294
+
295
+ # 投稿詳細
296
+ nworks board read --board <boardId> --post <postId>
297
+
298
+ # 投稿作成
299
+ nworks board create --board <boardId> --title "お知らせ" --body "内容"
300
+
301
+ # 通知付き + コメント無効化
302
+ nworks board create --board <boardId> --title "通知" --body "内容" --notify --no-comment
303
+ ```
304
+
305
+ ### CI/CDデプロイ通知
306
+
307
+ ```bash
308
+ # GitHub Actionsでデプロイ完了後、チームチャンネルに通知
309
+ nworks message send --channel $CHANNEL_ID --text "v${VERSION} デプロイ完了"
310
+ ```
311
+
312
+ ### チーム自動化スクリプト
313
+
314
+ ```bash
315
+ # 毎朝チームメンバーにリマインダー送信
316
+ for userId in $(nworks directory members --json | jq -r '.users[].userId'); do
317
+ nworks message send --to "$userId" --text "本日のスタンドアップは10時です"
318
+ done
319
+ ```
320
+
321
+ ---
322
+
323
+ ## OAuth Scope設定
324
+
325
+ [LINE WORKS Developer Console](https://dev.worksmobile.com/jp/)でアプリのOAuth Scopeを追加してください。
326
+
327
+ | Scope | 用途 | 認証方式 | 必要なコマンド |
328
+ |-------|------|---------|---------------|
329
+ | `bot` | Botメッセージ送信 | Service Account | `message send` |
330
+ | `bot.read` | Botチャンネル/メンバー取得 | Service Account | `message members` |
331
+ | `calendar` | カレンダー書き込み | User OAuth | `calendar create/update/delete`(calendar.readも必要) |
332
+ | `calendar.read` | カレンダー読み取り | User OAuth | `calendar list`、カレンダー書き込みの依存関係 |
333
+ | `file` | ドライブ読み書き | User OAuth | `drive list/upload/download` |
334
+ | `file.read` | ドライブ読み取り専用 | User OAuth | `drive list/download` |
335
+ | `mail` | メール読み書き | User OAuth | `mail send/list/read` |
336
+ | `mail.read` | メール読み取り専用 | User OAuth | `mail list/read` |
337
+ | `task` | タスク読み書き | User OAuth | `task create/update/delete`(user.readも必要) |
338
+ | `task.read` | タスク読み取り専用 | User OAuth | `task list` |
339
+ | `user.read` | ユーザー情報取得 | Service Account / User OAuth | `directory members`、タスク書き込みの依存関係 |
340
+ | `board` | 掲示板読み書き | User OAuth | `board list/posts/read/create` |
341
+ | `board.read` | 掲示板読み取り専用 | User OAuth | `board list/posts/read` |
342
+
343
+ > **ヒント**: scopeを変更した後はトークンを再発行してください。
344
+ > ```bash
345
+ > nworks logout && nworks login --user --scope "..."
346
+ > ```
347
+
348
+ ---
349
+
350
+ ## 環境変数
351
+
352
+ 環境変数で認証情報を設定すると、`nworks login` なしで利用できます(CI/エージェント向け)。
353
+
354
+ ```bash
355
+ # 必須
356
+ NWORKS_CLIENT_ID=
357
+ NWORKS_CLIENT_SECRET=
358
+
359
+ # ボットメッセージ送信時のみ必要(User OAuthのみなら不要)
360
+ NWORKS_SERVICE_ACCOUNT=
361
+ NWORKS_PRIVATE_KEY_PATH=
362
+ NWORKS_BOT_ID=
363
+
364
+ # オプション
365
+ NWORKS_DOMAIN_ID=
366
+ NWORKS_SCOPE= # デフォルト: bot bot.read user.read
367
+ NWORKS_VERBOSE=1 # デバッグログ
368
+ ```
369
+
370
+ ### MCPサーバーに環境変数を直接設定
371
+
372
+ `nworks login` の代わりに環境変数で直接設定することもできます:
373
+
374
+ ```json
375
+ {
376
+ "mcpServers": {
377
+ "nworks": {
378
+ "command": "npx",
379
+ "args": ["-y", "nworks", "mcp"],
380
+ "env": {
381
+ "NWORKS_CLIENT_ID": "<Client ID>",
382
+ "NWORKS_CLIENT_SECRET": "<Client Secret>"
383
+ }
384
+ }
385
+ }
386
+ }
387
+ ```
388
+
389
+ ボットメッセージも使用する場合は `NWORKS_SERVICE_ACCOUNT`、`NWORKS_PRIVATE_KEY_PATH`、`NWORKS_BOT_ID` も追加してください。
390
+
391
+ ---
392
+
393
+ ## License
394
+
395
+ Apache-2.0