cryptoquant-mcp 0.2.0 → 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.
- package/README.md +84 -118
- package/dist/api-key.js +76 -0
- package/dist/api-key.js.map +1 -0
- package/dist/config.js +24 -18
- package/dist/config.js.map +1 -1
- package/dist/index.js +33 -40
- package/dist/index.js.map +1 -1
- package/dist/proxy.js +133 -0
- package/dist/proxy.js.map +1 -0
- package/dist/utils.js +6 -64
- package/dist/utils.js.map +1 -1
- package/package.json +16 -11
- package/dist/auth/storage.d.ts +0 -11
- package/dist/auth/storage.d.ts.map +0 -1
- package/dist/auth/storage.js +0 -53
- package/dist/auth/storage.js.map +0 -1
- package/dist/cache/storage.d.ts +0 -47
- package/dist/cache/storage.d.ts.map +0 -1
- package/dist/cache/storage.js +0 -140
- package/dist/cache/storage.js.map +0 -1
- package/dist/cache/summary.d.ts +0 -16
- package/dist/cache/summary.d.ts.map +0 -1
- package/dist/cache/summary.js +0 -85
- package/dist/cache/summary.js.map +0 -1
- package/dist/cache/types.d.ts +0 -76
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -6
- package/dist/cache/types.js.map +0 -1
- package/dist/config.d.ts +0 -18
- package/dist/config.d.ts.map +0 -1
- package/dist/data/metrics.toon +0 -293
- package/dist/discovery.d.ts +0 -70
- package/dist/discovery.d.ts.map +0 -1
- package/dist/discovery.js +0 -171
- package/dist/discovery.js.map +0 -1
- package/dist/index.d.ts +0 -18
- package/dist/index.d.ts.map +0 -1
- package/dist/permissions.d.ts +0 -36
- package/dist/permissions.d.ts.map +0 -1
- package/dist/permissions.js +0 -159
- package/dist/permissions.js.map +0 -1
- package/dist/plan-limits.d.ts +0 -71
- package/dist/plan-limits.d.ts.map +0 -1
- package/dist/plan-limits.js +0 -416
- package/dist/plan-limits.js.map +0 -1
- package/dist/tools/auth.d.ts +0 -3
- package/dist/tools/auth.d.ts.map +0 -1
- package/dist/tools/auth.js +0 -196
- package/dist/tools/auth.js.map +0 -1
- package/dist/tools/core.d.ts +0 -3
- package/dist/tools/core.d.ts.map +0 -1
- package/dist/tools/core.js +0 -546
- package/dist/tools/core.js.map +0 -1
- package/dist/utils.d.ts +0 -45
- package/dist/utils.d.ts.map +0 -1
package/dist/plan-limits.js
DELETED
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
const DEFAULT_STATE = {
|
|
2
|
-
loaded: false,
|
|
3
|
-
limits: null,
|
|
4
|
-
plan: "unknown",
|
|
5
|
-
statics: [],
|
|
6
|
-
apiRateLimit: null,
|
|
7
|
-
fetched_at: null,
|
|
8
|
-
};
|
|
9
|
-
let planLimitsState = { ...DEFAULT_STATE };
|
|
10
|
-
/**
|
|
11
|
-
* Normalize plan name from API (e.g., "PROFESSIONAL") to UserPlan type
|
|
12
|
-
*/
|
|
13
|
-
function normalizePlanName(apiPlanName) {
|
|
14
|
-
const normalized = apiPlanName.toLowerCase();
|
|
15
|
-
switch (normalized) {
|
|
16
|
-
case "basic":
|
|
17
|
-
return "basic";
|
|
18
|
-
case "advanced":
|
|
19
|
-
return "advanced";
|
|
20
|
-
case "professional":
|
|
21
|
-
return "professional";
|
|
22
|
-
case "premium":
|
|
23
|
-
return "premium";
|
|
24
|
-
case "custom":
|
|
25
|
-
return "custom";
|
|
26
|
-
default:
|
|
27
|
-
return "unknown";
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export async function fetchPlanLimits(apiKey, apiUrl) {
|
|
31
|
-
try {
|
|
32
|
-
const discoveryUrl = apiUrl.replace(/\/v1$/, "") + "/v1/my/discovery/endpoints?source=mcp";
|
|
33
|
-
const response = await fetch(discoveryUrl, {
|
|
34
|
-
method: "GET",
|
|
35
|
-
headers: { Authorization: `Bearer ${apiKey}` },
|
|
36
|
-
});
|
|
37
|
-
if (response.status === 403 || response.status === 500) {
|
|
38
|
-
planLimitsState = { ...DEFAULT_STATE, loaded: true, plan: "basic", fetched_at: Date.now() };
|
|
39
|
-
return {
|
|
40
|
-
success: true,
|
|
41
|
-
plan: "basic",
|
|
42
|
-
parsed: { limits: null, statics: [], apiRateLimit: null },
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
if (!response.ok) {
|
|
46
|
-
return { success: false, error: `Plan limits API failed: ${response.status} ${response.statusText}` };
|
|
47
|
-
}
|
|
48
|
-
let data;
|
|
49
|
-
try {
|
|
50
|
-
data = await response.json();
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return { success: false, error: "Failed to parse plan limits response" };
|
|
54
|
-
}
|
|
55
|
-
const parsed = parseApiResponse(data);
|
|
56
|
-
// Prefer direct plan name from API, fallback to detection from limits
|
|
57
|
-
const plan = parsed.planName
|
|
58
|
-
? normalizePlanName(parsed.planName)
|
|
59
|
-
: detectPlanFromLimits(parsed.limits);
|
|
60
|
-
planLimitsState = {
|
|
61
|
-
loaded: true,
|
|
62
|
-
limits: parsed.limits,
|
|
63
|
-
plan,
|
|
64
|
-
statics: parsed.statics,
|
|
65
|
-
apiRateLimit: parsed.apiRateLimit,
|
|
66
|
-
fetched_at: Date.now(),
|
|
67
|
-
};
|
|
68
|
-
return {
|
|
69
|
-
success: true,
|
|
70
|
-
rawResponse: data,
|
|
71
|
-
parsed: {
|
|
72
|
-
limits: parsed.limits,
|
|
73
|
-
statics: parsed.statics,
|
|
74
|
-
apiRateLimit: parsed.apiRateLimit,
|
|
75
|
-
},
|
|
76
|
-
plan,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
return { success: false, error: `Plan limits fetch error: ${error}` };
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function parseApiResponse(data) {
|
|
84
|
-
const result = {
|
|
85
|
-
limits: null,
|
|
86
|
-
statics: [],
|
|
87
|
-
apiRateLimit: null,
|
|
88
|
-
planName: null,
|
|
89
|
-
};
|
|
90
|
-
if (!data || typeof data !== "object")
|
|
91
|
-
return result;
|
|
92
|
-
const obj = data;
|
|
93
|
-
// Parse plan.name directly from response (new format)
|
|
94
|
-
if (obj.plan && typeof obj.plan === "object") {
|
|
95
|
-
const plan = obj.plan;
|
|
96
|
-
if (typeof plan.name === "string") {
|
|
97
|
-
result.planName = plan.name;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// Parse apiEndpoint (the main limits data)
|
|
101
|
-
if (obj.apiEndpoint && typeof obj.apiEndpoint === "object") {
|
|
102
|
-
const apiEndpoint = obj.apiEndpoint;
|
|
103
|
-
const limits = {};
|
|
104
|
-
for (const [asset, categories] of Object.entries(apiEndpoint)) {
|
|
105
|
-
// Skip non-asset keys like "statics"
|
|
106
|
-
if (asset === "statics" || typeof categories !== "object" || categories === null) {
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
limits[asset] = {};
|
|
110
|
-
for (const [category, metrics] of Object.entries(categories)) {
|
|
111
|
-
if (typeof metrics !== "object" || metrics === null)
|
|
112
|
-
continue;
|
|
113
|
-
limits[asset][category] = {};
|
|
114
|
-
for (const [metric, metricData] of Object.entries(metrics)) {
|
|
115
|
-
if (typeof metricData !== "object" || metricData === null)
|
|
116
|
-
continue;
|
|
117
|
-
const md = metricData;
|
|
118
|
-
// New format: metric data is directly { windowType: duration }
|
|
119
|
-
// e.g., { "day": "P1Y" } instead of { window: { "day": "P1Y" }, limit: 1000 }
|
|
120
|
-
const windowLimits = {};
|
|
121
|
-
let hasValidWindow = false;
|
|
122
|
-
for (const [key, value] of Object.entries(md)) {
|
|
123
|
-
if (typeof value === "string" && /^P\d+[YMWD]$/.test(value)) {
|
|
124
|
-
windowLimits[key] = value;
|
|
125
|
-
hasValidWindow = true;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (hasValidWindow) {
|
|
129
|
-
limits[asset][category][metric] = { window: windowLimits };
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Extract statics from apiEndpoint if present
|
|
135
|
-
if (apiEndpoint.statics && Array.isArray(apiEndpoint.statics)) {
|
|
136
|
-
result.statics = apiEndpoint.statics;
|
|
137
|
-
}
|
|
138
|
-
result.limits = Object.keys(limits).length > 0 ? limits : null;
|
|
139
|
-
}
|
|
140
|
-
// Parse apiRateLimit
|
|
141
|
-
if (obj.apiRateLimit && typeof obj.apiRateLimit === "object") {
|
|
142
|
-
const rl = obj.apiRateLimit;
|
|
143
|
-
if (typeof rl.token === "number" && typeof rl.window === "string") {
|
|
144
|
-
result.apiRateLimit = {
|
|
145
|
-
token: rl.token,
|
|
146
|
-
window: rl.window,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
152
|
-
function collectDurationCounts(limits) {
|
|
153
|
-
const counts = { p0d: 0, p3y: 0, p1d: 0, total: 0 };
|
|
154
|
-
for (const categories of Object.values(limits)) {
|
|
155
|
-
if (!categories)
|
|
156
|
-
continue;
|
|
157
|
-
for (const metrics of Object.values(categories)) {
|
|
158
|
-
if (!metrics)
|
|
159
|
-
continue;
|
|
160
|
-
for (const metricLimits of Object.values(metrics)) {
|
|
161
|
-
if (!metricLimits?.window)
|
|
162
|
-
continue;
|
|
163
|
-
for (const duration of Object.values(metricLimits.window)) {
|
|
164
|
-
counts.total++;
|
|
165
|
-
if (duration === "P0D")
|
|
166
|
-
counts.p0d++;
|
|
167
|
-
else if (duration === "P3Y")
|
|
168
|
-
counts.p3y++;
|
|
169
|
-
else if (duration === "P1D")
|
|
170
|
-
counts.p1d++;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return counts;
|
|
176
|
-
}
|
|
177
|
-
export function detectPlanFromLimits(limits) {
|
|
178
|
-
if (!limits)
|
|
179
|
-
return "basic";
|
|
180
|
-
const counts = collectDurationCounts(limits);
|
|
181
|
-
if (counts.total === 0)
|
|
182
|
-
return "basic";
|
|
183
|
-
const p1dRatio = counts.p1d / counts.total;
|
|
184
|
-
const p0dRatio = counts.p0d / counts.total;
|
|
185
|
-
const p3yRatio = counts.p3y / counts.total;
|
|
186
|
-
// P1D (1 day only) with low limits = basic plan
|
|
187
|
-
if (p1dRatio > 0.5)
|
|
188
|
-
return "basic";
|
|
189
|
-
// P0D (unlimited) on most endpoints = premium
|
|
190
|
-
if (p0dRatio > 0.5)
|
|
191
|
-
return "premium";
|
|
192
|
-
// P3Y (3 years) on many endpoints = professional
|
|
193
|
-
if (p3yRatio > 0.3)
|
|
194
|
-
return "professional";
|
|
195
|
-
return "advanced";
|
|
196
|
-
}
|
|
197
|
-
export function getPlanLimitsState() {
|
|
198
|
-
return planLimitsState;
|
|
199
|
-
}
|
|
200
|
-
function parseEndpointPath(endpointPath) {
|
|
201
|
-
const parts = endpointPath.split("/");
|
|
202
|
-
if (parts.length < 5)
|
|
203
|
-
return null;
|
|
204
|
-
return { asset: parts[2], category: parts[3], metric: parts.slice(4).join("/") };
|
|
205
|
-
}
|
|
206
|
-
function getMetricLimits(endpointPath) {
|
|
207
|
-
if (!planLimitsState.limits)
|
|
208
|
-
return null;
|
|
209
|
-
const parsed = parseEndpointPath(endpointPath);
|
|
210
|
-
if (!parsed)
|
|
211
|
-
return null;
|
|
212
|
-
const { asset, category, metric } = parsed;
|
|
213
|
-
return planLimitsState.limits[asset]?.[category]?.[metric] ?? null;
|
|
214
|
-
}
|
|
215
|
-
export function getPlanLimit(endpointPath, windowType) {
|
|
216
|
-
const metricLimits = getMetricLimits(endpointPath);
|
|
217
|
-
if (!metricLimits?.window)
|
|
218
|
-
return null;
|
|
219
|
-
if (windowType && metricLimits.window[windowType]) {
|
|
220
|
-
return metricLimits.window[windowType];
|
|
221
|
-
}
|
|
222
|
-
// Return first available window limit
|
|
223
|
-
const windows = Object.keys(metricLimits.window);
|
|
224
|
-
return windows.length > 0 ? metricLimits.window[windows[0]] : null;
|
|
225
|
-
}
|
|
226
|
-
export function getEndpointResultLimit(_endpointPath) {
|
|
227
|
-
// Note: The new API response format no longer includes result limits per endpoint
|
|
228
|
-
// Return null to indicate no specific limit is set
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
export function getEndpointWindowLimits(endpointPath) {
|
|
232
|
-
const metricLimits = getMetricLimits(endpointPath);
|
|
233
|
-
return metricLimits?.window ?? {};
|
|
234
|
-
}
|
|
235
|
-
export function hasEndpointAccess(endpointPath) {
|
|
236
|
-
if (!planLimitsState.loaded || planLimitsState.plan === "unknown") {
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
// Check if it's a static endpoint (always accessible)
|
|
240
|
-
if (planLimitsState.statics.includes(endpointPath)) {
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
if (planLimitsState.plan === "basic" && !planLimitsState.limits) {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
// Check if endpoint has explicit limits defined
|
|
247
|
-
const hasLimits = getPlanLimit(endpointPath) !== null;
|
|
248
|
-
if (hasLimits) {
|
|
249
|
-
return true;
|
|
250
|
-
}
|
|
251
|
-
// For premium/professional plans, endpoints not in limits (e.g., status/metadata endpoints)
|
|
252
|
-
// are assumed accessible since these plans have full access
|
|
253
|
-
if (planLimitsState.plan === "premium" || planLimitsState.plan === "professional" || planLimitsState.plan === "custom") {
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
// For basic/advanced plans, only explicitly listed endpoints are accessible
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
export function parseDurationToDate(duration) {
|
|
260
|
-
if (duration === "P0D")
|
|
261
|
-
return null; // Unlimited
|
|
262
|
-
const match = duration.match(/^P(\d+)([YMWD])$/);
|
|
263
|
-
if (!match)
|
|
264
|
-
return null;
|
|
265
|
-
const value = parseInt(match[1], 10);
|
|
266
|
-
const unit = match[2];
|
|
267
|
-
const date = new Date();
|
|
268
|
-
switch (unit) {
|
|
269
|
-
case "Y":
|
|
270
|
-
date.setFullYear(date.getFullYear() - value);
|
|
271
|
-
break;
|
|
272
|
-
case "M":
|
|
273
|
-
date.setMonth(date.getMonth() - value);
|
|
274
|
-
break;
|
|
275
|
-
case "W":
|
|
276
|
-
date.setDate(date.getDate() - value * 7);
|
|
277
|
-
break;
|
|
278
|
-
case "D":
|
|
279
|
-
date.setDate(date.getDate() - value);
|
|
280
|
-
break;
|
|
281
|
-
default:
|
|
282
|
-
return null;
|
|
283
|
-
}
|
|
284
|
-
return date;
|
|
285
|
-
}
|
|
286
|
-
export function getEarliestAllowedDate(endpointPath, windowType) {
|
|
287
|
-
const limit = getPlanLimit(endpointPath, windowType);
|
|
288
|
-
if (!limit)
|
|
289
|
-
return new Date();
|
|
290
|
-
return parseDurationToDate(limit);
|
|
291
|
-
}
|
|
292
|
-
export function validateDateRange(endpointPath, fromDate, windowType) {
|
|
293
|
-
if (!planLimitsState.loaded || planLimitsState.plan === "unknown") {
|
|
294
|
-
return { valid: true };
|
|
295
|
-
}
|
|
296
|
-
if (!hasEndpointAccess(endpointPath)) {
|
|
297
|
-
return { valid: false, error: "Endpoint not accessible on your plan" };
|
|
298
|
-
}
|
|
299
|
-
if (!fromDate) {
|
|
300
|
-
return { valid: true };
|
|
301
|
-
}
|
|
302
|
-
const limit = getPlanLimit(endpointPath, windowType);
|
|
303
|
-
if (!limit) {
|
|
304
|
-
return { valid: false, error: "No access to this endpoint/window combination" };
|
|
305
|
-
}
|
|
306
|
-
if (limit === "P0D") {
|
|
307
|
-
return { valid: true };
|
|
308
|
-
}
|
|
309
|
-
const earliestDate = parseDurationToDate(limit);
|
|
310
|
-
if (!earliestDate) {
|
|
311
|
-
return { valid: true };
|
|
312
|
-
}
|
|
313
|
-
const requestedDate = new Date(fromDate);
|
|
314
|
-
if (isNaN(requestedDate.getTime())) {
|
|
315
|
-
return { valid: false, error: "Invalid date format" };
|
|
316
|
-
}
|
|
317
|
-
if (requestedDate < earliestDate) {
|
|
318
|
-
return {
|
|
319
|
-
valid: false,
|
|
320
|
-
error: "Date range exceeds plan limit",
|
|
321
|
-
earliest_allowed: earliestDate.toISOString().split("T")[0],
|
|
322
|
-
limit,
|
|
323
|
-
};
|
|
324
|
-
}
|
|
325
|
-
return { valid: true };
|
|
326
|
-
}
|
|
327
|
-
export function getRequiredPlan(endpointPath) {
|
|
328
|
-
// TODO: Sync endpoint-to-plan mapping with actual CryptoQuant pricing data
|
|
329
|
-
// Plan hierarchy: basic < advanced < professional < premium < custom
|
|
330
|
-
if (!planLimitsState.limits)
|
|
331
|
-
return "professional";
|
|
332
|
-
const limit = getPlanLimit(endpointPath);
|
|
333
|
-
switch (limit) {
|
|
334
|
-
case null:
|
|
335
|
-
return "professional";
|
|
336
|
-
case "P0D":
|
|
337
|
-
case "P1D":
|
|
338
|
-
return "basic";
|
|
339
|
-
default:
|
|
340
|
-
return "professional";
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
export function getApiRateLimit() {
|
|
344
|
-
return planLimitsState.apiRateLimit;
|
|
345
|
-
}
|
|
346
|
-
export function getStaticEndpoints() {
|
|
347
|
-
return planLimitsState.statics;
|
|
348
|
-
}
|
|
349
|
-
export function resetPlanLimits() {
|
|
350
|
-
planLimitsState = { ...DEFAULT_STATE };
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Load plan limits state from cached data (no API call).
|
|
354
|
-
*/
|
|
355
|
-
export function loadPlanLimitsFromCache(limits, statics, apiRateLimit, plan) {
|
|
356
|
-
planLimitsState = {
|
|
357
|
-
loaded: true,
|
|
358
|
-
limits,
|
|
359
|
-
plan,
|
|
360
|
-
statics,
|
|
361
|
-
apiRateLimit,
|
|
362
|
-
fetched_at: Date.now(),
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
export function getAccessibleEndpointsSummary(totalDiscoveredEndpoints) {
|
|
366
|
-
const state = planLimitsState;
|
|
367
|
-
if (!state.loaded) {
|
|
368
|
-
return { count: 0 };
|
|
369
|
-
}
|
|
370
|
-
// For basic plan without limits data, no endpoints are accessible
|
|
371
|
-
if (state.plan === "basic" && !state.limits) {
|
|
372
|
-
return { count: 0, endpoints: [] };
|
|
373
|
-
}
|
|
374
|
-
// For premium/professional/custom plans, all discovered endpoints are accessible
|
|
375
|
-
// (status/metadata endpoints not in limits are still accessible)
|
|
376
|
-
if ((state.plan === "premium" || state.plan === "professional" || state.plan === "custom") && totalDiscoveredEndpoints) {
|
|
377
|
-
return { count: totalDiscoveredEndpoints };
|
|
378
|
-
}
|
|
379
|
-
let count = 0;
|
|
380
|
-
const endpoints = [];
|
|
381
|
-
if (state.limits) {
|
|
382
|
-
for (const asset of Object.keys(state.limits)) {
|
|
383
|
-
const categories = state.limits[asset];
|
|
384
|
-
if (!categories)
|
|
385
|
-
continue;
|
|
386
|
-
for (const category of Object.keys(categories)) {
|
|
387
|
-
const metrics = categories[category];
|
|
388
|
-
if (!metrics)
|
|
389
|
-
continue;
|
|
390
|
-
for (const metric of Object.keys(metrics)) {
|
|
391
|
-
const metricLimits = metrics[metric];
|
|
392
|
-
if (!metricLimits?.window)
|
|
393
|
-
continue;
|
|
394
|
-
count++;
|
|
395
|
-
// For basic/advanced plans, include detailed endpoint info
|
|
396
|
-
if (state.plan === "basic" || state.plan === "advanced") {
|
|
397
|
-
const dayLimit = metricLimits.window["day"] || Object.values(metricLimits.window)[0];
|
|
398
|
-
endpoints.push({
|
|
399
|
-
path: `/v1/${asset}/${category}/${metric}`,
|
|
400
|
-
date_limit: dayLimit,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
// Include static endpoints in count
|
|
408
|
-
count += state.statics.length;
|
|
409
|
-
const result = { count };
|
|
410
|
-
// Only include endpoints list for basic/advanced plans
|
|
411
|
-
if ((state.plan === "basic" || state.plan === "advanced") && endpoints.length > 0) {
|
|
412
|
-
result.endpoints = endpoints;
|
|
413
|
-
}
|
|
414
|
-
return result;
|
|
415
|
-
}
|
|
416
|
-
//# sourceMappingURL=plan-limits.js.map
|
package/dist/plan-limits.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-limits.js","sourceRoot":"","sources":["../src/plan-limits.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/auth.d.ts
DELETED
package/dist/tools/auth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoDzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkMzD"}
|
package/dist/tools/auth.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { initializePermissions, resetPermissions, getDiscoverySummary, getPermissionState, clearDiscoveryCache, getDiscoveryCachePath, getCachedDiscovery, } from "../permissions.js";
|
|
3
|
-
import { getAssetCategoryMap } from "../discovery.js";
|
|
4
|
-
import { getStoredApiKey, saveApiKey, clearCredentials, getCredentialsPath, updateValidatedAt, } from "../auth/storage.js";
|
|
5
|
-
import { getPlanLimitsState, getAccessibleEndpointsSummary } from "../plan-limits.js";
|
|
6
|
-
import { getApiUrl } from "../config.js";
|
|
7
|
-
import { jsonResponse, getPlanNote, logger } from "../utils.js";
|
|
8
|
-
const initializeSchema = {
|
|
9
|
-
api_key: z.string().optional().describe("API key (optional if CRYPTOQUANT_API_KEY env var is set)"),
|
|
10
|
-
};
|
|
11
|
-
function resolveApiKey(paramKey) {
|
|
12
|
-
if (paramKey) {
|
|
13
|
-
logger.debug("[resolveApiKey] using key from parameter");
|
|
14
|
-
return paramKey;
|
|
15
|
-
}
|
|
16
|
-
const envKey = process.env.CRYPTOQUANT_API_KEY;
|
|
17
|
-
const isEnvKeyValid = envKey && envKey.trim() && !envKey.startsWith("${");
|
|
18
|
-
if (isEnvKeyValid) {
|
|
19
|
-
logger.debug("[resolveApiKey] using key from environment variable");
|
|
20
|
-
return envKey;
|
|
21
|
-
}
|
|
22
|
-
const storedKey = getStoredApiKey();
|
|
23
|
-
if (storedKey) {
|
|
24
|
-
logger.debug("[resolveApiKey] using key from stored credentials");
|
|
25
|
-
return storedKey;
|
|
26
|
-
}
|
|
27
|
-
logger.debug("[resolveApiKey] no API key found");
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
export function registerAuthTools(server) {
|
|
31
|
-
server.tool("initialize", "Initialize CryptoQuant session. MUST be called first before any other CryptoQuant tools. Returns available assets (btc, eth, etc.), metric categories per asset (e.g., market-indicator, network-indicator), and your plan. Use the returned asset_categories to know which discover_endpoints() calls are valid.", initializeSchema, async (params) => {
|
|
32
|
-
logger.debug("[initialize] starting initialization");
|
|
33
|
-
const apiKey = resolveApiKey(params.api_key);
|
|
34
|
-
if (!apiKey) {
|
|
35
|
-
logger.debug("[initialize] no API key available");
|
|
36
|
-
return jsonResponse({
|
|
37
|
-
status: "api_key_required",
|
|
38
|
-
message: "API key not found. Please configure using one of these methods:",
|
|
39
|
-
setup_options: [
|
|
40
|
-
{
|
|
41
|
-
method: "Environment Variable (Recommended)",
|
|
42
|
-
instruction: "Add to your MCP config (~/.claude/mcp.json):",
|
|
43
|
-
example: {
|
|
44
|
-
mcpServers: {
|
|
45
|
-
cryptoquant: {
|
|
46
|
-
command: "npx",
|
|
47
|
-
args: ["-y", "@cryptoquant_official/mcp"],
|
|
48
|
-
env: { CRYPTOQUANT_API_KEY: "your-api-key" },
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
method: "Direct Parameter",
|
|
55
|
-
instruction: "Call initialize with api_key parameter:",
|
|
56
|
-
example: "initialize(api_key='your-api-key')",
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
get_api_key: "https://cryptoquant.com/settings/api",
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
const apiUrl = getApiUrl();
|
|
63
|
-
logger.debug("[initialize] using API URL:", apiUrl);
|
|
64
|
-
const result = await initializePermissions(apiKey, apiUrl);
|
|
65
|
-
logger.debug("[initialize] permissions result:", {
|
|
66
|
-
success: result.success,
|
|
67
|
-
from_cache: result.from_cache,
|
|
68
|
-
cache_status: result.cache_status,
|
|
69
|
-
error: result.error,
|
|
70
|
-
});
|
|
71
|
-
if (!result.success) {
|
|
72
|
-
return jsonResponse({
|
|
73
|
-
success: false,
|
|
74
|
-
error: result.error,
|
|
75
|
-
help: {
|
|
76
|
-
check_key: "Check your API key at https://cryptoquant.com/settings/api",
|
|
77
|
-
retry: "Or call initialize(api_key='your-api-key') with a valid key",
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
// Save or update credentials based on key source
|
|
82
|
-
if (params.api_key) {
|
|
83
|
-
// Key from parameter: save it (enables key replacement)
|
|
84
|
-
saveApiKey(params.api_key);
|
|
85
|
-
}
|
|
86
|
-
else if (!process.env.CRYPTOQUANT_API_KEY) {
|
|
87
|
-
// Key from stored credentials: just update validated_at
|
|
88
|
-
updateValidatedAt();
|
|
89
|
-
}
|
|
90
|
-
const discovery = getDiscoverySummary();
|
|
91
|
-
const assetCategories = getAssetCategoryMap();
|
|
92
|
-
const permState = getPermissionState();
|
|
93
|
-
const planState = getPlanLimitsState();
|
|
94
|
-
const cachedDiscovery = getCachedDiscovery();
|
|
95
|
-
const totalEndpoints = discovery?.total_endpoints || cachedDiscovery?.summary.total_endpoints || 0;
|
|
96
|
-
const accessibleSummary = getAccessibleEndpointsSummary(totalEndpoints);
|
|
97
|
-
// Build session info with cache status
|
|
98
|
-
const sessionInfo = {
|
|
99
|
-
plan: permState.plan,
|
|
100
|
-
cache_status: result.cache_status,
|
|
101
|
-
...(planState.apiRateLimit && {
|
|
102
|
-
rate_limit: `${planState.apiRateLimit.token}/${planState.apiRateLimit.window}`,
|
|
103
|
-
}),
|
|
104
|
-
};
|
|
105
|
-
// Build scope info (compact summary)
|
|
106
|
-
const scopeInfo = {
|
|
107
|
-
total_endpoints: discovery?.total_endpoints || cachedDiscovery?.summary.total_endpoints || 0,
|
|
108
|
-
accessible: accessibleSummary.count,
|
|
109
|
-
note: "Use discover_endpoints(asset, category) for details",
|
|
110
|
-
};
|
|
111
|
-
// Add asset breakdown from cache summary if available
|
|
112
|
-
if (cachedDiscovery?.summary.assets) {
|
|
113
|
-
const assets = {};
|
|
114
|
-
for (const assetInfo of cachedDiscovery.summary.assets) {
|
|
115
|
-
assets[assetInfo.name] = {
|
|
116
|
-
endpoints: assetInfo.endpoint_count,
|
|
117
|
-
categories: assetInfo.categories.length,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
scopeInfo.assets = assets;
|
|
121
|
-
}
|
|
122
|
-
else if (discovery) {
|
|
123
|
-
// Fallback to discovery data
|
|
124
|
-
const assets = {};
|
|
125
|
-
for (const assetInfo of discovery.assets) {
|
|
126
|
-
assets[assetInfo.name] = {
|
|
127
|
-
endpoints: assetInfo.count,
|
|
128
|
-
categories: assetCategories?.[assetInfo.name]?.length || 0,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
scopeInfo.assets = assets;
|
|
132
|
-
}
|
|
133
|
-
const planInfo = {
|
|
134
|
-
plan: permState.plan,
|
|
135
|
-
plan_limits_loaded: planState.loaded,
|
|
136
|
-
accessible_endpoints: accessibleSummary.count,
|
|
137
|
-
// Only include endpoint details for basic/advanced plans (limited access)
|
|
138
|
-
...(accessibleSummary.endpoints && { accessible_list: accessibleSummary.endpoints }),
|
|
139
|
-
fetched_at: planState.fetched_at ? new Date(planState.fetched_at).toISOString() : null,
|
|
140
|
-
note: getPlanNote(permState.plan),
|
|
141
|
-
};
|
|
142
|
-
return jsonResponse({
|
|
143
|
-
success: true,
|
|
144
|
-
session: sessionInfo,
|
|
145
|
-
scope: scopeInfo,
|
|
146
|
-
discovery: discovery
|
|
147
|
-
? {
|
|
148
|
-
total_endpoints: discovery.total_endpoints,
|
|
149
|
-
assets: discovery.assets.map((a) => a.name),
|
|
150
|
-
categories: discovery.categories.map((c) => c.name),
|
|
151
|
-
asset_categories: assetCategories,
|
|
152
|
-
fetched_at: discovery.fetched_at,
|
|
153
|
-
}
|
|
154
|
-
: null,
|
|
155
|
-
plan_info: planInfo,
|
|
156
|
-
...(result.discovery_error && { warning: `Discovery partial: ${result.discovery_error}` }),
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
server.tool("reset_session", "Clear session and optionally stored credentials. Use cases: (1) Switch accounts - clear_stored=true then initialize(), (2) API key expired - clear_stored=true then initialize(), (3) Refresh session - clear_stored=false. After clearing, call initialize() with your API key.", {
|
|
160
|
-
clear_stored: z
|
|
161
|
-
.boolean()
|
|
162
|
-
.optional()
|
|
163
|
-
.describe("If true, also clears stored credentials from ~/.cryptoquant/credentials"),
|
|
164
|
-
clear_cache: z
|
|
165
|
-
.boolean()
|
|
166
|
-
.optional()
|
|
167
|
-
.describe("If true, also clears discovery cache (forces fresh API fetch on next initialize)"),
|
|
168
|
-
}, async (params) => {
|
|
169
|
-
logger.debug("[reset_session] called with:", {
|
|
170
|
-
clear_stored: params.clear_stored,
|
|
171
|
-
clear_cache: params.clear_cache,
|
|
172
|
-
});
|
|
173
|
-
resetPermissions();
|
|
174
|
-
const apiUrl = getApiUrl();
|
|
175
|
-
const clearedItems = ["session"];
|
|
176
|
-
if (params.clear_stored) {
|
|
177
|
-
clearCredentials();
|
|
178
|
-
clearedItems.push("credentials");
|
|
179
|
-
}
|
|
180
|
-
if (params.clear_cache) {
|
|
181
|
-
clearDiscoveryCache(apiUrl);
|
|
182
|
-
clearedItems.push("discovery cache");
|
|
183
|
-
}
|
|
184
|
-
const message = clearedItems.length === 1
|
|
185
|
-
? "Session cleared (credentials and cache preserved)"
|
|
186
|
-
: `Cleared: ${clearedItems.join(", ")}`;
|
|
187
|
-
logger.debug("[reset_session] cleared:", clearedItems.join(", "));
|
|
188
|
-
return jsonResponse({
|
|
189
|
-
success: true,
|
|
190
|
-
message,
|
|
191
|
-
...(params.clear_stored && { credentials_path: getCredentialsPath() }),
|
|
192
|
-
...(params.clear_cache && { cache_path: getDiscoveryCachePath(apiUrl) }),
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=auth.js.map
|
package/dist/tools/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/core.d.ts
DELETED
package/dist/tools/core.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6ZzD"}
|