mcp-user-system 1.0.2 → 1.0.4
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/env.d.ts +1 -1
- package/dist/env.js +1 -1
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +117 -34
- package/dist/index.js.map +1 -1
- package/dist/tools/wallet.d.ts +76 -36
- package/dist/tools/wallet.js +52 -19
- package/dist/tools/wallet.js.map +1 -1
- package/install.cjs +79 -24
- package/package.json +1 -1
package/dist/env.d.ts
CHANGED
package/dist/env.js
CHANGED
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC;QACnC,
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC;QACnC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC;KAClC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server for token-user-system
|
|
4
4
|
*
|
|
5
|
-
* Provides
|
|
6
|
-
* Supports:
|
|
5
|
+
* Provides OpenAPI tools via Model Context Protocol.
|
|
6
|
+
* Supports: wallet, dashboard stats, orders, users, model-stats, trend
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server for token-user-system
|
|
4
4
|
*
|
|
5
|
-
* Provides
|
|
6
|
-
* Supports:
|
|
5
|
+
* Provides OpenAPI tools via Model Context Protocol.
|
|
6
|
+
* Supports: wallet, dashboard stats, orders, users, model-stats, trend
|
|
7
7
|
*/
|
|
8
8
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
10
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
-
import {
|
|
11
|
+
import { getWalletOverview, getDashboardStats, getDashboardOrders, getDashboardUsers, getDashboardModelStats, getDashboardTrend, } from "./tools/wallet.js";
|
|
12
12
|
// ── MCP Server Setup ──
|
|
13
13
|
const server = new Server({
|
|
14
14
|
name: "mcp-user-system",
|
|
@@ -23,7 +23,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
23
23
|
return {
|
|
24
24
|
tools: [
|
|
25
25
|
{
|
|
26
|
-
name: "
|
|
26
|
+
name: "wallet_overview",
|
|
27
27
|
description: "Get account wallet overview (balance, usable balance, voucher, credit limit, pending amount)",
|
|
28
28
|
inputSchema: {
|
|
29
29
|
type: "object",
|
|
@@ -31,54 +31,112 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
name: "
|
|
35
|
-
description: "Get
|
|
34
|
+
name: "dashboard_stats",
|
|
35
|
+
description: "Get dashboard statistics (used quota, consumption, request count, active users, etc.)",
|
|
36
36
|
inputSchema: {
|
|
37
37
|
type: "object",
|
|
38
38
|
properties: {
|
|
39
|
-
|
|
40
|
-
type: "
|
|
41
|
-
description: "
|
|
42
|
-
|
|
39
|
+
timeRange: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Time range: 0=custom, 1=last 3 days, 2=last week, 3=last month, 4=this month, 5=last year, 6=today, 7=this week, 8=this year (default: 1)",
|
|
42
|
+
},
|
|
43
|
+
startDate: {
|
|
44
|
+
type: "string",
|
|
45
|
+
description: "Custom start date (yyyy-MM-dd, required when timeRange=0)",
|
|
46
|
+
},
|
|
47
|
+
endDate: {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Custom end date (yyyy-MM-dd, required when timeRange=0)",
|
|
43
50
|
},
|
|
44
51
|
},
|
|
45
52
|
},
|
|
46
53
|
},
|
|
47
54
|
{
|
|
48
|
-
name: "
|
|
49
|
-
description: "List
|
|
55
|
+
name: "dashboard_orders",
|
|
56
|
+
description: "List API call detail records with optional filters",
|
|
50
57
|
inputSchema: {
|
|
51
58
|
type: "object",
|
|
52
59
|
properties: {
|
|
53
|
-
|
|
60
|
+
timeRange: {
|
|
54
61
|
type: "string",
|
|
55
|
-
description: "
|
|
62
|
+
description: "Time range: 0=custom, 1=last 3 days, 2=last week, 3=last month, 4=this month, 5=last year, 6=today, 7=this week, 8=this year (default: 1)",
|
|
56
63
|
},
|
|
57
64
|
startDate: {
|
|
58
65
|
type: "string",
|
|
59
|
-
description: "
|
|
66
|
+
description: "Custom start date (yyyy-MM-dd)",
|
|
60
67
|
},
|
|
61
68
|
endDate: {
|
|
62
69
|
type: "string",
|
|
63
|
-
description: "
|
|
70
|
+
description: "Custom end date (yyyy-MM-dd)",
|
|
71
|
+
},
|
|
72
|
+
type: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "Bill type filter",
|
|
75
|
+
},
|
|
76
|
+
keyword: {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "Keyword filter (matches user name or team nickname)",
|
|
64
79
|
},
|
|
65
80
|
},
|
|
66
81
|
},
|
|
67
82
|
},
|
|
68
83
|
{
|
|
69
|
-
name: "
|
|
70
|
-
description: "
|
|
84
|
+
name: "dashboard_users",
|
|
85
|
+
description: "Get user dropdown options for dashboard filtering",
|
|
71
86
|
inputSchema: {
|
|
72
87
|
type: "object",
|
|
73
|
-
properties: {
|
|
88
|
+
properties: {
|
|
89
|
+
deptId: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "Department ID to filter users",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
74
94
|
},
|
|
75
95
|
},
|
|
76
96
|
{
|
|
77
|
-
name: "
|
|
78
|
-
description: "Get
|
|
97
|
+
name: "dashboard_model_stats",
|
|
98
|
+
description: "Get model usage statistics (call count, token consumption, cost, etc.)",
|
|
79
99
|
inputSchema: {
|
|
80
100
|
type: "object",
|
|
81
|
-
properties: {
|
|
101
|
+
properties: {
|
|
102
|
+
timeRange: {
|
|
103
|
+
type: "string",
|
|
104
|
+
description: "Time range: 0=custom, 1=last 3 days, 2=last week, 3=last month, 4=this month, 5=last year, 6=today, 7=this week, 8=this year (default: 1)",
|
|
105
|
+
},
|
|
106
|
+
startDate: {
|
|
107
|
+
type: "string",
|
|
108
|
+
description: "Custom start date (yyyy-MM-dd)",
|
|
109
|
+
},
|
|
110
|
+
endDate: {
|
|
111
|
+
type: "string",
|
|
112
|
+
description: "Custom end date (yyyy-MM-dd)",
|
|
113
|
+
},
|
|
114
|
+
sortBy: {
|
|
115
|
+
type: "string",
|
|
116
|
+
description: "Sort by: 'token' or 'amount' (default: amount)",
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "dashboard_trend",
|
|
123
|
+
description: "Get consumption trend data over time",
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: "object",
|
|
126
|
+
properties: {
|
|
127
|
+
timeRange: {
|
|
128
|
+
type: "string",
|
|
129
|
+
description: "Time range: 0=custom, 1=last 3 days, 2=last week, 3=last month, 4=this month, 5=last year, 6=today, 7=this week, 8=this year (default: 1)",
|
|
130
|
+
},
|
|
131
|
+
startDate: {
|
|
132
|
+
type: "string",
|
|
133
|
+
description: "Custom start date (yyyy-MM-dd)",
|
|
134
|
+
},
|
|
135
|
+
endDate: {
|
|
136
|
+
type: "string",
|
|
137
|
+
description: "Custom end date (yyyy-MM-dd)",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
82
140
|
},
|
|
83
141
|
},
|
|
84
142
|
],
|
|
@@ -89,8 +147,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
89
147
|
const { name, arguments: args } = request.params;
|
|
90
148
|
try {
|
|
91
149
|
switch (name) {
|
|
92
|
-
case "
|
|
93
|
-
const data = await
|
|
150
|
+
case "wallet_overview": {
|
|
151
|
+
const data = await getWalletOverview();
|
|
94
152
|
return {
|
|
95
153
|
content: [
|
|
96
154
|
{
|
|
@@ -100,9 +158,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
100
158
|
],
|
|
101
159
|
};
|
|
102
160
|
}
|
|
103
|
-
case "
|
|
104
|
-
const
|
|
105
|
-
|
|
161
|
+
case "dashboard_stats": {
|
|
162
|
+
const data = await getDashboardStats({
|
|
163
|
+
timeRange: args?.timeRange || undefined,
|
|
164
|
+
startDate: args?.startDate || undefined,
|
|
165
|
+
endDate: args?.endDate || undefined,
|
|
166
|
+
});
|
|
106
167
|
return {
|
|
107
168
|
content: [
|
|
108
169
|
{
|
|
@@ -112,11 +173,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
112
173
|
],
|
|
113
174
|
};
|
|
114
175
|
}
|
|
115
|
-
case "
|
|
116
|
-
const data = await
|
|
117
|
-
|
|
176
|
+
case "dashboard_orders": {
|
|
177
|
+
const data = await getDashboardOrders({
|
|
178
|
+
timeRange: args?.timeRange || undefined,
|
|
118
179
|
startDate: args?.startDate || undefined,
|
|
119
180
|
endDate: args?.endDate || undefined,
|
|
181
|
+
type: args?.type || undefined,
|
|
182
|
+
keyword: args?.keyword || undefined,
|
|
120
183
|
});
|
|
121
184
|
return {
|
|
122
185
|
content: [
|
|
@@ -127,8 +190,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
127
190
|
],
|
|
128
191
|
};
|
|
129
192
|
}
|
|
130
|
-
case "
|
|
131
|
-
const data = await
|
|
193
|
+
case "dashboard_users": {
|
|
194
|
+
const data = await getDashboardUsers(args?.deptId || undefined);
|
|
132
195
|
return {
|
|
133
196
|
content: [
|
|
134
197
|
{
|
|
@@ -138,8 +201,28 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
138
201
|
],
|
|
139
202
|
};
|
|
140
203
|
}
|
|
141
|
-
case "
|
|
142
|
-
const data = await
|
|
204
|
+
case "dashboard_model_stats": {
|
|
205
|
+
const data = await getDashboardModelStats({
|
|
206
|
+
timeRange: args?.timeRange || undefined,
|
|
207
|
+
startDate: args?.startDate || undefined,
|
|
208
|
+
endDate: args?.endDate || undefined,
|
|
209
|
+
sortBy: args?.sortBy || undefined,
|
|
210
|
+
});
|
|
211
|
+
return {
|
|
212
|
+
content: [
|
|
213
|
+
{
|
|
214
|
+
type: "text",
|
|
215
|
+
text: JSON.stringify(data, null, 2),
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
case "dashboard_trend": {
|
|
221
|
+
const data = await getDashboardTrend({
|
|
222
|
+
timeRange: args?.timeRange || undefined,
|
|
223
|
+
startDate: args?.startDate || undefined,
|
|
224
|
+
endDate: args?.endDate || undefined,
|
|
225
|
+
});
|
|
143
226
|
return {
|
|
144
227
|
content: [
|
|
145
228
|
{
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;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;AAC5C,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/wallet.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* OpenAPI client for token-user-system.
|
|
3
|
+
* Calls backend-openapi endpoints under /openapi/*.
|
|
4
4
|
*/
|
|
5
|
-
export interface
|
|
5
|
+
export interface WalletOverviewVo {
|
|
6
6
|
balance?: number;
|
|
7
7
|
usableBalance?: number;
|
|
8
8
|
voucher?: number;
|
|
@@ -10,45 +10,85 @@ export interface BalanceVo {
|
|
|
10
10
|
pendingAmount?: number;
|
|
11
11
|
pendingCount?: number;
|
|
12
12
|
}
|
|
13
|
-
export declare function
|
|
14
|
-
export interface
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
export declare function getWalletOverview(): Promise<WalletOverviewVo>;
|
|
14
|
+
export interface DashboardStatsVo {
|
|
15
|
+
usedQuotaTotal?: number;
|
|
16
|
+
lastMonthUsed?: number;
|
|
17
|
+
monthComparePercent?: number;
|
|
18
|
+
usedAmount?: number;
|
|
19
|
+
usedTokens?: number;
|
|
20
|
+
requestCount?: number;
|
|
21
|
+
activeUsers?: number;
|
|
22
|
+
showCompare?: boolean;
|
|
23
|
+
amountComparePercent?: number;
|
|
24
|
+
tokenComparePercent?: number;
|
|
25
|
+
requestComparePercent?: number;
|
|
26
|
+
activeUserCompare?: number;
|
|
17
27
|
}
|
|
18
|
-
export declare function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
export declare function getDashboardStats(params?: {
|
|
29
|
+
timeRange?: string;
|
|
30
|
+
startDate?: string;
|
|
31
|
+
endDate?: string;
|
|
32
|
+
}): Promise<DashboardStatsVo>;
|
|
33
|
+
export interface OrderDetailVo {
|
|
34
|
+
createTime?: string;
|
|
35
|
+
createdAt?: number;
|
|
36
|
+
userId?: number;
|
|
37
|
+
userName?: string;
|
|
38
|
+
teamNickname?: string;
|
|
39
|
+
deptId?: number;
|
|
40
|
+
deptName?: string;
|
|
41
|
+
tokenId?: number;
|
|
42
|
+
tokenName?: string;
|
|
43
|
+
modelName?: string;
|
|
44
|
+
useTime?: number;
|
|
45
|
+
status?: number;
|
|
24
46
|
amount?: number;
|
|
25
|
-
|
|
47
|
+
statusText?: string;
|
|
48
|
+
type?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface TableDataInfo<T> {
|
|
51
|
+
total: number;
|
|
52
|
+
rows: T[];
|
|
53
|
+
code: number;
|
|
54
|
+
msg: string;
|
|
26
55
|
}
|
|
27
|
-
export declare function
|
|
28
|
-
|
|
56
|
+
export declare function getDashboardOrders(params?: {
|
|
57
|
+
timeRange?: string;
|
|
29
58
|
startDate?: string;
|
|
30
59
|
endDate?: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
60
|
+
type?: string;
|
|
61
|
+
keyword?: string;
|
|
62
|
+
}): Promise<TableDataInfo<OrderDetailVo>>;
|
|
63
|
+
export interface DashboardUserOptionVo {
|
|
64
|
+
userId?: number;
|
|
65
|
+
userName?: string;
|
|
66
|
+
nickName?: string;
|
|
36
67
|
}
|
|
37
|
-
export
|
|
38
|
-
|
|
68
|
+
export declare function getDashboardUsers(deptId?: string): Promise<DashboardUserOptionVo[]>;
|
|
69
|
+
export interface DashboardModelStatVo {
|
|
70
|
+
modelName?: string;
|
|
71
|
+
callCount?: number;
|
|
72
|
+
callPercent?: number;
|
|
73
|
+
tokens?: number;
|
|
74
|
+
tokenPercent?: number;
|
|
39
75
|
amount?: number;
|
|
40
|
-
|
|
41
|
-
|
|
76
|
+
avgAmount?: number;
|
|
77
|
+
amountPercent?: number;
|
|
42
78
|
}
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
79
|
+
export declare function getDashboardModelStats(params?: {
|
|
80
|
+
timeRange?: string;
|
|
81
|
+
startDate?: string;
|
|
82
|
+
endDate?: string;
|
|
83
|
+
sortBy?: string;
|
|
84
|
+
}): Promise<DashboardModelStatVo[]>;
|
|
85
|
+
export interface DashboardTrendVo {
|
|
86
|
+
date?: string;
|
|
87
|
+
amount?: number;
|
|
88
|
+
tokens?: number;
|
|
53
89
|
}
|
|
54
|
-
export declare function
|
|
90
|
+
export declare function getDashboardTrend(params?: {
|
|
91
|
+
timeRange?: string;
|
|
92
|
+
startDate?: string;
|
|
93
|
+
endDate?: string;
|
|
94
|
+
}): Promise<DashboardTrendVo[]>;
|
package/dist/tools/wallet.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* OpenAPI client for token-user-system.
|
|
3
|
+
* Calls backend-openapi endpoints under /openapi/*.
|
|
4
4
|
*/
|
|
5
5
|
import { loadConfig } from "../env.js";
|
|
6
6
|
const config = loadConfig();
|
|
7
7
|
async function apiCall(method, path, body) {
|
|
8
8
|
const config = loadConfig();
|
|
9
9
|
const headers = {
|
|
10
|
-
Authorization:
|
|
10
|
+
Authorization: config.apiKey,
|
|
11
11
|
"Content-Type": "application/json",
|
|
12
|
-
"Crypto-Version": "*.*.*",
|
|
13
|
-
accountType: "S_",
|
|
14
|
-
platformType: "skill",
|
|
15
|
-
DeviceType: "pc",
|
|
16
12
|
};
|
|
17
13
|
const res = await fetch(`${config.baseUrl}${path}`, {
|
|
18
14
|
method,
|
|
@@ -25,32 +21,69 @@ async function apiCall(method, path, body) {
|
|
|
25
21
|
}
|
|
26
22
|
return JSON.parse(text);
|
|
27
23
|
}
|
|
28
|
-
export async function
|
|
29
|
-
const data = await apiCall("GET", "/
|
|
24
|
+
export async function getWalletOverview() {
|
|
25
|
+
const data = await apiCall("GET", "/openapi/wallet");
|
|
30
26
|
return data.data;
|
|
31
27
|
}
|
|
32
|
-
export async function
|
|
33
|
-
const
|
|
28
|
+
export async function getDashboardStats(params) {
|
|
29
|
+
const query = new URLSearchParams();
|
|
30
|
+
if (params?.timeRange)
|
|
31
|
+
query.append("timeRange", params.timeRange);
|
|
32
|
+
if (params?.startDate)
|
|
33
|
+
query.append("startDate", params.startDate);
|
|
34
|
+
if (params?.endDate)
|
|
35
|
+
query.append("endDate", params.endDate);
|
|
36
|
+
const qs = query.toString();
|
|
37
|
+
const data = await apiCall("GET", `/openapi/dashboard/stats${qs ? "?" + qs : ""}`);
|
|
34
38
|
return data.data;
|
|
35
39
|
}
|
|
36
|
-
export async function
|
|
40
|
+
export async function getDashboardOrders(params) {
|
|
37
41
|
const query = new URLSearchParams();
|
|
38
|
-
if (params?.
|
|
39
|
-
query.append("
|
|
42
|
+
if (params?.timeRange)
|
|
43
|
+
query.append("timeRange", params.timeRange);
|
|
40
44
|
if (params?.startDate)
|
|
41
45
|
query.append("startDate", params.startDate);
|
|
42
46
|
if (params?.endDate)
|
|
43
47
|
query.append("endDate", params.endDate);
|
|
48
|
+
if (params?.type)
|
|
49
|
+
query.append("type", params.type);
|
|
50
|
+
if (params?.keyword)
|
|
51
|
+
query.append("keyword", params.keyword);
|
|
44
52
|
const qs = query.toString();
|
|
45
|
-
|
|
53
|
+
return apiCall("GET", `/openapi/dashboard/orders${qs ? "?" + qs : ""}`);
|
|
54
|
+
}
|
|
55
|
+
export async function getDashboardUsers(deptId) {
|
|
56
|
+
const query = new URLSearchParams();
|
|
57
|
+
if (deptId)
|
|
58
|
+
query.append("deptId", deptId);
|
|
59
|
+
const qs = query.toString();
|
|
60
|
+
const data = await apiCall("GET", `/openapi/dashboard/users${qs ? "?" + qs : ""}`);
|
|
46
61
|
return data.data;
|
|
47
62
|
}
|
|
48
|
-
export async function
|
|
49
|
-
const
|
|
63
|
+
export async function getDashboardModelStats(params) {
|
|
64
|
+
const query = new URLSearchParams();
|
|
65
|
+
if (params?.timeRange)
|
|
66
|
+
query.append("timeRange", params.timeRange);
|
|
67
|
+
if (params?.startDate)
|
|
68
|
+
query.append("startDate", params.startDate);
|
|
69
|
+
if (params?.endDate)
|
|
70
|
+
query.append("endDate", params.endDate);
|
|
71
|
+
if (params?.sortBy)
|
|
72
|
+
query.append("sortBy", params.sortBy);
|
|
73
|
+
const qs = query.toString();
|
|
74
|
+
const data = await apiCall("GET", `/openapi/dashboard/model-stats${qs ? "?" + qs : ""}`);
|
|
50
75
|
return data.data;
|
|
51
76
|
}
|
|
52
|
-
export async function
|
|
53
|
-
const
|
|
77
|
+
export async function getDashboardTrend(params) {
|
|
78
|
+
const query = new URLSearchParams();
|
|
79
|
+
if (params?.timeRange)
|
|
80
|
+
query.append("timeRange", params.timeRange);
|
|
81
|
+
if (params?.startDate)
|
|
82
|
+
query.append("startDate", params.startDate);
|
|
83
|
+
if (params?.endDate)
|
|
84
|
+
query.append("endDate", params.endDate);
|
|
85
|
+
const qs = query.toString();
|
|
86
|
+
const data = await apiCall("GET", `/openapi/dashboard/trend${qs ? "?" + qs : ""}`);
|
|
54
87
|
return data.data;
|
|
55
88
|
}
|
|
56
89
|
//# sourceMappingURL=wallet.js.map
|
package/dist/tools/wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/tools/wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAE5B,KAAK,UAAU,OAAO,CAAc,MAAc,EAAE,IAAY,EAAE,IAAc;IAC9E,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/tools/wallet.ts"],"names":[],"mappings":"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"}
|
package/install.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* One-click installer for mcp-user-system
|
|
4
|
-
*
|
|
4
|
+
* Supports: Claude Desktop, Cursor, VS Code (Cline), and generic JSON output
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
const fs = require("fs");
|
|
@@ -18,19 +18,34 @@ function question(prompt) {
|
|
|
18
18
|
return new Promise((resolve) => rl.question(prompt, resolve));
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
// ── Config paths for different tools ──
|
|
22
|
+
function getConfigPaths() {
|
|
23
|
+
const home = os.homedir();
|
|
24
|
+
return {
|
|
25
|
+
claude: {
|
|
26
|
+
darwin: path.join(home, "Library/Application Support/Claude/claude_desktop_config.json"),
|
|
27
|
+
win32: path.join(home, "AppData/Roaming/Claude/claude_desktop_config.json"),
|
|
28
|
+
linux: path.join(home, ".config/claude/claude_desktop_config.json"),
|
|
29
|
+
},
|
|
30
|
+
cursor: {
|
|
31
|
+
darwin: path.join(home, "Library/Application Support/Cursor/mcp.json"),
|
|
32
|
+
win32: path.join(home, "AppData/Roaming/Cursor/mcp.json"),
|
|
33
|
+
linux: path.join(home, ".config/Cursor/mcp.json"),
|
|
34
|
+
},
|
|
35
|
+
vscode: {
|
|
36
|
+
darwin: path.join(home, "Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json"),
|
|
37
|
+
win32: path.join(home, "AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json"),
|
|
38
|
+
linux: path.join(home, ".config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json"),
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function getGlobalPackagePath() {
|
|
44
|
+
const home = os.homedir();
|
|
45
|
+
if (os.platform() === "win32") {
|
|
46
|
+
return path.join(home, "AppData/Roaming/npm/node_modules/mcp-user-system/dist/index.js");
|
|
33
47
|
}
|
|
48
|
+
return path.join(home, ".npm-global/lib/node_modules/mcp-user-system/dist/index.js");
|
|
34
49
|
}
|
|
35
50
|
|
|
36
51
|
function readConfig(configPath) {
|
|
@@ -53,6 +68,17 @@ function writeConfig(configPath, config) {
|
|
|
53
68
|
async function main() {
|
|
54
69
|
console.log("=== mcp-user-system Installer ===\n");
|
|
55
70
|
|
|
71
|
+
// Select target tool
|
|
72
|
+
console.log("Select your AI tool:");
|
|
73
|
+
console.log(" 1. Claude Desktop (default)");
|
|
74
|
+
console.log(" 2. Cursor");
|
|
75
|
+
console.log(" 3. VS Code (Cline extension)");
|
|
76
|
+
console.log(" 4. Output JSON only (copy manually)\n");
|
|
77
|
+
|
|
78
|
+
const toolChoice = await question("Choice [1-4, default 1]: ");
|
|
79
|
+
const toolMap = { "1": "claude", "2": "cursor", "3": "vscode", "4": "json" };
|
|
80
|
+
const tool = toolMap[toolChoice.trim() || "1"] || "claude";
|
|
81
|
+
|
|
56
82
|
const baseUrl = await question("Backend URL (e.g. https://api.example.com): ");
|
|
57
83
|
const token = await question("Access Token (JWT): ");
|
|
58
84
|
|
|
@@ -61,26 +87,55 @@ async function main() {
|
|
|
61
87
|
process.exit(1);
|
|
62
88
|
}
|
|
63
89
|
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
config.mcpServers = {};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
config.mcpServers["user-system"] = {
|
|
72
|
-
command: "npx",
|
|
73
|
-
args: ["mcp-user-system"],
|
|
90
|
+
const packagePath = getGlobalPackagePath();
|
|
91
|
+
const serverConfig = {
|
|
92
|
+
command: "node",
|
|
93
|
+
args: [packagePath],
|
|
74
94
|
env: {
|
|
75
95
|
TUS_BASE_URL: baseUrl.trim(),
|
|
76
96
|
TUS_ACCESS_TOKEN: token.trim(),
|
|
77
97
|
},
|
|
78
98
|
};
|
|
79
99
|
|
|
100
|
+
if (tool === "json") {
|
|
101
|
+
// Just output JSON
|
|
102
|
+
const output = { mcpServers: { "user-system": serverConfig } };
|
|
103
|
+
console.log("\n--- Copy this to your MCP config ---");
|
|
104
|
+
console.log(JSON.stringify(output, null, 2));
|
|
105
|
+
rl.close();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Write to tool-specific config file
|
|
110
|
+
const platform = os.platform();
|
|
111
|
+
const configPaths = getConfigPaths();
|
|
112
|
+
const configPath = configPaths[tool]?.[platform] || configPaths[tool]?.linux;
|
|
113
|
+
|
|
114
|
+
if (!configPath) {
|
|
115
|
+
console.error(`Unsupported platform: ${platform}`);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const config = readConfig(configPath);
|
|
120
|
+
|
|
121
|
+
if (tool === "vscode") {
|
|
122
|
+
// VS Code Cline uses "mcpServers" at top level
|
|
123
|
+
if (!config.mcpServers) {
|
|
124
|
+
config.mcpServers = {};
|
|
125
|
+
}
|
|
126
|
+
config.mcpServers["user-system"] = serverConfig;
|
|
127
|
+
} else {
|
|
128
|
+
// Claude Desktop & Cursor
|
|
129
|
+
if (!config.mcpServers) {
|
|
130
|
+
config.mcpServers = {};
|
|
131
|
+
}
|
|
132
|
+
config.mcpServers["user-system"] = serverConfig;
|
|
133
|
+
}
|
|
134
|
+
|
|
80
135
|
writeConfig(configPath, config);
|
|
81
136
|
|
|
82
137
|
console.log(`\nConfiguration written to: ${configPath}`);
|
|
83
|
-
console.log("Restart
|
|
138
|
+
console.log("Restart your AI tool to apply changes.");
|
|
84
139
|
}
|
|
85
140
|
|
|
86
141
|
main().catch((err) => {
|