workshub-mcp 1.0.1 → 1.0.3
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 +118 -36
- package/dist/config/tools-definition.d.ts +187 -0
- package/dist/config/tools-definition.d.ts.map +1 -1
- package/dist/config/tools-definition.js +148 -0
- package/dist/config/tools-definition.js.map +1 -1
- package/dist/handlers/tool-router.d.ts +2 -0
- package/dist/handlers/tool-router.d.ts.map +1 -1
- package/dist/handlers/tool-router.js +11 -1
- package/dist/handlers/tool-router.js.map +1 -1
- package/dist/index.js +17 -6
- package/dist/index.js.map +1 -1
- package/dist/tools/auth.d.ts +31 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +141 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/utils/http-client.d.ts +18 -0
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +48 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/session-manager.d.ts +40 -0
- package/dist/utils/session-manager.d.ts.map +1 -0
- package/dist/utils/session-manager.js +75 -0
- package/dist/utils/session-manager.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,9 @@ WorksHub MCP 是一个基于 [Model Context Protocol](https://modelcontextprotoc
|
|
|
15
15
|
- ✅ 接受申请并管理任务
|
|
16
16
|
- 🛠️ 查询技能列表
|
|
17
17
|
|
|
18
|
-
**已实现
|
|
18
|
+
**已实现 17 个工具**,覆盖认证管理、技能查询、工作者管理、悬赏任务、对话管理 5 大功能模块。
|
|
19
|
+
|
|
20
|
+
**首次使用可通过手机号验证码获取 API Key,无需预先配置。**
|
|
19
21
|
|
|
20
22
|
---
|
|
21
23
|
|
|
@@ -68,8 +70,74 @@ $env:WORKSHUB_API_KEY = "your_api_key_here"
|
|
|
68
70
|
|
|
69
71
|
---
|
|
70
72
|
|
|
73
|
+
## 🔐 获取 API Key
|
|
74
|
+
|
|
75
|
+
WorksHub MCP 支持两种方式获取 API Key:
|
|
76
|
+
|
|
77
|
+
### 方式 1:通过 MCP 工具获取(首次使用推荐)
|
|
78
|
+
|
|
79
|
+
**无需预先配置**,直接使用本技能的认证工具获取:
|
|
80
|
+
|
|
81
|
+
#### 1. 发送验证码(无需 API Key)✅
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"name": "send_code",
|
|
86
|
+
"arguments": {
|
|
87
|
+
"phone_number": "13800138000"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 2. 登录获取 API Key(无需 API Key)✅
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"name": "login",
|
|
97
|
+
"arguments": {
|
|
98
|
+
"phone_number": "13800138000",
|
|
99
|
+
"code": "123456"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**返回**:
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"success": true,
|
|
108
|
+
"data": {
|
|
109
|
+
"api_key": "wk_xxxxx",
|
|
110
|
+
"user": { ... }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### 3. 配置环境变量
|
|
116
|
+
|
|
117
|
+
获取到 `api_key` 后,配置到环境变量:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
export WORKSHUB_API_KEY="获取到的api_key"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 方式 2:从 WorksHub 平台获取
|
|
124
|
+
|
|
125
|
+
访问 https://workshub.ai 登录后,在用户中心创建 API Key。
|
|
126
|
+
|
|
127
|
+
### 注意事项
|
|
128
|
+
|
|
129
|
+
- `send_code` 和 `login` 工具**不需要** API Key 即可调用
|
|
130
|
+
- 验证码有效期为 5 分钟
|
|
131
|
+
- 每个手机号每分钟最多发送 1 次验证码
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
71
135
|
## 在 AI IDE 中使用
|
|
72
136
|
|
|
137
|
+
### 首次使用提示
|
|
138
|
+
|
|
139
|
+
如果这是你第一次使用,可以**暂时不配置** `WORKSHUB_API_KEY`,直接使用 MCP 工具 `send_code` 和 `login` 获取 API Key,然后再配置到环境变量中。
|
|
140
|
+
|
|
73
141
|
### Cursor 配置
|
|
74
142
|
|
|
75
143
|
编辑 `~/.cursor/mcp.json`:
|
|
@@ -142,17 +210,51 @@ $env:WORKSHUB_API_KEY = "your_api_key_here"
|
|
|
142
210
|
|
|
143
211
|
---
|
|
144
212
|
|
|
145
|
-
## 完整工具列表(
|
|
213
|
+
## 完整工具列表(17个)
|
|
146
214
|
|
|
147
215
|
### 📊 统计
|
|
148
216
|
|
|
149
217
|
| 模块 | 工具数量 |
|
|
150
218
|
|------|---------|
|
|
219
|
+
| 认证管理 | 2 |
|
|
151
220
|
| 技能管理 | 1 |
|
|
152
221
|
| 工作者管理 | 3 |
|
|
153
222
|
| 悬赏任务管理 | 6 |
|
|
154
|
-
| 对话管理 |
|
|
155
|
-
| **总计** | **
|
|
223
|
+
| 对话管理 | 5 |
|
|
224
|
+
| **总计** | **17** |
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 🔧 工具详细说明
|
|
229
|
+
|
|
230
|
+
### 0. 认证管理(2个工具)
|
|
231
|
+
|
|
232
|
+
> ⚠️ 这两个工具**不需要** API Key 即可调用,用于首次获取 API Key
|
|
233
|
+
|
|
234
|
+
#### `send_code`
|
|
235
|
+
|
|
236
|
+
**功能**: 发送手机验证码
|
|
237
|
+
|
|
238
|
+
**参数**:
|
|
239
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
240
|
+
|--------|------|------|------|
|
|
241
|
+
| `phone_number` | string | 是 | 手机号 |
|
|
242
|
+
|
|
243
|
+
**返回**: `{ success, data }`
|
|
244
|
+
|
|
245
|
+
#### `login`
|
|
246
|
+
|
|
247
|
+
**功能**: 使用手机号和验证码登录,返回 API Key
|
|
248
|
+
|
|
249
|
+
**参数**:
|
|
250
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
251
|
+
|--------|------|------|------|
|
|
252
|
+
| `phone_number` | string | 是 | 手机号 |
|
|
253
|
+
| `code` | string | 是 | 验证码 |
|
|
254
|
+
|
|
255
|
+
**返回**: `{ success, data: { api_key, user } }`
|
|
256
|
+
|
|
257
|
+
### 1. 技能管理(1个工具)
|
|
156
258
|
|
|
157
259
|
---
|
|
158
260
|
|
|
@@ -606,7 +708,16 @@ await send_message({
|
|
|
606
708
|
|
|
607
709
|
### 如何获取 API Key?
|
|
608
710
|
|
|
609
|
-
|
|
711
|
+
**方式 1:通过 MCP 工具获取(推荐)**
|
|
712
|
+
|
|
713
|
+
首次使用无需配置 API Key,直接调用:
|
|
714
|
+
1. `send_code` - 发送验证码到手机
|
|
715
|
+
2. `login` - 使用验证码登录,获取 `api_key`
|
|
716
|
+
3. 将 `api_key` 配置到环境变量 `WORKSHUB_API_KEY`
|
|
717
|
+
|
|
718
|
+
**方式 2:从平台获取**
|
|
719
|
+
|
|
720
|
+
访问 https://workshub.ai 登录后,在用户中心创建 API Key。
|
|
610
721
|
|
|
611
722
|
### 支持哪些 AI IDE?
|
|
612
723
|
|
|
@@ -634,39 +745,10 @@ MIT
|
|
|
634
745
|
|
|
635
746
|
- [WorksHub 官网](https://workshub.ai)
|
|
636
747
|
- [MCP 协议文档](https://modelcontextprotocol.io)
|
|
637
|
-
- [
|
|
638
|
-
- [GitHub 仓库](https://github.com/workshub/mcp)
|
|
748
|
+
- [GitHub 仓库](https://www.npmjs.com/package/workshub-mcp?activeTab=code)
|
|
639
749
|
|
|
640
750
|
---
|
|
641
751
|
|
|
642
752
|
## 贡献
|
|
643
753
|
|
|
644
|
-
欢迎提交 Issue 和 Pull Request!
|
|
645
|
-
|
|
646
|
-
## 更新日志
|
|
647
|
-
|
|
648
|
-
### v1.0.1 (2026-02-26)
|
|
649
|
-
|
|
650
|
-
- 🎯 添加`get_worker_qrcode` 获取工作者收款码工具
|
|
651
|
-
- ✨ 优化所有 14 个工具的提示词和参数描述
|
|
652
|
-
- ✅ 修复文档统计错误(统一为 14 个工具)
|
|
653
|
-
- 📊 添加典型工作流程和工具依赖关系说明
|
|
654
|
-
- 🎯 参数 examples 覆盖率达到 100%
|
|
655
|
-
- 📝 平均描述长度从 10 字提升到 385 字
|
|
656
|
-
- ✅ 构建验证通过,文档与代码 100% 一致
|
|
657
|
-
|
|
658
|
-
### v0.0.3 (2026-02-13)
|
|
659
|
-
|
|
660
|
-
- 🔄 与底层 API 接口对齐,移除不支持的功能
|
|
661
|
-
- ❌ 删除 `get_agent_identity` 工具(底层暂无对应接口)
|
|
662
|
-
- ❌ 删除 `update_bounty` 工具(底层暂无对应接口)
|
|
663
|
-
- ❌ 删除 `mark_conversation_read` 工具(底层暂无对应接口)
|
|
664
|
-
- ✅ 保留 14 个核心工具,确保三层架构完全一致
|
|
665
|
-
|
|
666
|
-
### v0.0.1 (2024-02-12)
|
|
667
|
-
|
|
668
|
-
- ✅ 实现全部 14 个工具
|
|
669
|
-
- ✅ 支持技能管理(1个工具)
|
|
670
|
-
- ✅ 支持工作者管理(3个工具)
|
|
671
|
-
- ✅ 支持悬赏任务管理(6个工具)
|
|
672
|
-
- ✅ 支持对话管理(4个工具)
|
|
754
|
+
欢迎提交 Issue 和 Pull Request!
|
|
@@ -11,6 +11,148 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
11
11
|
inputSchema: {
|
|
12
12
|
type: string;
|
|
13
13
|
properties: {
|
|
14
|
+
token: {
|
|
15
|
+
type: string;
|
|
16
|
+
description: string;
|
|
17
|
+
examples: string[];
|
|
18
|
+
};
|
|
19
|
+
name: {
|
|
20
|
+
type: string;
|
|
21
|
+
description: string;
|
|
22
|
+
examples: string[];
|
|
23
|
+
};
|
|
24
|
+
phone?: undefined;
|
|
25
|
+
code?: undefined;
|
|
26
|
+
scene?: undefined;
|
|
27
|
+
skills?: undefined;
|
|
28
|
+
location?: undefined;
|
|
29
|
+
page?: undefined;
|
|
30
|
+
pageSize?: undefined;
|
|
31
|
+
workerId?: undefined;
|
|
32
|
+
status?: undefined;
|
|
33
|
+
title?: undefined;
|
|
34
|
+
description?: undefined;
|
|
35
|
+
budget?: undefined;
|
|
36
|
+
priceType?: undefined;
|
|
37
|
+
category?: undefined;
|
|
38
|
+
deadline?: undefined;
|
|
39
|
+
province?: undefined;
|
|
40
|
+
city?: undefined;
|
|
41
|
+
agentType?: undefined;
|
|
42
|
+
agentName?: undefined;
|
|
43
|
+
bountyId?: undefined;
|
|
44
|
+
applicationId?: undefined;
|
|
45
|
+
message?: undefined;
|
|
46
|
+
conversationId?: undefined;
|
|
47
|
+
content?: undefined;
|
|
48
|
+
messageType?: undefined;
|
|
49
|
+
};
|
|
50
|
+
required: string[];
|
|
51
|
+
};
|
|
52
|
+
} | {
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
inputSchema: {
|
|
56
|
+
type: string;
|
|
57
|
+
properties: {
|
|
58
|
+
phone: {
|
|
59
|
+
type: string;
|
|
60
|
+
description: string;
|
|
61
|
+
pattern: string;
|
|
62
|
+
examples: string[];
|
|
63
|
+
};
|
|
64
|
+
code: {
|
|
65
|
+
type: string;
|
|
66
|
+
description: string;
|
|
67
|
+
pattern: string;
|
|
68
|
+
examples: string[];
|
|
69
|
+
};
|
|
70
|
+
token?: undefined;
|
|
71
|
+
name?: undefined;
|
|
72
|
+
scene?: undefined;
|
|
73
|
+
skills?: undefined;
|
|
74
|
+
location?: undefined;
|
|
75
|
+
page?: undefined;
|
|
76
|
+
pageSize?: undefined;
|
|
77
|
+
workerId?: undefined;
|
|
78
|
+
status?: undefined;
|
|
79
|
+
title?: undefined;
|
|
80
|
+
description?: undefined;
|
|
81
|
+
budget?: undefined;
|
|
82
|
+
priceType?: undefined;
|
|
83
|
+
category?: undefined;
|
|
84
|
+
deadline?: undefined;
|
|
85
|
+
province?: undefined;
|
|
86
|
+
city?: undefined;
|
|
87
|
+
agentType?: undefined;
|
|
88
|
+
agentName?: undefined;
|
|
89
|
+
bountyId?: undefined;
|
|
90
|
+
applicationId?: undefined;
|
|
91
|
+
message?: undefined;
|
|
92
|
+
conversationId?: undefined;
|
|
93
|
+
content?: undefined;
|
|
94
|
+
messageType?: undefined;
|
|
95
|
+
};
|
|
96
|
+
required: string[];
|
|
97
|
+
};
|
|
98
|
+
} | {
|
|
99
|
+
name: string;
|
|
100
|
+
description: string;
|
|
101
|
+
inputSchema: {
|
|
102
|
+
type: string;
|
|
103
|
+
properties: {
|
|
104
|
+
phone: {
|
|
105
|
+
type: string;
|
|
106
|
+
description: string;
|
|
107
|
+
pattern: string;
|
|
108
|
+
examples: string[];
|
|
109
|
+
};
|
|
110
|
+
scene: {
|
|
111
|
+
type: string;
|
|
112
|
+
description: string;
|
|
113
|
+
enum: string[];
|
|
114
|
+
default: string;
|
|
115
|
+
examples: string[];
|
|
116
|
+
};
|
|
117
|
+
token?: undefined;
|
|
118
|
+
name?: undefined;
|
|
119
|
+
code?: undefined;
|
|
120
|
+
skills?: undefined;
|
|
121
|
+
location?: undefined;
|
|
122
|
+
page?: undefined;
|
|
123
|
+
pageSize?: undefined;
|
|
124
|
+
workerId?: undefined;
|
|
125
|
+
status?: undefined;
|
|
126
|
+
title?: undefined;
|
|
127
|
+
description?: undefined;
|
|
128
|
+
budget?: undefined;
|
|
129
|
+
priceType?: undefined;
|
|
130
|
+
category?: undefined;
|
|
131
|
+
deadline?: undefined;
|
|
132
|
+
province?: undefined;
|
|
133
|
+
city?: undefined;
|
|
134
|
+
agentType?: undefined;
|
|
135
|
+
agentName?: undefined;
|
|
136
|
+
bountyId?: undefined;
|
|
137
|
+
applicationId?: undefined;
|
|
138
|
+
message?: undefined;
|
|
139
|
+
conversationId?: undefined;
|
|
140
|
+
content?: undefined;
|
|
141
|
+
messageType?: undefined;
|
|
142
|
+
};
|
|
143
|
+
required: string[];
|
|
144
|
+
};
|
|
145
|
+
} | {
|
|
146
|
+
name: string;
|
|
147
|
+
description: string;
|
|
148
|
+
inputSchema: {
|
|
149
|
+
type: string;
|
|
150
|
+
properties: {
|
|
151
|
+
token?: undefined;
|
|
152
|
+
name?: undefined;
|
|
153
|
+
phone?: undefined;
|
|
154
|
+
code?: undefined;
|
|
155
|
+
scene?: undefined;
|
|
14
156
|
skills?: undefined;
|
|
15
157
|
location?: undefined;
|
|
16
158
|
page?: undefined;
|
|
@@ -68,6 +210,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
68
210
|
default: number;
|
|
69
211
|
examples: number[];
|
|
70
212
|
};
|
|
213
|
+
token?: undefined;
|
|
214
|
+
name?: undefined;
|
|
215
|
+
phone?: undefined;
|
|
216
|
+
code?: undefined;
|
|
217
|
+
scene?: undefined;
|
|
71
218
|
workerId?: undefined;
|
|
72
219
|
status?: undefined;
|
|
73
220
|
title?: undefined;
|
|
@@ -100,6 +247,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
100
247
|
description: string;
|
|
101
248
|
examples: string[];
|
|
102
249
|
};
|
|
250
|
+
token?: undefined;
|
|
251
|
+
name?: undefined;
|
|
252
|
+
phone?: undefined;
|
|
253
|
+
code?: undefined;
|
|
254
|
+
scene?: undefined;
|
|
103
255
|
skills?: undefined;
|
|
104
256
|
location?: undefined;
|
|
105
257
|
page?: undefined;
|
|
@@ -157,6 +309,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
157
309
|
default: number;
|
|
158
310
|
examples: number[];
|
|
159
311
|
};
|
|
312
|
+
token?: undefined;
|
|
313
|
+
name?: undefined;
|
|
314
|
+
phone?: undefined;
|
|
315
|
+
code?: undefined;
|
|
316
|
+
scene?: undefined;
|
|
160
317
|
location?: undefined;
|
|
161
318
|
workerId?: undefined;
|
|
162
319
|
title?: undefined;
|
|
@@ -250,6 +407,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
250
407
|
maxLength: number;
|
|
251
408
|
examples: string[];
|
|
252
409
|
};
|
|
410
|
+
token?: undefined;
|
|
411
|
+
name?: undefined;
|
|
412
|
+
phone?: undefined;
|
|
413
|
+
code?: undefined;
|
|
414
|
+
scene?: undefined;
|
|
253
415
|
location?: undefined;
|
|
254
416
|
page?: undefined;
|
|
255
417
|
pageSize?: undefined;
|
|
@@ -275,6 +437,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
275
437
|
description: string;
|
|
276
438
|
examples: string[];
|
|
277
439
|
};
|
|
440
|
+
token?: undefined;
|
|
441
|
+
name?: undefined;
|
|
442
|
+
phone?: undefined;
|
|
443
|
+
code?: undefined;
|
|
444
|
+
scene?: undefined;
|
|
278
445
|
skills?: undefined;
|
|
279
446
|
location?: undefined;
|
|
280
447
|
page?: undefined;
|
|
@@ -315,6 +482,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
315
482
|
description: string;
|
|
316
483
|
examples: string[];
|
|
317
484
|
};
|
|
485
|
+
token?: undefined;
|
|
486
|
+
name?: undefined;
|
|
487
|
+
phone?: undefined;
|
|
488
|
+
code?: undefined;
|
|
489
|
+
scene?: undefined;
|
|
318
490
|
skills?: undefined;
|
|
319
491
|
location?: undefined;
|
|
320
492
|
page?: undefined;
|
|
@@ -355,6 +527,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
355
527
|
maxLength: number;
|
|
356
528
|
examples: string[];
|
|
357
529
|
};
|
|
530
|
+
token?: undefined;
|
|
531
|
+
name?: undefined;
|
|
532
|
+
phone?: undefined;
|
|
533
|
+
code?: undefined;
|
|
534
|
+
scene?: undefined;
|
|
358
535
|
skills?: undefined;
|
|
359
536
|
location?: undefined;
|
|
360
537
|
page?: undefined;
|
|
@@ -404,6 +581,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
404
581
|
default: number;
|
|
405
582
|
examples: number[];
|
|
406
583
|
};
|
|
584
|
+
token?: undefined;
|
|
585
|
+
name?: undefined;
|
|
586
|
+
phone?: undefined;
|
|
587
|
+
code?: undefined;
|
|
588
|
+
scene?: undefined;
|
|
407
589
|
skills?: undefined;
|
|
408
590
|
location?: undefined;
|
|
409
591
|
workerId?: undefined;
|
|
@@ -451,6 +633,11 @@ export declare const TOOLS_DEFINITION: ({
|
|
|
451
633
|
default: number;
|
|
452
634
|
examples: number[];
|
|
453
635
|
};
|
|
636
|
+
token?: undefined;
|
|
637
|
+
name?: undefined;
|
|
638
|
+
phone?: undefined;
|
|
639
|
+
code?: undefined;
|
|
640
|
+
scene?: undefined;
|
|
454
641
|
skills?: undefined;
|
|
455
642
|
location?: undefined;
|
|
456
643
|
page?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-definition.d.ts","sourceRoot":"","sources":["../../src/config/tools-definition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"tools-definition.d.ts","sourceRoot":"","sources":["../../src/config/tools-definition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAm2B5B,CAAC"}
|
|
@@ -6,6 +6,154 @@
|
|
|
6
6
|
* 所有工具的定义列表
|
|
7
7
|
*/
|
|
8
8
|
export const TOOLS_DEFINITION = [
|
|
9
|
+
// ==================== 认证工具(3个工具) ====================
|
|
10
|
+
{
|
|
11
|
+
name: 'create_api_key',
|
|
12
|
+
description: `创建新的 API Key
|
|
13
|
+
|
|
14
|
+
【使用场景】
|
|
15
|
+
- 为不同用途创建多个 API Key
|
|
16
|
+
- 替换过期的 API Key
|
|
17
|
+
- 分离不同环境/设备的密钥
|
|
18
|
+
|
|
19
|
+
【前置条件】
|
|
20
|
+
- 必须先调用 login 获取 token
|
|
21
|
+
- token 有效期为 7 天
|
|
22
|
+
|
|
23
|
+
【请求参数】
|
|
24
|
+
- token: 登录接口返回的 token(必填)
|
|
25
|
+
- name: API Key 名称,可选,默认为 "MCP Auto Key"
|
|
26
|
+
|
|
27
|
+
【返回内容】
|
|
28
|
+
- apiKey: 生成的 API Key(需要配置到 WORKSHUB_API_KEY 环境变量)
|
|
29
|
+
- name: API Key 名称
|
|
30
|
+
- createdAt: 创建时间
|
|
31
|
+
|
|
32
|
+
【注意事项】
|
|
33
|
+
- 注意:登录时已自动创建 API Key,此工具仅用于额外创建新密钥
|
|
34
|
+
- 生成的 API Key 请妥善保管,不要泄露
|
|
35
|
+
- 需要将返回的 apiKey 配置到 WORKSHUB_API_KEY 环境变量后才能使用其他业务工具`,
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
token: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
description: '登录返回的 token(必填)',
|
|
42
|
+
examples: ['eyJhbGciOiJIUzI1NiIs...'],
|
|
43
|
+
},
|
|
44
|
+
name: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'API Key 名称(可选)',
|
|
47
|
+
examples: ['MCP Auto Key', 'My Agent Key'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
required: ['token'],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'login',
|
|
55
|
+
description: `使用手机号和验证码登录,自动注册新用户并创建 API Key
|
|
56
|
+
|
|
57
|
+
【使用场景】
|
|
58
|
+
- 首次使用 WorksHub,自动创建新用户
|
|
59
|
+
- 已有用户登录获取认证信息
|
|
60
|
+
- 智能体自主完成注册和认证流程
|
|
61
|
+
|
|
62
|
+
【前置条件】
|
|
63
|
+
- 必须先调用 send_code 获取验证码
|
|
64
|
+
- 验证码有效期为 5 分钟
|
|
65
|
+
- 每个手机号每分钟最多发送 1 次验证码
|
|
66
|
+
|
|
67
|
+
【请求参数】
|
|
68
|
+
- phone: 手机号(必填),格式要求 11 位数字
|
|
69
|
+
- code: 验证码(必填),6 位数字
|
|
70
|
+
|
|
71
|
+
【返回内容】
|
|
72
|
+
- token: Bearer Token(有效期 7 天)
|
|
73
|
+
- user: 用户基本信息(ID、手机号、创建时间等)
|
|
74
|
+
- apiKey: 自动生成的 API Key(用于调用业务工具)
|
|
75
|
+
- apiKeyName: API Key 名称(默认为 "MCP Auto Key")
|
|
76
|
+
- apiKeyCreatedAt: API Key 创建时间
|
|
77
|
+
|
|
78
|
+
【后续操作】
|
|
79
|
+
- 将返回的 apiKey 配置到 WORKSHUB_API_KEY 环境变量
|
|
80
|
+
- 使用其他业务工具(get_workers, create_bounty 等)
|
|
81
|
+
|
|
82
|
+
【注意事项】
|
|
83
|
+
- 验证码输入错误次数过多会被临时锁定
|
|
84
|
+
- 如果是新用户,会自动创建账户
|
|
85
|
+
- 每次登录都会自动创建新的 API Key
|
|
86
|
+
- 开发环境万能验证码是 "000000"
|
|
87
|
+
- 请妥善保管返回的 apiKey,配置后才能使用业务工具`,
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
properties: {
|
|
91
|
+
phone: {
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: '手机号(必填),11 位数字',
|
|
94
|
+
pattern: '^1[3-9]\\d{9}$',
|
|
95
|
+
examples: ['13800138000', '13912345678'],
|
|
96
|
+
},
|
|
97
|
+
code: {
|
|
98
|
+
type: 'string',
|
|
99
|
+
description: '验证码(必填),6 位数字',
|
|
100
|
+
pattern: '^\\d{6}$',
|
|
101
|
+
examples: ['000000', '123456'],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
required: ['phone', 'code'],
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'send_code',
|
|
109
|
+
description: `发送手机验证码
|
|
110
|
+
|
|
111
|
+
【使用场景】
|
|
112
|
+
- 首次注册 WorksHub 账号
|
|
113
|
+
- 登录时获取验证码
|
|
114
|
+
- 重置密码或更换手机号
|
|
115
|
+
|
|
116
|
+
【前置条件】
|
|
117
|
+
- 手机号必须是 11 位中国大陆手机号
|
|
118
|
+
- 每个手机号每分钟最多发送 1 次
|
|
119
|
+
- 同一手机号 5 分钟内只能发送 1 次
|
|
120
|
+
|
|
121
|
+
【请求参数】
|
|
122
|
+
- phone: 手机号(必填),11 位数字
|
|
123
|
+
- scene: 验证码场景(可选),默认为 "mcp_login"
|
|
124
|
+
|
|
125
|
+
【返回内容】
|
|
126
|
+
- success: 发送成功标志
|
|
127
|
+
- 开发环境下验证码为 "000000"
|
|
128
|
+
|
|
129
|
+
【注意事项】
|
|
130
|
+
- 验证码有效期 5 分钟
|
|
131
|
+
- 生产环境会真实发送短信
|
|
132
|
+
- 开发环境万能验证码是 "000000"
|
|
133
|
+
|
|
134
|
+
【建议】
|
|
135
|
+
- 调用成功后等待 1-2 秒再输入验证码
|
|
136
|
+
- 避免频繁发送验证码`,
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
phone: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
description: '手机号(必填),11 位数字',
|
|
143
|
+
pattern: '^1[3-9]\\d{9}$',
|
|
144
|
+
examples: ['13800138000', '13912345678'],
|
|
145
|
+
},
|
|
146
|
+
scene: {
|
|
147
|
+
type: 'string',
|
|
148
|
+
description: '场景(可选),默认为 "mcp_login"',
|
|
149
|
+
enum: ['mcp_login', 'register', 'reset_password'],
|
|
150
|
+
default: 'mcp_login',
|
|
151
|
+
examples: ['mcp_login', 'register'],
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
required: ['phone'],
|
|
155
|
+
},
|
|
156
|
+
},
|
|
9
157
|
// ==================== 技能管理(1个工具) ====================
|
|
10
158
|
{
|
|
11
159
|
name: 'get_skills',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-definition.js","sourceRoot":"","sources":["../../src/config/tools-definition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools-definition.js","sourceRoot":"","sources":["../../src/config/tools-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { SkillTools } from '../tools/skill.js';
|
|
|
6
6
|
import { WorkerTools } from '../tools/worker.js';
|
|
7
7
|
import { BountyTools } from '../tools/bounty.js';
|
|
8
8
|
import { ConversationTools } from '../tools/conversation.js';
|
|
9
|
+
import { AuthTools } from '../tools/auth.js';
|
|
9
10
|
/**
|
|
10
11
|
* 工具实例接口
|
|
11
12
|
*/
|
|
@@ -14,6 +15,7 @@ export interface ToolInstances {
|
|
|
14
15
|
workerTools: WorkerTools;
|
|
15
16
|
bountyTools: BountyTools;
|
|
16
17
|
conversationTools: ConversationTools;
|
|
18
|
+
authTools: AuthTools;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* 路由工具调用到对应的处理函数
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-router.d.ts","sourceRoot":"","sources":["../../src/handlers/tool-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-router.d.ts","sourceRoot":"","sources":["../../src/handlers/tool-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CA0FjB"}
|
|
@@ -11,11 +11,21 @@ import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
|
11
11
|
* @returns 工具执行结果
|
|
12
12
|
*/
|
|
13
13
|
export async function routeToolCall(name, args, tools) {
|
|
14
|
-
const { skillTools, workerTools, bountyTools, conversationTools } = tools;
|
|
14
|
+
const { skillTools, workerTools, bountyTools, conversationTools, authTools } = tools;
|
|
15
15
|
console.error(`🔧 调用工具: ${name}`, args ? `参数: ${JSON.stringify(args)}` : '');
|
|
16
16
|
try {
|
|
17
17
|
let result;
|
|
18
18
|
switch (name) {
|
|
19
|
+
// 认证工具
|
|
20
|
+
case 'send_code':
|
|
21
|
+
result = await authTools.sendCode(args || {});
|
|
22
|
+
break;
|
|
23
|
+
case 'login':
|
|
24
|
+
result = await authTools.login(args || {});
|
|
25
|
+
break;
|
|
26
|
+
case 'create_api_key':
|
|
27
|
+
result = await authTools.createApiKey(args || {});
|
|
28
|
+
break;
|
|
19
29
|
// 技能管理
|
|
20
30
|
case 'get_skills':
|
|
21
31
|
result = await skillTools.getSkills(args || {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-router.js","sourceRoot":"","sources":["../../src/handlers/tool-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-router.js","sourceRoot":"","sources":["../../src/handlers/tool-router.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,11 +10,12 @@ import { VERSION } from './utils/version.js';
|
|
|
10
10
|
import { checkArguments } from './cli/help.js';
|
|
11
11
|
import { TOOLS_DEFINITION } from './config/tools-definition.js';
|
|
12
12
|
import { routeToolCall } from './handlers/tool-router.js';
|
|
13
|
-
import { createHttpClient } from './utils/http-client.js';
|
|
13
|
+
import { createHttpClient, createAuthHttpClient, createApiClientWithCache } from './utils/http-client.js';
|
|
14
14
|
import { SkillTools } from './tools/skill.js';
|
|
15
15
|
import { WorkerTools } from './tools/worker.js';
|
|
16
16
|
import { BountyTools } from './tools/bounty.js';
|
|
17
17
|
import { ConversationTools } from './tools/conversation.js';
|
|
18
|
+
import { AuthTools } from './tools/auth.js';
|
|
18
19
|
import { detectMCPEnvironment, getEnvironmentName } from './utils/environment.js';
|
|
19
20
|
// 检查命令行参数(--help, --version)
|
|
20
21
|
checkArguments();
|
|
@@ -32,14 +33,22 @@ let skillTools;
|
|
|
32
33
|
let workerTools;
|
|
33
34
|
let bountyTools;
|
|
34
35
|
let conversationTools;
|
|
36
|
+
let authTools;
|
|
35
37
|
try {
|
|
38
|
+
// 基础 HTTP 客户端(使用环境变量 API Key)
|
|
36
39
|
const httpClient = createHttpClient();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
// 认证工具 HTTP 客户端(无认证)
|
|
41
|
+
const authHttpClient = createAuthHttpClient();
|
|
42
|
+
// 创建支持动态认证的客户端(当有 API Key 时优先使用)
|
|
43
|
+
const dynamicHttpClient = createApiClientWithCache();
|
|
44
|
+
skillTools = new SkillTools(dynamicHttpClient);
|
|
45
|
+
workerTools = new WorkerTools(dynamicHttpClient);
|
|
46
|
+
bountyTools = new BountyTools(dynamicHttpClient);
|
|
47
|
+
conversationTools = new ConversationTools(dynamicHttpClient);
|
|
48
|
+
authTools = new AuthTools(authHttpClient);
|
|
41
49
|
console.error('✅ HTTP 客户端初始化成功');
|
|
42
50
|
console.error('✅ 所有工具类初始化成功');
|
|
51
|
+
console.error('✅ 已启用动态认证(支持自动 API Key)');
|
|
43
52
|
}
|
|
44
53
|
catch (error) {
|
|
45
54
|
console.error('❌ 初始化失败:', error instanceof Error ? error.message : error);
|
|
@@ -64,6 +73,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
64
73
|
workerTools,
|
|
65
74
|
bountyTools,
|
|
66
75
|
conversationTools,
|
|
76
|
+
authTools,
|
|
67
77
|
});
|
|
68
78
|
// 默认文本内容块
|
|
69
79
|
const content = [
|
|
@@ -106,7 +116,8 @@ async function main() {
|
|
|
106
116
|
const mcpEnv = detectMCPEnvironment();
|
|
107
117
|
console.error('✅ WorksHub MCP Service 已启动');
|
|
108
118
|
console.error('📡 使用 stdio 模式通信');
|
|
109
|
-
console.error('🛠️ 已注册
|
|
119
|
+
console.error('🛠️ 已注册 17 个工具:');
|
|
120
|
+
console.error(' - 认证管理: 3个');
|
|
110
121
|
console.error(' - 技能管理: 1个');
|
|
111
122
|
console.error(' - 工作者管理: 3个');
|
|
112
123
|
console.error(' - 悬赏任务管理: 6个');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* 认证工具类
|
|
4
|
+
*/
|
|
5
|
+
export declare class AuthTools {
|
|
6
|
+
private http;
|
|
7
|
+
constructor(http: AxiosInstance);
|
|
8
|
+
/**
|
|
9
|
+
* 发送验证码
|
|
10
|
+
* @param args 查询参数
|
|
11
|
+
* @returns JSON 字符串格式的响应
|
|
12
|
+
*/
|
|
13
|
+
sendCode(args: Record<string, unknown>): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* 登录并自动创建 API Key
|
|
16
|
+
* <p>
|
|
17
|
+
* 此方法直接调用后端的合并接口 /api/v1/auth/login-and-create-key,
|
|
18
|
+
* 后端一次性完成登录(包含自动注册新用户)和 API Key 创建
|
|
19
|
+
*
|
|
20
|
+
* @param args 查询参数(phone, code)
|
|
21
|
+
* @returns JSON 字符串格式的响应(包含 token、user、apiKey、apiKeyName、apiKeyCreatedAt)
|
|
22
|
+
*/
|
|
23
|
+
login(args: Record<string, unknown>): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* 创建 API Key
|
|
26
|
+
* @param args 查询参数
|
|
27
|
+
* @returns JSON 字符串格式的响应
|
|
28
|
+
*/
|
|
29
|
+
createApiKey(args: Record<string, unknown>): Promise<string>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC;;GAEG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEvC;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAqC9D;;;;;;;;OAQG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAyD3D;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAuCnE"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { validateString, validateOptionalString } from '../utils/validator.js';
|
|
2
|
+
import { sessionManager } from '../utils/session-manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* 认证工具类
|
|
5
|
+
*/
|
|
6
|
+
export class AuthTools {
|
|
7
|
+
http;
|
|
8
|
+
constructor(http) {
|
|
9
|
+
this.http = http;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 发送验证码
|
|
13
|
+
* @param args 查询参数
|
|
14
|
+
* @returns JSON 字符串格式的响应
|
|
15
|
+
*/
|
|
16
|
+
async sendCode(args) {
|
|
17
|
+
try {
|
|
18
|
+
// 参数校验
|
|
19
|
+
const phone = validateString(args.phone, '手机号');
|
|
20
|
+
const scene = validateOptionalString(args.scene, '场景');
|
|
21
|
+
// 构建请求体
|
|
22
|
+
const data = {
|
|
23
|
+
phone,
|
|
24
|
+
scene: scene || 'mcp_login'
|
|
25
|
+
};
|
|
26
|
+
// 调用远程 API(无认证)
|
|
27
|
+
const response = await this.http.post('/api/v1/auth/send-code', data);
|
|
28
|
+
// 检查业务响应
|
|
29
|
+
if (!response.data.success) {
|
|
30
|
+
return JSON.stringify({
|
|
31
|
+
success: false,
|
|
32
|
+
error: response.data.message || '发送验证码失败',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// 返回成功响应
|
|
36
|
+
return JSON.stringify({
|
|
37
|
+
success: true,
|
|
38
|
+
data: response.data.data,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('[AuthTools] sendCode error:', error);
|
|
43
|
+
return JSON.stringify({
|
|
44
|
+
success: false,
|
|
45
|
+
error: error instanceof Error ? error.message : '发送验证码失败',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 登录并自动创建 API Key
|
|
51
|
+
* <p>
|
|
52
|
+
* 此方法直接调用后端的合并接口 /api/v1/auth/login-and-create-key,
|
|
53
|
+
* 后端一次性完成登录(包含自动注册新用户)和 API Key 创建
|
|
54
|
+
*
|
|
55
|
+
* @param args 查询参数(phone, code)
|
|
56
|
+
* @returns JSON 字符串格式的响应(包含 token、user、apiKey、apiKeyName、apiKeyCreatedAt)
|
|
57
|
+
*/
|
|
58
|
+
async login(args) {
|
|
59
|
+
try {
|
|
60
|
+
// 参数校验
|
|
61
|
+
const phone = validateString(args.phone, '手机号');
|
|
62
|
+
const code = validateString(args.code, '验证码');
|
|
63
|
+
// 构建请求体
|
|
64
|
+
const data = {
|
|
65
|
+
phone,
|
|
66
|
+
code
|
|
67
|
+
};
|
|
68
|
+
// 调用远程 API(无认证)- 直接调用合并接口
|
|
69
|
+
const response = await this.http.post('/api/v1/auth/login-and-create-key', data);
|
|
70
|
+
// 检查业务响应
|
|
71
|
+
if (!response.data.success) {
|
|
72
|
+
return JSON.stringify({
|
|
73
|
+
success: false,
|
|
74
|
+
error: response.data.message || '登录失败',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const responseData = response.data.data;
|
|
78
|
+
// 保存 token 和 API Key 到会话管理器
|
|
79
|
+
sessionManager.setToken(responseData.token);
|
|
80
|
+
if (responseData.apiKey) {
|
|
81
|
+
sessionManager.setApiKey(responseData.apiKey);
|
|
82
|
+
}
|
|
83
|
+
// 返回完整响应数据
|
|
84
|
+
return JSON.stringify({
|
|
85
|
+
success: true,
|
|
86
|
+
data: {
|
|
87
|
+
token: responseData.token,
|
|
88
|
+
user: responseData.user,
|
|
89
|
+
apiKey: responseData.apiKey,
|
|
90
|
+
apiKeyName: responseData.apiKeyName,
|
|
91
|
+
apiKeyCreatedAt: responseData.apiKeyCreatedAt
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error('[AuthTools] login error:', error);
|
|
97
|
+
return JSON.stringify({
|
|
98
|
+
success: false,
|
|
99
|
+
error: error instanceof Error ? error.message : '登录失败',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 创建 API Key
|
|
105
|
+
* @param args 查询参数
|
|
106
|
+
* @returns JSON 字符串格式的响应
|
|
107
|
+
*/
|
|
108
|
+
async createApiKey(args) {
|
|
109
|
+
try {
|
|
110
|
+
// 参数校验
|
|
111
|
+
const token = validateString(args.token, 'Token');
|
|
112
|
+
const name = validateOptionalString(args.name, 'API Key 名称');
|
|
113
|
+
// 构建请求体
|
|
114
|
+
const data = {
|
|
115
|
+
name: name || 'MCP Auto Key'
|
|
116
|
+
};
|
|
117
|
+
// 调用远程 API(需要认证)
|
|
118
|
+
const response = await this.http.post('/api/v1/auth/create-api-key', data, { headers: { 'Authorization': `Bearer ${token}` } });
|
|
119
|
+
// 检查业务响应
|
|
120
|
+
if (!response.data.success) {
|
|
121
|
+
return JSON.stringify({
|
|
122
|
+
success: false,
|
|
123
|
+
error: response.data.message || '创建 API Key 失败',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// 返回成功响应
|
|
127
|
+
return JSON.stringify({
|
|
128
|
+
success: true,
|
|
129
|
+
data: response.data.data,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
console.error('[AuthTools] createApiKey error:', error);
|
|
134
|
+
return JSON.stringify({
|
|
135
|
+
success: false,
|
|
136
|
+
error: error instanceof Error ? error.message : '创建 API Key 失败',
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,22 @@ import { AxiosInstance } from 'axios';
|
|
|
5
5
|
* 自动配置 X-API-Key 认证头
|
|
6
6
|
*/
|
|
7
7
|
export declare function createHttpClient(): AxiosInstance;
|
|
8
|
+
/**
|
|
9
|
+
* 创建带缓存的 HTTP 客户端
|
|
10
|
+
* 如果设置了 API Key,使用 X-API-Key 认证
|
|
11
|
+
* 否则使用 Bearer Token 认证
|
|
12
|
+
*/
|
|
13
|
+
export declare function createApiClientWithCache(apiKey?: string): AxiosInstance;
|
|
14
|
+
/**
|
|
15
|
+
* 创建认证工具的 HTTP 客户端(无认证)
|
|
16
|
+
* 从环境变量读取 WORKSHUB_API_URL
|
|
17
|
+
* 不需要 API Key
|
|
18
|
+
*/
|
|
19
|
+
export declare function createAuthHttpClient(): AxiosInstance;
|
|
20
|
+
/**
|
|
21
|
+
* 创建带 Bearer Token 的 HTTP 客户端(认证工具使用)
|
|
22
|
+
* 从环境变量读取 WORKSHUB_API_URL
|
|
23
|
+
* 使用 Bearer Token 认证
|
|
24
|
+
*/
|
|
25
|
+
export declare function createBearerHttpClient(token: string): AxiosInstance;
|
|
8
26
|
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAwBhD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,CAepD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAgBnE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { sessionManager } from './session-manager.js';
|
|
2
3
|
/**
|
|
3
4
|
* 创建 HTTP 客户端实例
|
|
4
5
|
* 从环境变量读取 WORKSHUB_API_URL 和 WORKSHUB_API_KEY
|
|
@@ -27,4 +28,51 @@ export function createHttpClient() {
|
|
|
27
28
|
validateStatus: () => true,
|
|
28
29
|
});
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* 创建带缓存的 HTTP 客户端
|
|
33
|
+
* 如果设置了 API Key,使用 X-API-Key 认证
|
|
34
|
+
* 否则使用 Bearer Token 认证
|
|
35
|
+
*/
|
|
36
|
+
export function createApiClientWithCache(apiKey) {
|
|
37
|
+
return sessionManager.createCachedHttpClient();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 创建认证工具的 HTTP 客户端(无认证)
|
|
41
|
+
* 从环境变量读取 WORKSHUB_API_URL
|
|
42
|
+
* 不需要 API Key
|
|
43
|
+
*/
|
|
44
|
+
export function createAuthHttpClient() {
|
|
45
|
+
const baseURL = process.env.WORKSHUB_API_URL || 'https://workshub.ai/mcp';
|
|
46
|
+
if (!baseURL) {
|
|
47
|
+
throw new Error('环境变量 WORKSHUB_API_URL 未配置');
|
|
48
|
+
}
|
|
49
|
+
return axios.create({
|
|
50
|
+
baseURL,
|
|
51
|
+
timeout: 30000,
|
|
52
|
+
headers: {
|
|
53
|
+
'Content-Type': 'application/json'
|
|
54
|
+
},
|
|
55
|
+
validateStatus: () => true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 创建带 Bearer Token 的 HTTP 客户端(认证工具使用)
|
|
60
|
+
* 从环境变量读取 WORKSHUB_API_URL
|
|
61
|
+
* 使用 Bearer Token 认证
|
|
62
|
+
*/
|
|
63
|
+
export function createBearerHttpClient(token) {
|
|
64
|
+
const baseURL = process.env.WORKSHUB_API_URL || 'https://workshub.ai/mcp';
|
|
65
|
+
if (!baseURL) {
|
|
66
|
+
throw new Error('环境变量 WORKSHUB_API_URL 未配置');
|
|
67
|
+
}
|
|
68
|
+
return axios.create({
|
|
69
|
+
baseURL,
|
|
70
|
+
timeout: 30000,
|
|
71
|
+
headers: {
|
|
72
|
+
'Content-Type': 'application/json',
|
|
73
|
+
'Authorization': `Bearer ${token}`
|
|
74
|
+
},
|
|
75
|
+
validateStatus: () => true
|
|
76
|
+
});
|
|
77
|
+
}
|
|
30
78
|
//# sourceMappingURL=http-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC,MAAM;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAE5C,SAAS;IACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;IAClH,CAAC;IAED,cAAc;IACd,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO;QACP,OAAO,EAAE,KAAK,EAAE,QAAQ;QACxB,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM,EAAE,kBAAkB;SACxC;QACD,wBAAwB;QACxB,gCAAgC;QAChC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,OAAO,cAAc,CAAC,sBAAsB,EAAE,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;IAE1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO;QACP,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;IAE1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO;QACP,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,KAAK,EAAE;SACnC;QACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* 会话管理器
|
|
4
|
+
* 负责管理认证状态和 API Key 缓存
|
|
5
|
+
*/
|
|
6
|
+
export declare class SessionManager {
|
|
7
|
+
private currentToken;
|
|
8
|
+
private currentApiKey;
|
|
9
|
+
/**
|
|
10
|
+
* 设置 Token
|
|
11
|
+
*/
|
|
12
|
+
setToken(token: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* 设置 API Key
|
|
15
|
+
*/
|
|
16
|
+
setApiKey(apiKey: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 获取当前 Token
|
|
19
|
+
*/
|
|
20
|
+
getToken(): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* 获取当前 API Key
|
|
23
|
+
*/
|
|
24
|
+
getApiKey(): string | null;
|
|
25
|
+
/**
|
|
26
|
+
* 清除所有认证信息
|
|
27
|
+
*/
|
|
28
|
+
clearAuth(): void;
|
|
29
|
+
/**
|
|
30
|
+
* 创建动态 HTTP 客户端
|
|
31
|
+
* 优先使用 API Key 认证,回退到 Token 认证
|
|
32
|
+
*/
|
|
33
|
+
createDynamicHttpClient(): AxiosInstance;
|
|
34
|
+
/**
|
|
35
|
+
* 创建带缓存的 HTTP 客户端(与现有客户端保持一致)
|
|
36
|
+
*/
|
|
37
|
+
createCachedHttpClient(): AxiosInstance;
|
|
38
|
+
}
|
|
39
|
+
export declare const sessionManager: SessionManager;
|
|
40
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/utils/session-manager.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAE5C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,SAAS;IAKT;;;OAGG;IACH,uBAAuB,IAAI,aAAa;IA0BxC;;OAEG;IACH,sBAAsB,IAAI,aAAa;CAGxC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* 会话管理器
|
|
4
|
+
* 负责管理认证状态和 API Key 缓存
|
|
5
|
+
*/
|
|
6
|
+
export class SessionManager {
|
|
7
|
+
currentToken = null;
|
|
8
|
+
currentApiKey = null;
|
|
9
|
+
/**
|
|
10
|
+
* 设置 Token
|
|
11
|
+
*/
|
|
12
|
+
setToken(token) {
|
|
13
|
+
this.currentToken = token;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 设置 API Key
|
|
17
|
+
*/
|
|
18
|
+
setApiKey(apiKey) {
|
|
19
|
+
this.currentApiKey = apiKey;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 获取当前 Token
|
|
23
|
+
*/
|
|
24
|
+
getToken() {
|
|
25
|
+
return this.currentToken;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 获取当前 API Key
|
|
29
|
+
*/
|
|
30
|
+
getApiKey() {
|
|
31
|
+
return this.currentApiKey;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 清除所有认证信息
|
|
35
|
+
*/
|
|
36
|
+
clearAuth() {
|
|
37
|
+
this.currentToken = null;
|
|
38
|
+
this.currentApiKey = null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 创建动态 HTTP 客户端
|
|
42
|
+
* 优先使用 API Key 认证,回退到 Token 认证
|
|
43
|
+
*/
|
|
44
|
+
createDynamicHttpClient() {
|
|
45
|
+
const baseURL = process.env.WORKSHUB_API_URL || 'https://workshub.ai/mcp';
|
|
46
|
+
if (!baseURL) {
|
|
47
|
+
throw new Error('环境变量 WORKSHUB_API_URL 未配置');
|
|
48
|
+
}
|
|
49
|
+
const client = axios.create({
|
|
50
|
+
baseURL,
|
|
51
|
+
timeout: 30000,
|
|
52
|
+
headers: {
|
|
53
|
+
'Content-Type': 'application/json',
|
|
54
|
+
},
|
|
55
|
+
validateStatus: () => true,
|
|
56
|
+
});
|
|
57
|
+
// 添加认证头
|
|
58
|
+
if (this.currentApiKey) {
|
|
59
|
+
client.defaults.headers.common['X-API-Key'] = this.currentApiKey;
|
|
60
|
+
}
|
|
61
|
+
else if (this.currentToken) {
|
|
62
|
+
client.defaults.headers.common['Authorization'] = `Bearer ${this.currentToken}`;
|
|
63
|
+
}
|
|
64
|
+
return client;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 创建带缓存的 HTTP 客户端(与现有客户端保持一致)
|
|
68
|
+
*/
|
|
69
|
+
createCachedHttpClient() {
|
|
70
|
+
return this.createDynamicHttpClient();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// 创建全局会话管理器实例
|
|
74
|
+
export const sessionManager = new SessionManager();
|
|
75
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/utils/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAG7C;;;GAGG;AACH,MAAM,OAAO,cAAc;IACjB,YAAY,GAAkB,IAAI,CAAC;IACnC,aAAa,GAAkB,IAAI,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;QAE1E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,QAAQ;QACR,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QACnE,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QAClF,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACxC,CAAC;CACF;AAED,cAAc;AACd,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
|