@mikoto_zero/minigame-open-mcp 1.0.16 → 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/dist/config/promptDefinitions.d.ts +19 -0
- package/dist/config/promptDefinitions.d.ts.map +1 -0
- package/dist/config/promptDefinitions.js +28 -0
- package/dist/config/promptDefinitions.js.map +1 -0
- package/dist/config/resourceDefinitions.d.ts +19 -0
- package/dist/config/resourceDefinitions.d.ts.map +1 -0
- package/dist/config/resourceDefinitions.js +75 -0
- package/dist/config/resourceDefinitions.js.map +1 -0
- package/dist/handlers/promptHandlers.d.ts +26 -0
- package/dist/handlers/promptHandlers.d.ts.map +1 -0
- package/dist/handlers/promptHandlers.js +336 -0
- package/dist/handlers/promptHandlers.js.map +1 -0
- package/dist/server.js +85 -5
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts Definitions
|
|
3
|
+
* Prompts provide reusable templates and workflows
|
|
4
|
+
*/
|
|
5
|
+
export interface PromptArgument {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PromptDefinition {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
arguments?: PromptArgument[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get all prompt definitions
|
|
17
|
+
*/
|
|
18
|
+
export declare function getPromptDefinitions(): PromptDefinition[];
|
|
19
|
+
//# sourceMappingURL=promptDefinitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptDefinitions.d.ts","sourceRoot":"","sources":["../../src/config/promptDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAmBzD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts Definitions
|
|
3
|
+
* Prompts provide reusable templates and workflows
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get all prompt definitions
|
|
7
|
+
*/
|
|
8
|
+
export function getPromptDefinitions() {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
name: 'leaderboard-integration',
|
|
12
|
+
description: 'Complete interactive guide for integrating TapTap leaderboard into your game. Checks existing leaderboards and guides through setup.',
|
|
13
|
+
arguments: []
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'leaderboard-troubleshooting',
|
|
17
|
+
description: 'Common leaderboard issues and troubleshooting guide with solutions for frequent error codes.',
|
|
18
|
+
arguments: [
|
|
19
|
+
{
|
|
20
|
+
name: 'error_code',
|
|
21
|
+
description: 'Optional error code to get specific troubleshooting steps (e.g., 500001, 1025, 104)',
|
|
22
|
+
required: false
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=promptDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptDefinitions.js","sourceRoot":"","sources":["../../src/config/promptDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,sIAAsI;YACnJ,SAAS,EAAE,EAAE;SACd;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,8FAA8F;YAC3G,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,qFAAqF;oBAClG,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resources Definitions
|
|
3
|
+
* Resources expose read-only documentation and reference data
|
|
4
|
+
*/
|
|
5
|
+
export interface ResourceDefinition {
|
|
6
|
+
uri: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
mimeType?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get all resource definitions
|
|
13
|
+
*/
|
|
14
|
+
export declare function getResourceDefinitions(): ResourceDefinition[];
|
|
15
|
+
/**
|
|
16
|
+
* Resource URI mapping to handler keys
|
|
17
|
+
*/
|
|
18
|
+
export declare const RESOURCE_URI_MAP: Record<string, string>;
|
|
19
|
+
//# sourceMappingURL=resourceDefinitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceDefinitions.d.ts","sourceRoot":"","sources":["../../src/config/resourceDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAsD7D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASnD,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resources Definitions
|
|
3
|
+
* Resources expose read-only documentation and reference data
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get all resource definitions
|
|
7
|
+
*/
|
|
8
|
+
export function getResourceDefinitions() {
|
|
9
|
+
return [
|
|
10
|
+
// LeaderboardManager API Documentation Resources
|
|
11
|
+
{
|
|
12
|
+
uri: 'docs://leaderboard/api/get-manager',
|
|
13
|
+
name: 'LeaderboardManager 实例获取',
|
|
14
|
+
description: '如何获取 LeaderboardManager 实例以访问排行榜功能',
|
|
15
|
+
mimeType: 'text/markdown'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
uri: 'docs://leaderboard/api/open',
|
|
19
|
+
name: '打开排行榜 UI',
|
|
20
|
+
description: 'openLeaderboard() API - 打开并显示排行榜页面',
|
|
21
|
+
mimeType: 'text/markdown'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
uri: 'docs://leaderboard/api/submit-scores',
|
|
25
|
+
name: '提交玩家分数',
|
|
26
|
+
description: 'submitScores() API - 向排行榜提交玩家分数',
|
|
27
|
+
mimeType: 'text/markdown'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
uri: 'docs://leaderboard/api/load-scores',
|
|
31
|
+
name: '加载排行榜数据',
|
|
32
|
+
description: 'loadLeaderboardScores() API - 加载排行榜分数列表',
|
|
33
|
+
mimeType: 'text/markdown'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
uri: 'docs://leaderboard/api/load-player-score',
|
|
37
|
+
name: '获取当前玩家分数',
|
|
38
|
+
description: 'loadCurrentPlayerLeaderboardScore() API - 获取当前玩家的分数和排名',
|
|
39
|
+
mimeType: 'text/markdown'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
uri: 'docs://leaderboard/api/load-centered-scores',
|
|
43
|
+
name: '加载玩家周围分数',
|
|
44
|
+
description: 'loadPlayerCenteredScores() API - 加载当前玩家周围的其他玩家分数',
|
|
45
|
+
mimeType: 'text/markdown'
|
|
46
|
+
},
|
|
47
|
+
// Overview and Best Practices
|
|
48
|
+
{
|
|
49
|
+
uri: 'docs://leaderboard/overview',
|
|
50
|
+
name: '排行榜系统完整概览',
|
|
51
|
+
description: '排行榜 API 的完整概览,包括所有功能和使用场景',
|
|
52
|
+
mimeType: 'text/markdown'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
uri: 'docs://leaderboard/patterns',
|
|
56
|
+
name: '集成模式和最佳实践',
|
|
57
|
+
description: '常见使用场景、集成模式和最佳实践指南',
|
|
58
|
+
mimeType: 'text/markdown'
|
|
59
|
+
}
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resource URI mapping to handler keys
|
|
64
|
+
*/
|
|
65
|
+
export const RESOURCE_URI_MAP = {
|
|
66
|
+
'docs://leaderboard/api/get-manager': 'getLeaderboardManager',
|
|
67
|
+
'docs://leaderboard/api/open': 'openLeaderboard',
|
|
68
|
+
'docs://leaderboard/api/submit-scores': 'submitScores',
|
|
69
|
+
'docs://leaderboard/api/load-scores': 'loadLeaderboardScores',
|
|
70
|
+
'docs://leaderboard/api/load-player-score': 'loadCurrentPlayerScore',
|
|
71
|
+
'docs://leaderboard/api/load-centered-scores': 'loadPlayerCenteredScores',
|
|
72
|
+
'docs://leaderboard/overview': 'getLeaderboardOverview',
|
|
73
|
+
'docs://leaderboard/patterns': 'getLeaderboardPatterns'
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=resourceDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceDefinitions.js","sourceRoot":"","sources":["../../src/config/resourceDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,iDAAiD;QACjD;YACE,GAAG,EAAE,oCAAoC;YACzC,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,sCAAsC;YAC3C,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,oCAAoC;YACzC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,0CAA0C;YAC/C,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,6CAA6C;YAClD,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,eAAe;SAC1B;QAED,8BAA8B;QAC9B;YACE,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,eAAe;SAC1B;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,oCAAoC,EAAE,uBAAuB;IAC7D,6BAA6B,EAAE,iBAAiB;IAChD,sCAAsC,EAAE,cAAc;IACtD,oCAAoC,EAAE,uBAAuB;IAC7D,0CAA0C,EAAE,wBAAwB;IACpE,6CAA6C,EAAE,0BAA0B;IACzE,6BAA6B,EAAE,wBAAwB;IACvD,6BAA6B,EAAE,wBAAwB;CACxD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts Handlers
|
|
3
|
+
* Handle prompt template generation
|
|
4
|
+
*/
|
|
5
|
+
export interface PromptMessage {
|
|
6
|
+
role: 'user' | 'assistant';
|
|
7
|
+
content: {
|
|
8
|
+
type: 'text' | 'image' | 'resource';
|
|
9
|
+
text?: string;
|
|
10
|
+
data?: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface PromptResponse {
|
|
15
|
+
description?: string;
|
|
16
|
+
messages: PromptMessage[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Leaderboard integration guide prompt
|
|
20
|
+
*/
|
|
21
|
+
export declare function getLeaderboardIntegrationPrompt(args: any): Promise<PromptResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Leaderboard troubleshooting guide prompt
|
|
24
|
+
*/
|
|
25
|
+
export declare function getLeaderboardTroubleshootingPrompt(args: any): Promise<PromptResponse>;
|
|
26
|
+
//# sourceMappingURL=promptHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/promptHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAoCxF;AAED;;GAEG;AACH,wBAAsB,mCAAmC,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAsH5F"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts Handlers
|
|
3
|
+
* Handle prompt template generation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Leaderboard integration guide prompt
|
|
7
|
+
*/
|
|
8
|
+
export async function getLeaderboardIntegrationPrompt(args) {
|
|
9
|
+
return {
|
|
10
|
+
description: '排行榜接入完整工作流引导',
|
|
11
|
+
messages: [
|
|
12
|
+
{
|
|
13
|
+
role: 'user',
|
|
14
|
+
content: {
|
|
15
|
+
type: 'text',
|
|
16
|
+
text: `我想在我的 TapTap 小游戏中接入排行榜功能。请帮我:
|
|
17
|
+
|
|
18
|
+
1. 检查我是否已经有排行榜配置
|
|
19
|
+
2. 如果没有,引导我创建新的排行榜
|
|
20
|
+
3. 如果有,列出现有排行榜供我选择
|
|
21
|
+
4. 提供完整的客户端集成代码示例
|
|
22
|
+
|
|
23
|
+
请使用 list_leaderboards 工具开始检查。`
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
role: 'assistant',
|
|
28
|
+
content: {
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: `好的!我会帮你完成排行榜接入。让我先检查你现有的排行榜配置...
|
|
31
|
+
|
|
32
|
+
**步骤 1: 检查现有排行榜**
|
|
33
|
+
我会调用 list_leaderboards 工具来查看你已有的排行榜。
|
|
34
|
+
|
|
35
|
+
**接下来的步骤:**
|
|
36
|
+
- 如果你还没有排行榜,我会引导你使用 create_leaderboard 创建
|
|
37
|
+
- 如果已有排行榜,我会列出它们并提供对应的集成代码
|
|
38
|
+
|
|
39
|
+
让我现在开始检查...`
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Leaderboard troubleshooting guide prompt
|
|
47
|
+
*/
|
|
48
|
+
export async function getLeaderboardTroubleshootingPrompt(args) {
|
|
49
|
+
const errorCode = args.error_code;
|
|
50
|
+
if (errorCode) {
|
|
51
|
+
// Specific error code troubleshooting
|
|
52
|
+
return {
|
|
53
|
+
description: `排行榜错误 ${errorCode} 的排查指南`,
|
|
54
|
+
messages: [
|
|
55
|
+
{
|
|
56
|
+
role: 'user',
|
|
57
|
+
content: {
|
|
58
|
+
type: 'text',
|
|
59
|
+
text: `我遇到了排行榜错误代码 ${errorCode},请帮我排查和解决。`
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
role: 'assistant',
|
|
64
|
+
content: {
|
|
65
|
+
type: 'text',
|
|
66
|
+
text: getErrorCodeSolution(errorCode)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// General troubleshooting guide
|
|
73
|
+
return {
|
|
74
|
+
description: '排行榜常见问题排查指南',
|
|
75
|
+
messages: [
|
|
76
|
+
{
|
|
77
|
+
role: 'user',
|
|
78
|
+
content: {
|
|
79
|
+
type: 'text',
|
|
80
|
+
text: '我在使用 TapTap 排行榜时遇到了问题,请提供常见问题的排查步骤。'
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
role: 'assistant',
|
|
85
|
+
content: {
|
|
86
|
+
type: 'text',
|
|
87
|
+
text: `# TapTap 排行榜常见问题排查指南
|
|
88
|
+
|
|
89
|
+
## 🔍 常见错误代码
|
|
90
|
+
|
|
91
|
+
### 错误码 500001: 排行榜 ID 未找到
|
|
92
|
+
**原因:** leaderboard_id 不存在或输入错误
|
|
93
|
+
|
|
94
|
+
**解决方案:**
|
|
95
|
+
1. 使用 list_leaderboards 工具检查你的排行榜 ID
|
|
96
|
+
2. 确认排行榜已经创建并发布
|
|
97
|
+
3. 检查 leaderboard_id 拼写是否正确
|
|
98
|
+
|
|
99
|
+
### 错误码 1025: 未声明好友关系权限
|
|
100
|
+
**原因:** 尝试访问好友排行榜但未申请权限
|
|
101
|
+
|
|
102
|
+
**解决方案:**
|
|
103
|
+
1. 在 TapTap 开发者中心申请好友关系权限
|
|
104
|
+
2. 等待审核通过
|
|
105
|
+
3. 或者使用 collection: "public" 显示全局排行榜
|
|
106
|
+
|
|
107
|
+
### 错误码 104/103: 用户隐私/授权问题
|
|
108
|
+
**原因:** 用户未授权或隐私设置限制
|
|
109
|
+
|
|
110
|
+
**解决方案:**
|
|
111
|
+
1. 确保用户已登录 TapTap
|
|
112
|
+
2. 引导用户授权必要的权限
|
|
113
|
+
3. 处理用户拒绝授权的情况
|
|
114
|
+
|
|
115
|
+
## 🛠️ 排查步骤
|
|
116
|
+
|
|
117
|
+
### 1. 检查环境配置
|
|
118
|
+
使用 check_environment 工具验证:
|
|
119
|
+
- MAC Token 是否正确配置
|
|
120
|
+
- Client ID 和 Secret 是否有效
|
|
121
|
+
- 网络连接是否正常
|
|
122
|
+
|
|
123
|
+
### 2. 验证排行榜配置
|
|
124
|
+
使用 list_leaderboards 工具检查:
|
|
125
|
+
- 排行榜是否已创建
|
|
126
|
+
- 排行榜状态是否正常
|
|
127
|
+
- leaderboard_id 是否正确
|
|
128
|
+
|
|
129
|
+
### 3. 检查客户端代码
|
|
130
|
+
确认以下几点:
|
|
131
|
+
- LeaderboardManager 实例正确获取
|
|
132
|
+
- leaderboard_id 传递正确
|
|
133
|
+
- 回调函数正确处理错误
|
|
134
|
+
|
|
135
|
+
### 4. 查看详细文档
|
|
136
|
+
使用 Resources 获取详细 API 文档:
|
|
137
|
+
- docs://leaderboard/api/open - 打开排行榜 API
|
|
138
|
+
- docs://leaderboard/api/submit-scores - 提交分数 API
|
|
139
|
+
- docs://leaderboard/overview - 完整概览
|
|
140
|
+
|
|
141
|
+
## 💡 最佳实践
|
|
142
|
+
|
|
143
|
+
1. **始终实现错误处理回调**
|
|
144
|
+
\`\`\`javascript
|
|
145
|
+
callback: {
|
|
146
|
+
onFailure: function(code, message) {
|
|
147
|
+
console.error(\`Error \${code}: \${message}\`);
|
|
148
|
+
// 向用户显示友好的错误提示
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
\`\`\`
|
|
152
|
+
|
|
153
|
+
2. **先检查后使用**
|
|
154
|
+
在使用排行榜前,先调用 list_leaderboards 确认配置
|
|
155
|
+
|
|
156
|
+
3. **处理网络异常**
|
|
157
|
+
实现重试机制和离线提示
|
|
158
|
+
|
|
159
|
+
需要针对特定错误的帮助吗?请告诉我错误代码,我会提供详细的解决方案。`
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get specific error code solution
|
|
167
|
+
*/
|
|
168
|
+
function getErrorCodeSolution(errorCode) {
|
|
169
|
+
const solutions = {
|
|
170
|
+
'500001': `# 错误码 500001: 排行榜 ID 未找到
|
|
171
|
+
|
|
172
|
+
## 问题原因
|
|
173
|
+
你使用的 leaderboard_id 在系统中不存在。
|
|
174
|
+
|
|
175
|
+
## 解决步骤
|
|
176
|
+
|
|
177
|
+
### 1. 检查现有排行榜
|
|
178
|
+
我会帮你调用 list_leaderboards 工具来查看你的所有排行榜。
|
|
179
|
+
|
|
180
|
+
### 2. 常见原因
|
|
181
|
+
- 排行榜尚未创建
|
|
182
|
+
- leaderboard_id 拼写错误
|
|
183
|
+
- 排行榜已被删除
|
|
184
|
+
- 使用了其他应用的 leaderboard_id
|
|
185
|
+
|
|
186
|
+
### 3. 解决方案
|
|
187
|
+
如果你还没有排行榜,可以使用 create_leaderboard 工具创建:
|
|
188
|
+
|
|
189
|
+
\`\`\`javascript
|
|
190
|
+
// 创建排行榜示例
|
|
191
|
+
{
|
|
192
|
+
"name": "每周高分榜",
|
|
193
|
+
"score_type": "better_than",
|
|
194
|
+
"reset_cycle": "weekly",
|
|
195
|
+
"sort_order": "desc"
|
|
196
|
+
}
|
|
197
|
+
\`\`\`
|
|
198
|
+
|
|
199
|
+
创建成功后,你会获得一个 leaderboard_id,在客户端代码中使用它。
|
|
200
|
+
|
|
201
|
+
需要我帮你检查或创建排行榜吗?`,
|
|
202
|
+
'1025': `# 错误码 1025: 未声明好友关系权限
|
|
203
|
+
|
|
204
|
+
## 问题原因
|
|
205
|
+
你的代码尝试访问好友排行榜(collection: "friends"),但应用未申请好友关系权限。
|
|
206
|
+
|
|
207
|
+
## 解决步骤
|
|
208
|
+
|
|
209
|
+
### 1. 申请权限
|
|
210
|
+
前往 TapTap 开发者中心:
|
|
211
|
+
1. 选择你的应用
|
|
212
|
+
2. 进入"权限管理"
|
|
213
|
+
3. 申请"好友关系权限"
|
|
214
|
+
4. 等待审核通过
|
|
215
|
+
|
|
216
|
+
### 2. 临时解决方案
|
|
217
|
+
在权限审核期间,使用全局排行榜:
|
|
218
|
+
|
|
219
|
+
\`\`\`javascript
|
|
220
|
+
leaderboardManager.openLeaderboard({
|
|
221
|
+
leaderboardId: "your_leaderboard_id",
|
|
222
|
+
collection: "public", // 使用全局排行榜
|
|
223
|
+
callback: {
|
|
224
|
+
onSuccess: function(res) {
|
|
225
|
+
console.log("打开成功");
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
\`\`\`
|
|
230
|
+
|
|
231
|
+
### 3. 权限通过后
|
|
232
|
+
权限审核通过后,就可以使用好友排行榜:
|
|
233
|
+
|
|
234
|
+
\`\`\`javascript
|
|
235
|
+
collection: "friends" // 显示好友排行榜
|
|
236
|
+
\`\`\`
|
|
237
|
+
|
|
238
|
+
需要查看完整的 openLeaderboard API 文档吗?可以访问 Resource: docs://leaderboard/api/open`,
|
|
239
|
+
'104': `# 错误码 104: 用户未授权
|
|
240
|
+
|
|
241
|
+
## 问题原因
|
|
242
|
+
当前用户未登录或未授权访问排行榜功能。
|
|
243
|
+
|
|
244
|
+
## 解决步骤
|
|
245
|
+
|
|
246
|
+
### 1. 检查用户登录状态
|
|
247
|
+
确保用户已登录 TapTap:
|
|
248
|
+
|
|
249
|
+
\`\`\`javascript
|
|
250
|
+
// 检查登录状态
|
|
251
|
+
tap.checkLoginStatus({
|
|
252
|
+
onSuccess: function(res) {
|
|
253
|
+
if (res.isLogin) {
|
|
254
|
+
// 用户已登录,可以使用排行榜
|
|
255
|
+
openLeaderboard();
|
|
256
|
+
} else {
|
|
257
|
+
// 引导用户登录
|
|
258
|
+
tap.login({
|
|
259
|
+
onSuccess: function() {
|
|
260
|
+
openLeaderboard();
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
\`\`\`
|
|
267
|
+
|
|
268
|
+
### 2. 处理授权流程
|
|
269
|
+
\`\`\`javascript
|
|
270
|
+
leaderboardManager.openLeaderboard({
|
|
271
|
+
leaderboardId: "your_leaderboard_id",
|
|
272
|
+
callback: {
|
|
273
|
+
onFailure: function(code, message) {
|
|
274
|
+
if (code === 104) {
|
|
275
|
+
// 引导用户登录
|
|
276
|
+
showLoginDialog();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
\`\`\`
|
|
282
|
+
|
|
283
|
+
### 3. 用户体验优化
|
|
284
|
+
- 在使用排行榜前主动检查登录状态
|
|
285
|
+
- 提供清晰的登录引导
|
|
286
|
+
- 处理用户拒绝登录的情况
|
|
287
|
+
|
|
288
|
+
需要更多关于用户认证的帮助吗?`,
|
|
289
|
+
'103': `# 错误码 103: 用户隐私设置限制
|
|
290
|
+
|
|
291
|
+
## 问题原因
|
|
292
|
+
用户的隐私设置限制了排行榜数据的访问。
|
|
293
|
+
|
|
294
|
+
## 解决步骤
|
|
295
|
+
|
|
296
|
+
### 1. 尊重用户隐私
|
|
297
|
+
这是用户的主动选择,应用应该优雅处理:
|
|
298
|
+
|
|
299
|
+
\`\`\`javascript
|
|
300
|
+
leaderboardManager.openLeaderboard({
|
|
301
|
+
leaderboardId: "your_leaderboard_id",
|
|
302
|
+
callback: {
|
|
303
|
+
onFailure: function(code, message) {
|
|
304
|
+
if (code === 103) {
|
|
305
|
+
// 向用户说明隐私设置的影响
|
|
306
|
+
showMessage("由于隐私设置,无法显示你的排行榜数据");
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
\`\`\`
|
|
312
|
+
|
|
313
|
+
### 2. 提供替代方案
|
|
314
|
+
- 仍然显示全局排行榜(不包含该用户)
|
|
315
|
+
- 提供其他游戏功能
|
|
316
|
+
- 说明如何修改隐私设置(但不要强制)
|
|
317
|
+
|
|
318
|
+
### 3. 最佳实践
|
|
319
|
+
- 不要重复提示用户修改隐私设置
|
|
320
|
+
- 确保应用的其他功能正常可用
|
|
321
|
+
- 在 UI 上给予友好提示
|
|
322
|
+
|
|
323
|
+
用户隐私是重要的,应用应该优雅地处理这种情况。`
|
|
324
|
+
};
|
|
325
|
+
return solutions[errorCode] || `# 错误码 ${errorCode}
|
|
326
|
+
|
|
327
|
+
这是一个不常见的错误代码。建议:
|
|
328
|
+
|
|
329
|
+
1. 使用 check_environment 工具检查环境配置
|
|
330
|
+
2. 查看完整的 API 文档(使用 Resources)
|
|
331
|
+
3. 检查网络连接和 API 响应
|
|
332
|
+
4. 联系 TapTap 技术支持获取帮助
|
|
333
|
+
|
|
334
|
+
需要我帮你检查环境配置吗?`;
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=promptHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptHandlers.js","sourceRoot":"","sources":["../../src/handlers/promptHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,IAAS;IAC7D,OAAO;QACL,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;8BAOc;iBACrB;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;YASJ;iBACH;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,IAAS;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAElC,IAAI,SAAS,EAAE,CAAC;QACd,sCAAsC;QACtC,OAAO;YACL,WAAW,EAAE,SAAS,SAAS,QAAQ;YACvC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,eAAe,SAAS,YAAY;qBAC3C;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC;qBACtC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qCAAqC;iBAC5C;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAwEmB;iBAC1B;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,SAAS,GAA2B;QACxC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+BE;QAEZ,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAoC+D;QAEvE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiDK;QAEZ,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAkCa;KACrB,CAAC;IAEF,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,SAAS;;;;;;;;;cASrC,CAAC;AACf,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
6
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
7
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import process from 'node:process';
|
|
9
9
|
// 导入配置和工具定义
|
|
10
10
|
import { ApiConfig } from './network/httpClient.js';
|
|
11
11
|
import { getToolDefinitions } from './config/toolDefinitions.js';
|
|
12
|
+
import { getResourceDefinitions, RESOURCE_URI_MAP } from './config/resourceDefinitions.js';
|
|
13
|
+
import { getPromptDefinitions } from './config/promptDefinitions.js';
|
|
12
14
|
import { logger } from './utils/logger.js';
|
|
13
15
|
// 导入文档工具
|
|
14
16
|
import { leaderboardTools } from './tools/leaderboardTools.js';
|
|
@@ -16,6 +18,7 @@ import { leaderboardTools } from './tools/leaderboardTools.js';
|
|
|
16
18
|
import * as appHandlers from './handlers/appHandlers.js';
|
|
17
19
|
import * as leaderboardHandlers from './handlers/leaderboardHandlers.js';
|
|
18
20
|
import * as environmentHandlers from './handlers/environmentHandlers.js';
|
|
21
|
+
import * as promptHandlers from './handlers/promptHandlers.js';
|
|
19
22
|
// 环境变量配置
|
|
20
23
|
const apiConfig = ApiConfig.getInstance();
|
|
21
24
|
const TDS_MCP_MAC_TOKEN = apiConfig.macToken;
|
|
@@ -27,7 +30,7 @@ class TapTapMinigameMCPServer {
|
|
|
27
30
|
constructor() {
|
|
28
31
|
this.server = new Server({
|
|
29
32
|
name: 'taptap-minigame-mcp',
|
|
30
|
-
version: '1.0
|
|
33
|
+
version: '1.1.0',
|
|
31
34
|
});
|
|
32
35
|
this.context = {
|
|
33
36
|
projectPath: TDS_MCP_PROJECT_PATH,
|
|
@@ -67,6 +70,77 @@ class TapTapMinigameMCPServer {
|
|
|
67
70
|
throw new McpError(ErrorCode.InternalError, `工具执行失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
68
71
|
}
|
|
69
72
|
});
|
|
73
|
+
// 设置资源列表处理器
|
|
74
|
+
this.server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
75
|
+
resources: getResourceDefinitions()
|
|
76
|
+
}));
|
|
77
|
+
// 设置资源读取处理器
|
|
78
|
+
this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
79
|
+
const uri = request.params.uri;
|
|
80
|
+
logger.logToolCall(`ReadResource: ${uri}`, {});
|
|
81
|
+
try {
|
|
82
|
+
const content = await this.handleResourceRead(uri);
|
|
83
|
+
logger.logToolResponse(`ReadResource: ${uri}`, content.substring(0, 500), true);
|
|
84
|
+
return {
|
|
85
|
+
contents: [
|
|
86
|
+
{
|
|
87
|
+
uri: uri,
|
|
88
|
+
mimeType: 'text/markdown',
|
|
89
|
+
text: content
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
logger.logToolResponse(`ReadResource: ${uri}`, error instanceof Error ? error.message : String(error), false);
|
|
96
|
+
throw new McpError(ErrorCode.InternalError, `资源读取失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
// 设置提示列表处理器
|
|
100
|
+
this.server.setRequestHandler(ListPromptsRequestSchema, async () => ({
|
|
101
|
+
prompts: getPromptDefinitions()
|
|
102
|
+
}));
|
|
103
|
+
// 设置提示获取处理器
|
|
104
|
+
this.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
105
|
+
const { name, arguments: args } = request.params;
|
|
106
|
+
logger.logToolCall(`GetPrompt: ${name}`, args || {});
|
|
107
|
+
try {
|
|
108
|
+
const prompt = await this.handlePromptGet(name, args || {});
|
|
109
|
+
logger.logToolResponse(`GetPrompt: ${name}`, JSON.stringify(prompt).substring(0, 500), true);
|
|
110
|
+
return prompt;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
logger.logToolResponse(`GetPrompt: ${name}`, error instanceof Error ? error.message : String(error), false);
|
|
114
|
+
throw new McpError(ErrorCode.InternalError, `提示获取失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 处理资源读取 - 路由到对应的文档工具
|
|
120
|
+
*/
|
|
121
|
+
async handleResourceRead(uri) {
|
|
122
|
+
const handlerKey = RESOURCE_URI_MAP[uri];
|
|
123
|
+
if (!handlerKey) {
|
|
124
|
+
throw new Error(`Unknown resource URI: ${uri}`);
|
|
125
|
+
}
|
|
126
|
+
// Map to leaderboardTools methods
|
|
127
|
+
const toolMethod = leaderboardTools[handlerKey];
|
|
128
|
+
if (typeof toolMethod !== 'function') {
|
|
129
|
+
throw new Error(`Handler not found for resource: ${uri}`);
|
|
130
|
+
}
|
|
131
|
+
return await toolMethod();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* 处理提示获取 - 路由到对应的提示处理器
|
|
135
|
+
*/
|
|
136
|
+
async handlePromptGet(name, args) {
|
|
137
|
+
if (name === 'leaderboard-integration') {
|
|
138
|
+
return promptHandlers.getLeaderboardIntegrationPrompt(args);
|
|
139
|
+
}
|
|
140
|
+
if (name === 'leaderboard-troubleshooting') {
|
|
141
|
+
return promptHandlers.getLeaderboardTroubleshootingPrompt(args);
|
|
142
|
+
}
|
|
143
|
+
throw new Error(`Unknown prompt: ${name}`);
|
|
70
144
|
}
|
|
71
145
|
/**
|
|
72
146
|
* 处理工具调用 - 路由到对应的处理器
|
|
@@ -140,18 +214,24 @@ class TapTapMinigameMCPServer {
|
|
|
140
214
|
const transport = new StdioServerTransport();
|
|
141
215
|
await this.server.connect(transport);
|
|
142
216
|
const tools = getToolDefinitions();
|
|
217
|
+
const resources = getResourceDefinitions();
|
|
218
|
+
const prompts = getPromptDefinitions();
|
|
143
219
|
process.stderr.write('🚀 TapTap Minigame MCP Server Started\n');
|
|
144
|
-
process.stderr.write(`📚 Providing ${tools.length} tools\n`);
|
|
220
|
+
process.stderr.write(`📚 Providing ${tools.length} tools, ${resources.length} resources, ${prompts.length} prompts\n`);
|
|
145
221
|
process.stderr.write('🏆 Features: Leaderboard Documentation & Management API\n');
|
|
146
222
|
process.stderr.write(`🌍 Environment: ${apiConfig.environment}\n`);
|
|
147
223
|
process.stderr.write(`🔗 API Base: ${apiConfig.apiBaseUrl}\n`);
|
|
224
|
+
process.stderr.write('\n📖 MCP Capabilities:\n');
|
|
225
|
+
process.stderr.write(` ✅ Tools (${tools.length}) - Execute operations with side effects\n`);
|
|
226
|
+
process.stderr.write(` ✅ Resources (${resources.length}) - Read-only documentation and data\n`);
|
|
227
|
+
process.stderr.write(` ✅ Prompts (${prompts.length}) - Reusable workflow templates\n`);
|
|
148
228
|
if (logger.isVerbose()) {
|
|
149
|
-
process.stderr.write('🔍 Verbose logging enabled (TAPTAP_MINIGAME_MCP_VERBOSE=true)\n');
|
|
229
|
+
process.stderr.write('\n🔍 Verbose logging enabled (TAPTAP_MINIGAME_MCP_VERBOSE=true)\n');
|
|
150
230
|
process.stderr.write(' - Tool call inputs and outputs will be logged\n');
|
|
151
231
|
process.stderr.write(' - HTTP requests and responses will be logged\n');
|
|
152
232
|
}
|
|
153
233
|
else {
|
|
154
|
-
process.stderr.write('💡 Tip: Set TAPTAP_MINIGAME_MCP_VERBOSE=true for detailed logs\n');
|
|
234
|
+
process.stderr.write('\n💡 Tip: Set TAPTAP_MINIGAME_MCP_VERBOSE=true for detailed logs\n');
|
|
155
235
|
}
|
|
156
236
|
}
|
|
157
237
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,SAAS,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,UAAU;AACV,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikoto_zero/minigame-open-mcp",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "TapTap Minigame Open API MCP Server - Documentation and Management APIs for TapTap minigame (Leaderboard, and more features coming)",
|
|
6
6
|
"main": "dist/server.js",
|