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 CHANGED
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export interface Config {
5
5
  baseUrl: string;
6
- accessToken: string;
6
+ apiKey: string;
7
7
  }
8
8
  export declare function loadConfig(): Config;
package/dist/env.js CHANGED
@@ -11,7 +11,7 @@ function requireEnv(name) {
11
11
  export function loadConfig() {
12
12
  return {
13
13
  baseUrl: requireEnv("TUS_BASE_URL"),
14
- accessToken: requireEnv("TUS_ACCESS_TOKEN"),
14
+ apiKey: requireEnv("TUS_API_KEY"),
15
15
  };
16
16
  }
17
17
  //# sourceMappingURL=env.js.map
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,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC;KAC5C,CAAC;AACJ,CAAC"}
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 wallet management tools via Model Context Protocol.
6
- * Supports: balance, trend, transactions, coupons, corporate-info
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 wallet management tools via Model Context Protocol.
6
- * Supports: balance, trend, transactions, coupons, corporate-info
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 { getBalance, getTrend, getTransactions, getCoupons, getCorporateInfo, } from "./tools/wallet.js";
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: "wallet_balance",
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: "wallet_trend",
35
- description: "Get consumption trend for a given number of days",
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
- days: {
40
- type: "number",
41
- description: "Number of days to query (default: 30)",
42
- default: 30,
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: "wallet_transactions",
49
- description: "List wallet transaction records with optional filters",
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
- recordType: {
60
+ timeRange: {
54
61
  type: "string",
55
- description: "Filter by record type",
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: "Start date (YYYY-MM-DD)",
66
+ description: "Custom start date (yyyy-MM-dd)",
60
67
  },
61
68
  endDate: {
62
69
  type: "string",
63
- description: "End date (YYYY-MM-DD)",
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: "wallet_coupons",
70
- description: "List my cash coupons",
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: "wallet_corporate_info",
78
- description: "Get corporate transfer bank account info for recharge",
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 "wallet_balance": {
93
- const data = await getBalance();
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 "wallet_trend": {
104
- const days = args?.days || 30;
105
- const data = await getTrend(days);
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 "wallet_transactions": {
116
- const data = await getTransactions({
117
- recordType: args?.recordType || undefined,
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 "wallet_coupons": {
131
- const data = await getCoupons();
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 "wallet_corporate_info": {
142
- const data = await getCorporateInfo();
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Wallet API client for token-user-system.
3
- * Mirrors the front-end request.js interceptor logic.
2
+ * OpenAPI client for token-user-system.
3
+ * Calls backend-openapi endpoints under /openapi/*.
4
4
  */
5
- export interface BalanceVo {
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 getBalance(): Promise<BalanceVo>;
14
- export interface TrendItem {
15
- date: string;
16
- amount: number;
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 getTrend(days?: number): Promise<TrendItem[]>;
19
- export interface TransactionRecord {
20
- typeName?: string;
21
- recordType?: string;
22
- orderNo?: string;
23
- eventTime?: string;
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
- status?: string;
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 getTransactions(params?: {
28
- recordType?: string;
56
+ export declare function getDashboardOrders(params?: {
57
+ timeRange?: string;
29
58
  startDate?: string;
30
59
  endDate?: string;
31
- }): Promise<TransactionRecord[]>;
32
- export interface CouponCount {
33
- unredeemedCount?: number;
34
- redeemedCount?: number;
35
- voidedCount?: number;
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 interface Coupon {
38
- couponCode?: string;
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
- status?: string;
41
- expireDeadline?: string;
76
+ avgAmount?: number;
77
+ amountPercent?: number;
42
78
  }
43
- export interface CouponVo {
44
- count?: CouponCount;
45
- coupons?: Coupon[];
46
- }
47
- export declare function getCoupons(): Promise<CouponVo>;
48
- export interface CorporateInfo {
49
- accountName?: string;
50
- bankName?: string;
51
- accountNo?: string;
52
- bankCode?: string;
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 getCorporateInfo(): Promise<CorporateInfo>;
90
+ export declare function getDashboardTrend(params?: {
91
+ timeRange?: string;
92
+ startDate?: string;
93
+ endDate?: string;
94
+ }): Promise<DashboardTrendVo[]>;
@@ -1,18 +1,14 @@
1
1
  /**
2
- * Wallet API client for token-user-system.
3
- * Mirrors the front-end request.js interceptor logic.
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: `Bearer ${config.accessToken}`,
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 getBalance() {
29
- const data = await apiCall("GET", "/console/wallet/overview");
24
+ export async function getWalletOverview() {
25
+ const data = await apiCall("GET", "/openapi/wallet");
30
26
  return data.data;
31
27
  }
32
- export async function getTrend(days = 30) {
33
- const data = await apiCall("GET", `/console/wallet/consumption/trend?days=${days}`);
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 getTransactions(params) {
40
+ export async function getDashboardOrders(params) {
37
41
  const query = new URLSearchParams();
38
- if (params?.recordType)
39
- query.append("recordType", params.recordType);
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
- const data = await apiCall("GET", `/console/wallet/transaction/list${qs ? "?" + qs : ""}`);
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 getCoupons() {
49
- const data = await apiCall("GET", "/console/wallet/coupon/list");
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 getCorporateInfo() {
53
- const data = await apiCall("GET", "/console/wallet/recharge/corporate/info");
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
@@ -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,UAAU,MAAM,CAAC,WAAW,EAAE;QAC7C,cAAc,EAAE,kBAAkB;QAClC,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;QAClD,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;AAC/B,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAoC,KAAK,EAAE,0BAA0B,CAAC,CAAC;IACjG,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE;IAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAsC,KAAK,EAAE,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACzH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAIrC;IACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,IAAI,MAAM,EAAE,UAAU;QAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,SAAS;QAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACnE,IAAI,MAAM,EAAE,OAAO;QAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,KAAK,EACL,mCAAmC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAsBD,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAmC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACnG,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAwC,KAAK,EAAE,yCAAyC,CAAC,CAAC;IACpH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC"}
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
- * Detects OS and writes configuration to the correct MCP config file.
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
- function getConfigPath() {
22
- const platform = os.platform();
23
- switch (platform) {
24
- case "darwin":
25
- return path.join(
26
- os.homedir(),
27
- "Library/Application Support/Claude/claude_desktop_config.json"
28
- );
29
- case "win32":
30
- return path.join(os.homedir(), "AppData/Roaming/Claude/claude_desktop_config.json");
31
- default:
32
- return path.join(os.homedir(), ".config/claude/claude_desktop_config.json");
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 configPath = getConfigPath();
65
- const config = readConfig(configPath);
66
-
67
- if (!config.mcpServers) {
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 Claude Desktop to apply changes.");
138
+ console.log("Restart your AI tool to apply changes.");
84
139
  }
85
140
 
86
141
  main().catch((err) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-user-system",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "MCP server for token-user-system — wallet operations via Model Context Protocol",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",