anttask-mcp-test 1.0.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.
Files changed (52) hide show
  1. package/README.md +77 -0
  2. package/content/available-skills.md +70 -0
  3. package/content/user-guide.md +175 -0
  4. package/dist/constants.d.ts +10 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/constants.js +10 -0
  7. package/dist/constants.js.map +1 -0
  8. package/dist/data/skills.d.ts +10 -0
  9. package/dist/data/skills.d.ts.map +1 -0
  10. package/dist/data/skills.js +26 -0
  11. package/dist/data/skills.js.map +1 -0
  12. package/dist/index.d.ts +10 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +67 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/resources/index.d.ts +10 -0
  17. package/dist/resources/index.d.ts.map +1 -0
  18. package/dist/resources/index.js +53 -0
  19. package/dist/resources/index.js.map +1 -0
  20. package/dist/schemas/anttest.d.ts +145 -0
  21. package/dist/schemas/anttest.d.ts.map +1 -0
  22. package/dist/schemas/anttest.js +84 -0
  23. package/dist/schemas/anttest.js.map +1 -0
  24. package/dist/schemas/example.d.ts +22 -0
  25. package/dist/schemas/example.d.ts.map +1 -0
  26. package/dist/schemas/example.js +25 -0
  27. package/dist/schemas/example.js.map +1 -0
  28. package/dist/schemas/humans.d.ts +19 -0
  29. package/dist/schemas/humans.d.ts.map +1 -0
  30. package/dist/schemas/humans.js +27 -0
  31. package/dist/schemas/humans.js.map +1 -0
  32. package/dist/services/anttest-api.d.ts +23 -0
  33. package/dist/services/anttest-api.d.ts.map +1 -0
  34. package/dist/services/anttest-api.js +67 -0
  35. package/dist/services/anttest-api.js.map +1 -0
  36. package/dist/tools/anttest.d.ts +9 -0
  37. package/dist/tools/anttest.d.ts.map +1 -0
  38. package/dist/tools/anttest.js +528 -0
  39. package/dist/tools/anttest.js.map +1 -0
  40. package/dist/tools/example.d.ts +9 -0
  41. package/dist/tools/example.d.ts.map +1 -0
  42. package/dist/tools/example.js +69 -0
  43. package/dist/tools/example.js.map +1 -0
  44. package/dist/tools/humans.d.ts +9 -0
  45. package/dist/tools/humans.d.ts.map +1 -0
  46. package/dist/tools/humans.js +110 -0
  47. package/dist/tools/humans.js.map +1 -0
  48. package/dist/types.d.ts +13 -0
  49. package/dist/types.d.ts.map +1 -0
  50. package/dist/types.js +5 -0
  51. package/dist/types.js.map +1 -0
  52. package/package.json +36 -0
