@impv_npm/task-manager-mcp 1.0.0 → 1.1.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 +97 -3
- package/dist/index.js +0 -0
- package/dist/tools.js +35 -0
- package/package.json +7 -8
package/README.md
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
# Task Manager MCP Server
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@impv_npm/task-manager-mcp)
|
|
4
|
+
|
|
3
5
|
Task ManagerアプリをClaude CodeなどのMCPクライアントから操作するためのMCPサーバーです。
|
|
4
6
|
|
|
7
|
+
## クイックスタート
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# ビルド不要。npxで直接実行可能
|
|
11
|
+
npx -y @impv_npm/task-manager-mcp
|
|
12
|
+
```
|
|
13
|
+
|
|
5
14
|
## 概要
|
|
6
15
|
|
|
7
16
|
このMCPサーバーを使用すると、以下の操作をAIアシスタントから直接実行できます:
|
|
@@ -20,7 +29,7 @@ Task ManagerアプリをClaude CodeなどのMCPクライアントから操作す
|
|
|
20
29
|
### 1. APIキーの作成
|
|
21
30
|
|
|
22
31
|
1. Task Managerアプリにログイン
|
|
23
|
-
2.
|
|
32
|
+
2. [設定ページ](https://task-manager-impressive.vercel.app/settings)に移動
|
|
24
33
|
3. **API設定** セクションの **MCP APIキー** カードを見つける
|
|
25
34
|
4. 「新しいAPIキーを作成」欄に名前を入力(例: "Claude Code")
|
|
26
35
|
5. **+** ボタンをクリックしてキーを作成
|
|
@@ -37,10 +46,10 @@ Task ManagerアプリをClaude CodeなどのMCPクライアントから操作す
|
|
|
37
46
|
"mcpServers": {
|
|
38
47
|
"task-manager": {
|
|
39
48
|
"command": "npx",
|
|
40
|
-
"args": ["-y", "@
|
|
49
|
+
"args": ["-y", "@impv_npm/task-manager-mcp"],
|
|
41
50
|
"env": {
|
|
42
51
|
"TASK_MANAGER_API_KEY": "tm_xxxxxxxxxxxxxxxxxxxx",
|
|
43
|
-
"TASK_MANAGER_URL": "https://
|
|
52
|
+
"TASK_MANAGER_URL": "https://task-manager-impressive.vercel.app"
|
|
44
53
|
}
|
|
45
54
|
}
|
|
46
55
|
}
|
|
@@ -80,6 +89,12 @@ Task ManagerアプリをClaude CodeなどのMCPクライアントから操作す
|
|
|
80
89
|
| `work_start` | 業務を開始 | `note` |
|
|
81
90
|
| `work_end` | 業務を終了 | `note` |
|
|
82
91
|
|
|
92
|
+
### その他
|
|
93
|
+
|
|
94
|
+
| ツール | 説明 | 主なパラメータ |
|
|
95
|
+
|--------|------|----------------|
|
|
96
|
+
| `open_board` | タスクボードをブラウザで開く | なし |
|
|
97
|
+
|
|
83
98
|
## ツール詳細
|
|
84
99
|
|
|
85
100
|
### task_list
|
|
@@ -170,6 +185,73 @@ Task ManagerアプリをClaude CodeなどのMCPクライアントから操作す
|
|
|
170
185
|
**パラメータ:**
|
|
171
186
|
- `note` (string, optional): 業務終了時のメモ
|
|
172
187
|
|
|
188
|
+
### open_board
|
|
189
|
+
|
|
190
|
+
タスクボード(カンバン形式)をブラウザで開くためのURLを返します。
|
|
191
|
+
|
|
192
|
+
**パラメータ:** なし
|
|
193
|
+
|
|
194
|
+
**レスポンス:**
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"success": true,
|
|
198
|
+
"data": {
|
|
199
|
+
"url": "https://task-manager-impressive.vercel.app/board",
|
|
200
|
+
"message": "タスクボードを開いてください",
|
|
201
|
+
"action": "open_url"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Claude Code プラグイン(/task スキル)
|
|
207
|
+
|
|
208
|
+
MCPサーバーに加えて、Claude Code用のプラグイン(スキル)をインストールすると、`/task` コマンドでより便利にタスク管理ができます。
|
|
209
|
+
|
|
210
|
+
### プラグインのインストール
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# リポジトリをクローン後
|
|
214
|
+
cd task-manager
|
|
215
|
+
./claude-plugin/install.sh
|
|
216
|
+
|
|
217
|
+
# 自然言語対応(task-routing.md)も含める場合
|
|
218
|
+
./claude-plugin/install.sh --with-rules
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### アンインストール
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
./claude-plugin/uninstall.sh
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 利用可能なコマンド
|
|
228
|
+
|
|
229
|
+
| コマンド | 説明 |
|
|
230
|
+
|---------|------|
|
|
231
|
+
| `/task` | タスクを作成(対話形式) |
|
|
232
|
+
| `/task list` | タスク一覧を表示 |
|
|
233
|
+
| `/task do [N]` | タスク #N を開始 |
|
|
234
|
+
| `/task review [N]` | タスク #N をレビュー待ちに |
|
|
235
|
+
| `/task done [N]` | タスク #N を完了 |
|
|
236
|
+
| `/task close [N]` | タスク #N をクローズ |
|
|
237
|
+
| `/task delete [N]` | タスク #N を削除 |
|
|
238
|
+
| `/task advise` | 次にやるべきタスクを提案 |
|
|
239
|
+
| `/task hello` | 業務開始 |
|
|
240
|
+
| `/task bye` | 業務終了 |
|
|
241
|
+
| `/task board` | タスクボードを開く |
|
|
242
|
+
| `/task today` | 今日の進捗を表示 |
|
|
243
|
+
|
|
244
|
+
### 自然言語対応(--with-rules オプション)
|
|
245
|
+
|
|
246
|
+
`task-routing.md` をインストールすると、自然言語でもタスク操作が可能になります:
|
|
247
|
+
|
|
248
|
+
- 「次何やる?」 → `/task advise`
|
|
249
|
+
- 「タスク一覧」 → `/task list`
|
|
250
|
+
- 「業務開始」 → `/task hello`
|
|
251
|
+
- 「タスク完了」 → `/task done`
|
|
252
|
+
|
|
253
|
+
詳細は `claude-plugin/README.md` を参照してください。
|
|
254
|
+
|
|
173
255
|
## 活用例
|
|
174
256
|
|
|
175
257
|
### 1. 朝の業務開始
|
|
@@ -244,6 +326,8 @@ Error: Unauthorized
|
|
|
244
326
|
|
|
245
327
|
→ APIキーが有効か確認してください。設定画面で新しいキーを発行し直すことをお勧めします。
|
|
246
328
|
|
|
329
|
+
**開発者向け**: `/api/mcp`エンドポイントはAPIキー認証を使用するため、`src/proxy.ts`の`publicPaths`に含まれている必要があります。Supabaseセッション認証をバイパスするためです。
|
|
330
|
+
|
|
247
331
|
### サーバーに接続できない
|
|
248
332
|
|
|
249
333
|
→ `TASK_MANAGER_URL` が正しいか、Task Managerアプリが起動しているか確認してください。
|
|
@@ -254,6 +338,16 @@ Error: Unauthorized
|
|
|
254
338
|
- APIキーが漏洩した場合は、設定画面から即座に削除し、新しいキーを発行してください。
|
|
255
339
|
- 各APIキーは作成したユーザーの権限で操作を実行します。
|
|
256
340
|
|
|
341
|
+
### ユーザーに紐づいた操作
|
|
342
|
+
|
|
343
|
+
全ての操作(MCP経由およびアプリ内チャットインターフェース)は、認証されたユーザーのコンテキストで実行されます:
|
|
344
|
+
|
|
345
|
+
- **task_list / task_advise / get_today_progress**: `assignee`を指定しない場合、自動的に自分のタスクのみが表示されます
|
|
346
|
+
- **task_add**: 自分自身のみをassigneeとして設定できます。他人をassigneeに指定しようとするとエラーが返されます。`assignees`を指定しない場合は自動的に自分が設定されます。
|
|
347
|
+
- **task_start / task_review / task_end / task_close / task_delete / update_task / change_status**: 自分がassigneeまたは作成者のタスクのみ操作可能です。他人のタスクを操作しようとするとエラーが返されます。
|
|
348
|
+
- **業務管理(work_start / work_end / start_break / end_break)**: 常に認証ユーザー自身の業務として記録されます。
|
|
349
|
+
- **Slack通知**: 常に認証ユーザーの設定とチャンネルが使用されます。
|
|
350
|
+
|
|
257
351
|
## 開発
|
|
258
352
|
|
|
259
353
|
```bash
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/tools.js
CHANGED
|
@@ -108,4 +108,39 @@ export function registerTools(server, client) {
|
|
|
108
108
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
109
109
|
};
|
|
110
110
|
});
|
|
111
|
+
// open_board - タスクボードを開く
|
|
112
|
+
server.tool("open_board", "タスクボード(カンバン形式)をブラウザで開きます。", {}, async () => {
|
|
113
|
+
const boardUrl = "https://task-manager-impressive.vercel.app/board";
|
|
114
|
+
return {
|
|
115
|
+
content: [
|
|
116
|
+
{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: JSON.stringify({
|
|
119
|
+
success: true,
|
|
120
|
+
data: {
|
|
121
|
+
url: boardUrl,
|
|
122
|
+
message: "タスクボードを開いてください",
|
|
123
|
+
action: "open_url",
|
|
124
|
+
},
|
|
125
|
+
}, null, 2),
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
// list_clients - クライアント一覧取得
|
|
131
|
+
server.tool("list_clients", "既存のクライアント名一覧を取得します。タスク作成時に表記ブレを防ぐために使用してください。", {}, async () => {
|
|
132
|
+
const result = await client.call("list_clients", {});
|
|
133
|
+
return {
|
|
134
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
// list_projects - プロジェクト一覧取得
|
|
138
|
+
server.tool("list_projects", "既存のプロジェクト名一覧を取得します。タスク作成時に表記ブレを防ぐために使用してください。", {
|
|
139
|
+
client: z.string().optional().describe("クライアント名でフィルタ(指定しない場合は全て)"),
|
|
140
|
+
}, async (params) => {
|
|
141
|
+
const result = await client.call("list_projects", params);
|
|
142
|
+
return {
|
|
143
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
144
|
+
};
|
|
145
|
+
});
|
|
111
146
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@impv_npm/task-manager-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,12 +9,6 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist"
|
|
11
11
|
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "tsc",
|
|
14
|
-
"start": "node dist/index.js",
|
|
15
|
-
"dev": "tsx src/index.ts",
|
|
16
|
-
"prepublishOnly": "pnpm build"
|
|
17
|
-
},
|
|
18
12
|
"dependencies": {
|
|
19
13
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
20
14
|
"zod": "^4.3.6"
|
|
@@ -26,5 +20,10 @@
|
|
|
26
20
|
},
|
|
27
21
|
"publishConfig": {
|
|
28
22
|
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"start": "node dist/index.js",
|
|
27
|
+
"dev": "tsx src/index.ts"
|
|
29
28
|
}
|
|
30
|
-
}
|
|
29
|
+
}
|