nworks-plus 1.3.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/LICENSE ADDED
@@ -0,0 +1,190 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to the Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by the Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding any notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ Copyright 2025 yjcho9317
179
+
180
+ Licensed under the Apache License, Version 2.0 (the "License");
181
+ you may not use this file except in compliance with the License.
182
+ You may obtain a copy of the License at
183
+
184
+ http://www.apache.org/licenses/LICENSE-2.0
185
+
186
+ Unless required by applicable law or agreed to in writing, software
187
+ distributed under the License is distributed on an "AS IS" BASIS,
188
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
189
+ See the License for the specific language governing permissions and
190
+ limitations under the License.
package/README.ja.md ADDED
@@ -0,0 +1,393 @@
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` を呼び出せばブラウザから直接認証できます。Client SecretとPrivate Keyのパスは、MCP設定の `env` フィールドまたはシステム環境変数で事前に設定してください。
106
+
107
+ ### MCPツール一覧(26個)
108
+
109
+ | ツール | 説明 | 必要な認証 |
110
+ |--------|------|-----------|
111
+ | **設定/認証** | | |
112
+ | `nworks_setup` | API認証情報の設定(Client IDなど)。Client 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
+ 機密情報(Client Secret、Private Keyパス)はMCP設定の `env` フィールドで設定します。Client IDなどの非機密情報は、AIエージェントが `nworks_setup` ツールで直接設定できます。
373
+
374
+ ```json
375
+ {
376
+ "mcpServers": {
377
+ "nworks": {
378
+ "command": "npx",
379
+ "args": ["-y", "nworks", "mcp"],
380
+ "env": {
381
+ "NWORKS_CLIENT_SECRET": "<Client Secret>",
382
+ "NWORKS_PRIVATE_KEY_PATH": "<Private Keyファイルの絶対パス(Service Account使用時)>"
383
+ }
384
+ }
385
+ }
386
+ }
387
+ ```
388
+
389
+ ---
390
+
391
+ ## License
392
+
393
+ Apache-2.0