@@ -0,0 +1,110 @@
1
+ /**
2
+ * search_humans 工具实现
3
+ */
4
+ import { SearchHumansInputSchema, } from "../schemas/humans.js";
5
+ /** 模拟人类数据(后续可替换为真实 API 调用) */
6
+ const MOCK_HUMANS = [
7
+ {
8
+ id: "H001",
9
+ name: "张三",
10
+ email: "zhangsan@example.com",
11
+ skill: "In-Person Meetings",
12
+ rate: 65,
13
+ experience: "5 年商务会议经验",
14
+ },
15
+ {
16
+ id: "H002",
17
+ name: "李四",
18
+ email: "lisi@example.com",
19
+ skill: "In-Person Meetings",
20
+ rate: 72,
21
+ experience: "8 年客户拜访经验",
22
+ },
23
+ {
24
+ id: "H003",
25
+ name: "王五",
26
+ email: "wangwu@example.com",
27
+ skill: "In-Person Meetings",
28
+ rate: 58,
29
+ experience: "3 年销售支持",
30
+ },
31
+ {
32
+ id: "H004",
33
+ name: "赵六",
34
+ email: "zhaoliu@example.com",
35
+ skill: "In-Person Meetings",
36
+ rate: 80,
37
+ experience: "10 年高管会议",
38
+ },
39
+ {
40
+ id: "H005",
41
+ name: "钱七",
42
+ email: "qianqi@example.com",
43
+ skill: "In-Person Meetings",
44
+ rate: 45,
45
+ experience: "2 年助理经验",
46
+ },
47
+ ];
48
+ /**
49
+ * 注册 search_humans 工具到 MCP 服务器
50
+ */
51
+ export function registerHumansTools(server) {
52
+ server.registerTool("search_humans", {
53
+ title: "Search Humans",
54
+ description: `按技能和费率筛选具备特定技能的人员。
55
+
56
+ 参数:
57
+ - skill (string): 技能名称,如 'In-Person Meetings'
58
+ - maxRate (number, 可选): 最大小时费率,用于筛选在预算内的人员
59
+ - limit (number): 返回结果数量 1-100,默认 10
60
+
61
+ 返回: 符合条件的人员列表,包含 id、name、email、skill、rate、experience`,
62
+ inputSchema: SearchHumansInputSchema,
63
+ annotations: {
64
+ readOnlyHint: true,
65
+ destructiveHint: false,
66
+ idempotentHint: true,
67
+ openWorldHint: true,
68
+ },
69
+ }, async (params) => {
70
+ // 模拟按 skill 和 maxRate 筛选
71
+ let results = MOCK_HUMANS.filter((h) => h.skill.toLowerCase().includes(params.skill.toLowerCase()) &&
72
+ (params.maxRate === undefined || h.rate <= params.maxRate));
73
+ results = results.slice(0, params.limit);
74
+ const output = {
75
+ total: results.length,
76
+ skill: params.skill,
77
+ maxRate: params.maxRate,
78
+ humans: results.map((h) => ({
79
+ id: h.id,
80
+ name: h.name,
81
+ email: h.email,
82
+ skill: h.skill,
83
+ rate: h.rate,
84
+ experience: h.experience,
85
+ })),
86
+ };
87
+ let textContent;
88
+ if (results.length > 0) {
89
+ const rateLine = params.maxRate != null
90
+ ? `费率 ≤ ${params.maxRate} 元/小时,共 ${results.length} 人`
91
+ : `共 ${results.length} 人`;
92
+ const humanLines = results.map((h) => `## ${h.name} (${h.id})\n- **Email**: ${h.email}\n- **费率**: ${h.rate} 元/小时\n- **经验**: ${h.experience}\n`);
93
+ textContent = [
94
+ `# 搜索结果: 技能 "${params.skill}"`,
95
+ "",
96
+ rateLine,
97
+ "",
98
+ ...humanLines,
99
+ ].join("\n");
100
+ }
101
+ else {
102
+ textContent = `未找到技能 "${params.skill}" 且符合条件的人员。`;
103
+ }
104
+ return {
105
+ content: [{ type: "text", text: textContent }],
106
+ structuredContent: output,
107
+ };
108
+ });
109
+ }
110
+ //# sourceMappingURL=humans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humans.js","sourceRoot":"","sources":["../../src/tools/humans.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 类型定义和接口
3
+ */
4
+ /** 通用分页响应 */
5
+ export interface PaginatedResponse<T> {
6
+ total: number;
7
+ count: number;
8
+ offset: number;
9
+ items: T[];
10
+ has_more: boolean;
11
+ next_offset?: number;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,aAAa;AACb,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 类型定义和接口
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "anttask-mcp-test",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for external API integration - TypeScript template",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "files": [
8
+ "dist",
9
+ "content"
10
+ ],
11
+ "bin": {
12
+ "anttask-mcp-test": "dist/index.js"
13
+ },
14
+ "scripts": {
15
+ "start": "node dist/index.js",
16
+ "dev": "tsx watch src/index.ts",
17
+ "build": "tsc",
18
+ "clean": "rm -rf dist",
19
+ "inspect": "npx @modelcontextprotocol/inspector node dist/index.js"
20
+ },
21
+ "engines": {
22
+ "node": ">=18"
23
+ },
24
+ "dependencies": {
25
+ "@modelcontextprotocol/sdk": "^1.26.0",
26
+ "axios": "^1.13.5",
27
+ "express": "^4.21.0",
28
+ "zod": "^3.23.8"
29
+ },
30
+ "devDependencies": {
31
+ "@types/express": "^4.17.21",
32
+ "@types/node": "^22.10.0",
33
+ "tsx": "^4.19.2",
34
+ "typescript": "^5.7.2"
35
+ }
36
+ }