workshub-mcp 1.0.1 → 1.0.2

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 CHANGED
@@ -15,7 +15,7 @@ WorksHub MCP 是一个基于 [Model Context Protocol](https://modelcontextprotoc
15
15
  - ✅ 接受申请并管理任务
16
16
  - 🛠️ 查询技能列表
17
17
 
18
- **已实现 14 个工具**,覆盖 4 大功能模块。
18
+ **已实现 17 个工具**,覆盖 5 大功能模块。
19
19
 
20
20
  ---
21
21
 
@@ -68,6 +68,57 @@ $env:WORKSHUB_API_KEY = "your_api_key_here"
68
68
 
69
69
  ---
70
70
 
71
+ ## 🔐 智能体自主注册和获取 API Key
72
+
73
+ WorksHub MCP 现支持智能体(AI Agent)自主完成注册、登录并获取 API Key 的完整流程,无需用户预先配置环境变量。
74
+
75
+ ### 认证流程
76
+
77
+ #### 1. 发送验证码
78
+ ```json
79
+ {
80
+ "name": "send_code",
81
+ "arguments": {
82
+ "phone": "13800138000"
83
+ }
84
+ }
85
+ ```
86
+
87
+ #### 2. 登录(自动创建 API Key)
88
+ ```json
89
+ {
90
+ "name": "login",
91
+ "arguments": {
92
+ "phone": "13800138000",
93
+ "code": "000000" // 开发环境万能验证码
94
+ }
95
+ }
96
+ ```
97
+
98
+ **返回**: `{ success, data: { token, user, apiKey, apiKeyName, apiKeyCreatedAt } }`
99
+
100
+ 说明:登录接口已整合 API Key 创建功能,一次性返回完整的认证信息,无需再单独调用 create_api_key。
101
+
102
+ #### 3. 配置环境变量
103
+ 将返回的 `apiKey` 配置到 `WORKSHUB_API_KEY` 环境变量后,即可使用其他业务工具。
104
+
105
+ ### 两种使用方式
106
+
107
+ #### 方式1:预先配置(推荐)
108
+ ```bash
109
+ export WORKSHUB_API_KEY="your_api_key"
110
+ ```
111
+
112
+ #### 方式2:智能体自主获取
113
+ 智能体可以先调用认证流程获取 API Key,然后提示用户配置。
114
+
115
+ ### 注意事项
116
+ - 验证码有效期为 5 分钟
117
+ - 每个手机号每分钟最多发送 1 次验证码
118
+ - 创建的 API Key 需要配置到 WORKSHUB_API_KEY 环境变量后才能使用业务工具
119
+
120
+ ---
121
+
71
122
  ## 在 AI IDE 中使用
72
123
 
73
124
  ### Cursor 配置
@@ -152,7 +203,53 @@ $env:WORKSHUB_API_KEY = "your_api_key_here"
152
203
  | 工作者管理 | 3 |
153
204
  | 悬赏任务管理 | 6 |
154
205
  | 对话管理 | 4 |
155
- | **总计** | **14** |
206
+ | **总计** | **17** |
207
+
208
+ ---
209
+
210
+ ## 🔧 工具详细说明
211
+
212
+ ### 0. 认证管理(3个工具)
213
+
214
+ #### `send_code`
215
+
216
+ **功能**: 发送手机验证码,用于登录验证
217
+
218
+ **参数**:
219
+ | 参数名 | 类型 | 必填 | 说明 |
220
+ |--------|------|------|------|
221
+ | `phone` | string | 是 | 手机号,11位数字 |
222
+ | `scene` | string | 否 | 场景,默认 "mcp_login" |
223
+
224
+ **返回**: `{ success, data }`
225
+
226
+ #### `login`
227
+
228
+ **功能**: 使用手机号和验证码登录,自动注册新用户
229
+
230
+ **参数**:
231
+ | 参数名 | 类型 | 必填 | 说明 |
232
+ |--------|------|------|------|
233
+ | `phone` | string | 是 | 手机号,11位数字 |
234
+ | `code` | string | 是 | 验证码,6位数字 |
235
+
236
+ **返回**: `{ success, data: { token, user, apiKey, apiKeyName, apiKeyCreatedAt } }`
237
+
238
+ #### `create_api_key`
239
+
240
+ **功能**: 创建 API Key
241
+
242
+ **说明**: 注意:登录时已自动创建 API Key,此工具仅用于额外创建新密钥
243
+
244
+ **参数**:
245
+ | 参数名 | 类型 | 必填 | 说明 |
246
+ |--------|------|------|------|
247
+ | `token` | string | 是 | 登录返回的 token |
248
+ | `name` | string | 否 | API Key 名称,默认 "MCP Auto Key" |
249
+
250
+ **返回**: `{ success, data: { apiKey, name, createdAt } }`
251
+
252
+ ### 1. 技能管理(1个工具)
156
253
 
157
254
  ---
158
255
 
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8sB5B,CAAC"}
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;AAE7D;;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;CACtC;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,CA+EjB"}
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":"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"}
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
- skillTools = new SkillTools(httpClient);
38
- workerTools = new WorkerTools(httpClient);
39
- bountyTools = new BountyTools(httpClient);
40
- conversationTools = new ConversationTools(httpClient);
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('🛠️ 已注册 14 个工具:');
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":"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"}
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;AAE7C;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAwBhD"}
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;AAE7C;;;;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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workshub-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "WorksHub MCP Service - AI Agent可通过此MCP服务雇佣真人工作者完成现实任务",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",