@cryptoquant_official/mcp 0.0.4 → 0.0.5
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 +23 -0
- package/dist/data/metrics.toon +8 -5
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +14 -2
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/permissions.d.ts +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +32 -8
- package/dist/permissions.js.map +1 -1
- package/dist/tools/auth.d.ts +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +29 -5
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/core.d.ts +1 -1
- package/dist/tools/core.d.ts.map +1 -1
- package/dist/tools/core.js +108 -35
- package/dist/tools/core.js.map +1 -1
- package/dist/utils.d.ts +13 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +34 -0
- package/dist/utils.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -96,6 +96,29 @@ Claude: Let me check the MVRV ratio...
|
|
|
96
96
|
→ Returns analysis with current valuation status
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
+
## Environment Variables
|
|
100
|
+
|
|
101
|
+
| Variable | Description | Default |
|
|
102
|
+
|----------|-------------|---------|
|
|
103
|
+
| `CRYPTOQUANT_API_KEY` | API key for authentication | (none) |
|
|
104
|
+
| `DEBUG` | Enable debug logging (`true` or `1`) | (disabled) |
|
|
105
|
+
|
|
106
|
+
Example with debug logging:
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"cryptoquant": {
|
|
111
|
+
"command": "npx",
|
|
112
|
+
"args": ["-y", "@cryptoquant_official/mcp"],
|
|
113
|
+
"env": {
|
|
114
|
+
"CRYPTOQUANT_API_KEY": "your-api-key",
|
|
115
|
+
"DEBUG": "true"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
99
122
|
## Requirements
|
|
100
123
|
|
|
101
124
|
- Node.js 18+
|
package/dist/data/metrics.toon
CHANGED
|
@@ -27,7 +27,6 @@ sopr-ratio,SOPR Ratio,market-indicator,btc,Long-term holder SOPR divided by shor
|
|
|
27
27
|
realized-price,Realized Price,market-indicator,btc,Realized Cap divided by total supply; representing average price weighted by supply that market participants paid for their coins.,price below realized price bear market|price above realized price bull market,Acts as on-chain support/resistance; price falling below realized price historically marks bear market lows
|
|
28
28
|
utxo-realized-price-age-distribution,UTxO Realized Price Age Distribution,market-indicator,btc,Set of realized prices across different age bands; showing cost basis of different holder cohorts.,,Overlaying cohort realized prices helps identify key support/resistance levels by holder group
|
|
29
29
|
asopr,Adjusted SOPR,market-indicator,btc,SOPR excluding coins younger than 1 hour to filter noise,<1 loss realization|>1 profit taking,More accurate than raw SOPR for trend analysis. Filters out exchange-related movements
|
|
30
|
-
puell-multiple,Puell Multiple,market-indicator,btc,Daily miner revenue divided by 365-day moving average revenue,<0.5 undervalued|0.5-4 neutral|>4 overheated,Miner profitability indicator. Low values indicate miner stress; high values indicate excess profitability
|
|
31
30
|
|
|
32
31
|
# ============================================================================
|
|
33
32
|
# BTC - Exchange Flows
|
|
@@ -39,7 +38,7 @@ outflow,Exchange Outflow,exchange-flows,btc,BTC flowing out of exchange wallets;
|
|
|
39
38
|
addresses-count-ef,Exchange Addresses Count,exchange-flows,btc,Number of addresses involved in exchange inflow/outflow transactions.,,Rising unique addresses suggests broader market participation
|
|
40
39
|
netflow,Exchange Netflow,exchange-flows,btc,Difference between exchange inflows and outflows; showing net movement of coins to/from exchanges.,positive netflow selling pressure|negative netflow accumulation,Sustained negative netflow is bullish as it reduces tradeable supply on exchanges
|
|
41
40
|
in-house-flow,In-House Flow,exchange-flows,btc,BTC movement within wallets of the same exchange; representing internal transfers.,,High in-house flow may indicate exchange wallet management or internal position changes
|
|
42
|
-
exchange-whale-ratio,Exchange Whale Ratio,
|
|
41
|
+
exchange-whale-ratio,Exchange Whale Ratio,flow-indicator,btc,Ratio of top 10 inflow transactions to total inflows,>0.9 whale dominated|<0.5 retail dominated,Who is moving coins. High ratio means large players dominating exchange activity
|
|
43
42
|
|
|
44
43
|
# ============================================================================
|
|
45
44
|
# BTC - Network Data
|
|
@@ -195,10 +194,14 @@ eth-depositor-count-new,Depositor Count New,eth2,eth,Number of new unique accoun
|
|
|
195
194
|
eth-staking-rate,Staking Rate,eth2,eth,Percentage of ETH 2.0 deposit contract balance to total supply.,,Higher staking rate reduces liquid supply and may support price
|
|
196
195
|
|
|
197
196
|
# ============================================================================
|
|
198
|
-
# ETH -
|
|
197
|
+
# ETH - Market Indicator
|
|
199
198
|
# ============================================================================
|
|
200
|
-
eth-estimated-leverage-ratio,Estimated Leverage Ratio,
|
|
201
|
-
|
|
199
|
+
eth-estimated-leverage-ratio,Estimated Leverage Ratio,market-indicator,eth,Open interest divided by ETH reserve; estimating average user leverage. High leverage leads to rapid volatility.,high leverage high volatility risk|low leverage stable market,Elevated leverage ratios often precede sharp price movements and liquidation cascades
|
|
200
|
+
|
|
201
|
+
# ============================================================================
|
|
202
|
+
# ETH - Flow Indicator
|
|
203
|
+
# ============================================================================
|
|
204
|
+
eth-exchange-supply-ratio,Exchange Supply Ratio,flow-indicator,eth,Exchange reserve divided by total supply; measuring tokens reserved on exchanges relative to total supply.,,Lower ratio suggests more ETH in cold storage; reducing sell pressure potential
|
|
202
205
|
|
|
203
206
|
# ============================================================================
|
|
204
207
|
# ETH - Other
|
package/dist/discovery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE;QAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACvC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoC/C;AAsDD,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAmBD,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,cAAc,EAAE,CAoBnB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBtC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAI9G;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAe7D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAUrE;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/discovery.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { logger } from "./utils.js";
|
|
1
2
|
let endpointCatalog = null;
|
|
2
3
|
export async function fetchDiscoveryEndpoints(apiKey, apiUrl) {
|
|
3
4
|
try {
|
|
4
5
|
const discoveryUrl = apiUrl.replace(/\/v1$/, "") + "/v1/discovery/endpoints?source=mcp";
|
|
6
|
+
logger.debug("[fetchDiscoveryEndpoints] fetching from:", discoveryUrl);
|
|
5
7
|
const response = await fetch(discoveryUrl, {
|
|
6
8
|
method: "GET",
|
|
7
9
|
headers: { Authorization: `Bearer ${apiKey}` },
|
|
8
10
|
});
|
|
11
|
+
logger.debug("[fetchDiscoveryEndpoints] response status:", response.status, response.statusText);
|
|
9
12
|
if (!response.ok) {
|
|
10
13
|
return { success: false, error: `Discovery API failed: ${response.status} ${response.statusText}` };
|
|
11
14
|
}
|
|
@@ -20,6 +23,9 @@ export async function fetchDiscoveryEndpoints(apiKey, apiUrl) {
|
|
|
20
23
|
return { success: false, error: `Invalid discovery response: ${data.status.message}` };
|
|
21
24
|
}
|
|
22
25
|
endpointCatalog = parseEndpoints(data.result.data);
|
|
26
|
+
logger.debug("[fetchDiscoveryEndpoints] parsed", endpointCatalog.endpoints.length, "endpoints");
|
|
27
|
+
logger.debug("[fetchDiscoveryEndpoints] assets:", endpointCatalog.assets.join(", "));
|
|
28
|
+
logger.debug("[fetchDiscoveryEndpoints] categories:", endpointCatalog.categories.join(", "));
|
|
23
29
|
return { success: true };
|
|
24
30
|
}
|
|
25
31
|
catch (error) {
|
|
@@ -92,13 +98,19 @@ function getBaseEndpoints(catalog, asset, category) {
|
|
|
92
98
|
return catalog.endpoints;
|
|
93
99
|
}
|
|
94
100
|
export function searchEndpoints(options) {
|
|
95
|
-
|
|
101
|
+
logger.debug("[searchEndpoints] search options:", options);
|
|
102
|
+
if (!endpointCatalog) {
|
|
103
|
+
logger.debug("[searchEndpoints] catalog not loaded");
|
|
96
104
|
return [];
|
|
105
|
+
}
|
|
97
106
|
const results = getBaseEndpoints(endpointCatalog, options.asset, options.category);
|
|
107
|
+
logger.debug("[searchEndpoints] base results:", results.length);
|
|
98
108
|
if (!options.query)
|
|
99
109
|
return results;
|
|
100
110
|
const queryLower = options.query.toLowerCase();
|
|
101
|
-
|
|
111
|
+
const filtered = results.filter((ep) => ep.path.toLowerCase().includes(queryLower) || ep.metric.toLowerCase().includes(queryLower));
|
|
112
|
+
logger.debug("[searchEndpoints] filtered by query:", filtered.length);
|
|
113
|
+
return filtered;
|
|
102
114
|
}
|
|
103
115
|
export function getEndpointByPath(path) {
|
|
104
116
|
return endpointCatalog?.endpoints.find((ep) => ep.path === path);
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
export type { EndpointParameter, DiscoveryEndpoint, DiscoveryResponse, ParsedEndpoint, EndpointCatalog, DiscoverySummary, } from "./discovery.js";
|
|
3
|
-
export { fetchDiscoveryEndpoints, getEndpointCatalog, isDiscoveryLoaded, searchEndpoints, getEndpointByPath,
|
|
3
|
+
export { fetchDiscoveryEndpoints, getEndpointCatalog, isDiscoveryLoaded, searchEndpoints, getEndpointByPath, getParameterOptions, getDiscoverySummary, getAssetCategoryMap, resetDiscovery, } from "./discovery.js";
|
|
4
4
|
export type { PermissionState, InitializeResult } from "./permissions.js";
|
|
5
5
|
export { initializePermissions, getPermissionState, setGuestMode, resetPermissions, clearDiscoveryCache, getDiscoveryCachePath, getCachedDiscovery, } from "./permissions.js";
|
|
6
6
|
export type { DurationLimit, UserPlan, MetricLimits, PlanLimits, ApiRateLimit, PlanLimitsState, FetchPlanLimitsResult, DateRangeValidation, AccessibleEndpointInfo, AccessibleEndpointsSummary, } from "./plan-limits.js";
|
|
@@ -11,7 +11,7 @@ export { getCacheFilePath, isCacheValid, readCache, writeCache, invalidateCache,
|
|
|
11
11
|
export { generateSummary, extractRawResponse } from "./cache/summary.js";
|
|
12
12
|
export type { StoredCredentials } from "./auth/storage.js";
|
|
13
13
|
export { getStoredApiKey, saveApiKey, updateValidatedAt, clearCredentials, getCredentialsPath, } from "./auth/storage.js";
|
|
14
|
-
export { jsonResponse, errorResponse, getPlanNote, capitalizeFirst } from "./utils.js";
|
|
14
|
+
export { jsonResponse, errorResponse, getPlanNote, capitalizeFirst, logger, } from "./utils.js";
|
|
15
15
|
export { getApiUrl, getApiBaseUrl } from "./config.js";
|
|
16
16
|
export { registerAuthTools } from "./tools/auth.js";
|
|
17
17
|
export { registerCoreTools } from "./tools/core.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAYA,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAKxB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAK1B,YAAY,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAK1B,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKzE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,GACP,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,8 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { registerAuthTools } from "./tools/auth.js";
|
|
5
5
|
import { registerCoreTools } from "./tools/core.js";
|
|
6
|
-
|
|
6
|
+
import { logger } from "./utils.js";
|
|
7
|
+
export { fetchDiscoveryEndpoints, getEndpointCatalog, isDiscoveryLoaded, searchEndpoints, getEndpointByPath, getParameterOptions, getDiscoverySummary, getAssetCategoryMap, resetDiscovery, } from "./discovery.js";
|
|
7
8
|
export { initializePermissions, getPermissionState, setGuestMode, resetPermissions, clearDiscoveryCache, getDiscoveryCachePath, getCachedDiscovery, } from "./permissions.js";
|
|
8
9
|
export { fetchPlanLimits, getPlanLimitsState, getPlanLimit, getEndpointResultLimit, getEndpointWindowLimits, hasEndpointAccess, parseDurationToDate, getEarliestAllowedDate, validateDateRange, getRequiredPlan, getApiRateLimit, getStaticEndpoints, resetPlanLimits, loadPlanLimitsFromCache, getAccessibleEndpointsSummary, detectPlanFromLimits, } from "./plan-limits.js";
|
|
9
10
|
export { CACHE_VERSION, CACHE_TTL_DAYS } from "./cache/types.js";
|
|
@@ -13,7 +14,7 @@ export { getStoredApiKey, saveApiKey, updateValidatedAt, clearCredentials, getCr
|
|
|
13
14
|
// =============================================================================
|
|
14
15
|
// Utility Exports
|
|
15
16
|
// =============================================================================
|
|
16
|
-
export { jsonResponse, errorResponse, getPlanNote, capitalizeFirst } from "./utils.js";
|
|
17
|
+
export { jsonResponse, errorResponse, getPlanNote, capitalizeFirst, logger, } from "./utils.js";
|
|
17
18
|
// =============================================================================
|
|
18
19
|
// Config Exports
|
|
19
20
|
// =============================================================================
|
|
@@ -37,10 +38,10 @@ async function main() {
|
|
|
37
38
|
// Start server with stdio transport
|
|
38
39
|
const transport = new StdioServerTransport();
|
|
39
40
|
await server.connect(transport);
|
|
40
|
-
|
|
41
|
+
logger.info("CryptoQuant MCP Server running on stdio");
|
|
41
42
|
}
|
|
42
43
|
main().catch((error) => {
|
|
43
|
-
|
|
44
|
+
logger.error("Failed to start server:", error);
|
|
44
45
|
process.exit(1);
|
|
45
46
|
});
|
|
46
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAcpC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAkB1B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOzE,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAChF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,GACP,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAChF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/permissions.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACrB;AAcD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAmI3B;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,GAAG,IAAI,CAEhE;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/permissions.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { clearAllCaches, getCacheFilePath, getCacheStatus, invalidateCache, isCacheValid, readCache, writeCache, } from "./cache/storage.js";
|
|
2
|
+
import { extractRawResponse, generateSummary } from "./cache/summary.js";
|
|
1
3
|
import { fetchDiscoveryEndpoints, resetDiscovery } from "./discovery.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { generateSummary, extractRawResponse } from "./cache/summary.js";
|
|
4
|
+
import { logger } from "./utils.js";
|
|
5
|
+
import { fetchPlanLimits, getPlanLimitsState, loadPlanLimitsFromCache, resetPlanLimits, } from "./plan-limits.js";
|
|
5
6
|
const DEFAULT_STATE = {
|
|
6
7
|
authenticated: false,
|
|
7
8
|
api_key: null,
|
|
@@ -13,17 +14,20 @@ const DEFAULT_STATE = {
|
|
|
13
14
|
let permissionState = { ...DEFAULT_STATE };
|
|
14
15
|
let cachedDiscovery = null;
|
|
15
16
|
export async function initializePermissions(apiKey, apiUrl) {
|
|
17
|
+
logger.debug("[initializePermissions] starting with API URL:", apiUrl);
|
|
16
18
|
const apiKeyPrefix = apiKey.slice(0, 8);
|
|
17
19
|
// 1. Try cache first for /my/discovery data
|
|
18
20
|
const cache = readCache(apiUrl);
|
|
21
|
+
logger.debug("[initializePermissions] cache status:", cache ? "found" : "not found");
|
|
19
22
|
if (cache && isCacheValid(cache, apiUrl, apiKeyPrefix)) {
|
|
23
|
+
logger.debug("[initializePermissions] using valid cache, plan:", cache.metadata.plan);
|
|
20
24
|
// Load plan limits from cache
|
|
21
25
|
loadPlanLimitsFromCache(cache.parsed.limits, cache.parsed.statics, cache.parsed.apiRateLimit, cache.metadata.plan);
|
|
22
26
|
// Still need to fetch /discovery/endpoints for parameter options
|
|
23
27
|
const discoveryResult = await fetchDiscoveryEndpoints(apiKey, apiUrl);
|
|
24
28
|
if (!discoveryResult.success) {
|
|
25
29
|
// Discovery failed but we have cache - continue with warning
|
|
26
|
-
|
|
30
|
+
logger.warn(`Discovery fetch failed, using cache: ${discoveryResult.error}`);
|
|
27
31
|
}
|
|
28
32
|
const cacheStatus = getCacheStatus(cache, true);
|
|
29
33
|
cachedDiscovery = cache;
|
|
@@ -43,17 +47,28 @@ export async function initializePermissions(apiKey, apiUrl) {
|
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
49
|
// 2. Cache miss or invalid - fetch fresh data
|
|
50
|
+
logger.debug("[initializePermissions] cache miss or invalid, fetching fresh data");
|
|
46
51
|
try {
|
|
47
52
|
// Fetch /discovery/endpoints (for parameter options)
|
|
53
|
+
logger.debug("[initializePermissions] fetching /discovery/endpoints");
|
|
48
54
|
const discoveryResult = await fetchDiscoveryEndpoints(apiKey, apiUrl);
|
|
49
55
|
if (!discoveryResult.success) {
|
|
50
|
-
|
|
56
|
+
logger.debug("[initializePermissions] discovery fetch failed:", discoveryResult.error);
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
error: discoveryResult.error,
|
|
60
|
+
from_cache: false,
|
|
61
|
+
cache_status: "none",
|
|
62
|
+
};
|
|
51
63
|
}
|
|
64
|
+
logger.debug("[initializePermissions] discovery fetch succeeded");
|
|
52
65
|
// Fetch /my/discovery/endpoints (for plan limits)
|
|
66
|
+
logger.debug("[initializePermissions] fetching /my/discovery/endpoints");
|
|
53
67
|
const planResult = await fetchPlanLimits(apiKey, apiUrl);
|
|
68
|
+
logger.debug("[initializePermissions] plan limits fetch:", planResult.success ? "success" : "failed");
|
|
54
69
|
const planState = getPlanLimitsState();
|
|
55
70
|
if (!planResult.success) {
|
|
56
|
-
|
|
71
|
+
logger.warn(`Plan limits fetch failed: ${planResult.error}`);
|
|
57
72
|
}
|
|
58
73
|
// 3. Generate summary and write cache
|
|
59
74
|
if (planResult.success && planResult.rawResponse && planResult.parsed) {
|
|
@@ -92,14 +107,23 @@ export async function initializePermissions(apiKey, apiUrl) {
|
|
|
92
107
|
return { success: true, from_cache: false, cache_status: "none" };
|
|
93
108
|
}
|
|
94
109
|
catch (error) {
|
|
95
|
-
return {
|
|
110
|
+
return {
|
|
111
|
+
success: false,
|
|
112
|
+
error: `Network error: ${error}`,
|
|
113
|
+
from_cache: false,
|
|
114
|
+
cache_status: "none",
|
|
115
|
+
};
|
|
96
116
|
}
|
|
97
117
|
}
|
|
98
118
|
export function getPermissionState() {
|
|
99
119
|
return permissionState;
|
|
100
120
|
}
|
|
101
121
|
export function setGuestMode() {
|
|
102
|
-
permissionState = {
|
|
122
|
+
permissionState = {
|
|
123
|
+
...DEFAULT_STATE,
|
|
124
|
+
cached_at: Date.now(),
|
|
125
|
+
from_cache: false,
|
|
126
|
+
};
|
|
103
127
|
}
|
|
104
128
|
export function resetPermissions() {
|
|
105
129
|
permissionState = { ...DEFAULT_STATE };
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/auth.d.ts
CHANGED
package/dist/tools/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
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
CHANGED
|
@@ -4,23 +4,35 @@ import { getAssetCategoryMap } from "../discovery.js";
|
|
|
4
4
|
import { getStoredApiKey, saveApiKey, clearCredentials, getCredentialsPath, updateValidatedAt, } from "../auth/storage.js";
|
|
5
5
|
import { getPlanLimitsState, getAccessibleEndpointsSummary } from "../plan-limits.js";
|
|
6
6
|
import { getApiUrl } from "../config.js";
|
|
7
|
-
import { jsonResponse, getPlanNote } from "../utils.js";
|
|
7
|
+
import { jsonResponse, getPlanNote, logger } from "../utils.js";
|
|
8
8
|
const initializeSchema = {
|
|
9
9
|
api_key: z.string().optional().describe("API key (optional if CRYPTOQUANT_API_KEY env var is set)"),
|
|
10
10
|
};
|
|
11
11
|
function resolveApiKey(paramKey) {
|
|
12
|
-
if (paramKey)
|
|
12
|
+
if (paramKey) {
|
|
13
|
+
logger.debug("[resolveApiKey] using key from parameter");
|
|
13
14
|
return paramKey;
|
|
15
|
+
}
|
|
14
16
|
const envKey = process.env.CRYPTOQUANT_API_KEY;
|
|
15
17
|
const isEnvKeyValid = envKey && envKey.trim() && !envKey.startsWith("${");
|
|
16
|
-
if (isEnvKeyValid)
|
|
18
|
+
if (isEnvKeyValid) {
|
|
19
|
+
logger.debug("[resolveApiKey] using key from environment variable");
|
|
17
20
|
return envKey;
|
|
18
|
-
|
|
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;
|
|
19
29
|
}
|
|
20
30
|
export function registerAuthTools(server) {
|
|
21
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) => {
|
|
22
|
-
|
|
32
|
+
logger.debug("[initialize] starting initialization");
|
|
33
|
+
const apiKey = resolveApiKey(params.api_key);
|
|
23
34
|
if (!apiKey) {
|
|
35
|
+
logger.debug("[initialize] no API key available");
|
|
24
36
|
return jsonResponse({
|
|
25
37
|
status: "api_key_required",
|
|
26
38
|
message: "API key not found. Please configure using one of these methods:",
|
|
@@ -48,7 +60,14 @@ export function registerAuthTools(server) {
|
|
|
48
60
|
});
|
|
49
61
|
}
|
|
50
62
|
const apiUrl = getApiUrl();
|
|
63
|
+
logger.debug("[initialize] using API URL:", apiUrl);
|
|
51
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
|
+
});
|
|
52
71
|
if (!result.success) {
|
|
53
72
|
return jsonResponse({
|
|
54
73
|
success: false,
|
|
@@ -147,6 +166,10 @@ export function registerAuthTools(server) {
|
|
|
147
166
|
.optional()
|
|
148
167
|
.describe("If true, also clears discovery cache (forces fresh API fetch on next initialize)"),
|
|
149
168
|
}, async (params) => {
|
|
169
|
+
logger.debug("[reset_session] called with:", {
|
|
170
|
+
clear_stored: params.clear_stored,
|
|
171
|
+
clear_cache: params.clear_cache,
|
|
172
|
+
});
|
|
150
173
|
resetPermissions();
|
|
151
174
|
const apiUrl = getApiUrl();
|
|
152
175
|
const clearedItems = ["session"];
|
|
@@ -161,6 +184,7 @@ export function registerAuthTools(server) {
|
|
|
161
184
|
const message = clearedItems.length === 1
|
|
162
185
|
? "Session cleared (credentials and cache preserved)"
|
|
163
186
|
: `Cleared: ${clearedItems.join(", ")}`;
|
|
187
|
+
logger.debug("[reset_session] cleared:", clearedItems.join(", "));
|
|
164
188
|
return jsonResponse({
|
|
165
189
|
success: true,
|
|
166
190
|
message,
|
package/dist/tools/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/core.d.ts
CHANGED
package/dist/tools/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
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"}
|
package/dist/tools/core.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
1
|
import { readFileSync } from "fs";
|
|
3
|
-
import {
|
|
2
|
+
import { dirname, join } from "path";
|
|
4
3
|
import { fileURLToPath } from "url";
|
|
5
|
-
import {
|
|
6
|
-
import { isDiscoveryLoaded, searchEndpoints, getEndpointByPath, getDiscoverySummary, getEndpointCatalog, validateEndpointParams, getParameterOptions, } from "../discovery.js";
|
|
7
|
-
import { hasEndpointAccess, getEndpointWindowLimits, validateDateRange, getRequiredPlan, getPlanLimitsState, parseDurationToDate, } from "../plan-limits.js";
|
|
4
|
+
import { z } from "zod";
|
|
8
5
|
import { getApiBaseUrl } from "../config.js";
|
|
9
|
-
import {
|
|
6
|
+
import { getDiscoverySummary, getEndpointByPath, getEndpointCatalog, getParameterOptions, isDiscoveryLoaded, searchEndpoints, validateEndpointParams, } from "../discovery.js";
|
|
7
|
+
import { getPermissionState } from "../permissions.js";
|
|
8
|
+
import { getEndpointWindowLimits, getPlanLimitsState, getRequiredPlan, hasEndpointAccess, parseDurationToDate, validateDateRange, } from "../plan-limits.js";
|
|
9
|
+
import { capitalizeFirst, errorResponse, getPlanNote, jsonResponse, logger, } from "../utils.js";
|
|
10
10
|
function buildRateLimitInfo(response) {
|
|
11
11
|
const limit = response.headers.get("X-RateLimit-Limit");
|
|
12
12
|
const remaining = response.headers.get("X-RateLimit-Remaining");
|
|
@@ -45,38 +45,62 @@ const queryDataSchema = {
|
|
|
45
45
|
.describe("API endpoint path (e.g., /v1/btc/market-data/mvrv)"),
|
|
46
46
|
params: z
|
|
47
47
|
.object({
|
|
48
|
-
window: z
|
|
49
|
-
|
|
48
|
+
window: z
|
|
49
|
+
.string()
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("Time window granularity (hour, day, block, etc.)"),
|
|
52
|
+
limit: z
|
|
53
|
+
.number()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Number of data points to return (max 1000)"),
|
|
50
56
|
from: z.string().optional().describe("Start date (ISO 8601 format)"),
|
|
51
57
|
to: z.string().optional().describe("End date (ISO 8601 format)"),
|
|
52
|
-
exchange: z
|
|
53
|
-
|
|
58
|
+
exchange: z
|
|
59
|
+
.string()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Exchange filter (for exchange-specific data)"),
|
|
62
|
+
symbol: z
|
|
63
|
+
.string()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Trading symbol (e.g., btc_usd, btc_usdt)"),
|
|
54
66
|
market: z.string().optional().describe("Market type (spot, perpetual)"),
|
|
55
|
-
token: z
|
|
67
|
+
token: z
|
|
68
|
+
.string()
|
|
69
|
+
.optional()
|
|
70
|
+
.describe("Token filter (for alt/erc20 data)"),
|
|
56
71
|
miner: z.string().optional().describe("Miner filter (for miner data)"),
|
|
57
|
-
type: z
|
|
72
|
+
type: z
|
|
73
|
+
.string()
|
|
74
|
+
.optional()
|
|
75
|
+
.describe("Entity type filter (e.g., exchange, entity, miner, bank)"),
|
|
58
76
|
})
|
|
59
77
|
.optional()
|
|
60
78
|
.describe("Query parameters"),
|
|
61
79
|
};
|
|
62
80
|
const getEndpointInfoSchema = {
|
|
63
|
-
endpoint: z
|
|
64
|
-
.string()
|
|
65
|
-
.describe("API endpoint path to get information about"),
|
|
81
|
+
endpoint: z.string().describe("API endpoint path to get information about"),
|
|
66
82
|
};
|
|
67
83
|
function requireAuth() {
|
|
68
84
|
const state = getPermissionState();
|
|
69
85
|
if (!state.authenticated) {
|
|
70
|
-
return errorResponse("Not authenticated", {
|
|
86
|
+
return errorResponse("Not authenticated", {
|
|
87
|
+
action: "Call initialize() first to authenticate with your API key",
|
|
88
|
+
});
|
|
71
89
|
}
|
|
72
90
|
return null;
|
|
73
91
|
}
|
|
74
92
|
export function registerCoreTools(server) {
|
|
75
93
|
server.tool("discover_endpoints", "Discover available API endpoints for a specific asset and category. Call initialize() first to get valid asset/category combinations. Returns endpoint paths and parameter options (e.g., window: ['day', 'hour']). Use returned paths with query_data().", discoverEndpointsSchema, async (params) => {
|
|
94
|
+
logger.debug("[discover_endpoints] called with:", {
|
|
95
|
+
asset: params.asset || "all",
|
|
96
|
+
category: params.category || "all",
|
|
97
|
+
query: params.query || null,
|
|
98
|
+
});
|
|
76
99
|
const authError = requireAuth();
|
|
77
100
|
if (authError)
|
|
78
101
|
return authError;
|
|
79
102
|
if (!isDiscoveryLoaded()) {
|
|
103
|
+
logger.debug("[discover_endpoints] discovery not loaded");
|
|
80
104
|
return errorResponse("Discovery data not loaded", {
|
|
81
105
|
action: "Discovery may have failed during initialization. Try reset_session() and initialize() again.",
|
|
82
106
|
});
|
|
@@ -86,6 +110,7 @@ export function registerCoreTools(server) {
|
|
|
86
110
|
category: params.category,
|
|
87
111
|
query: params.query,
|
|
88
112
|
});
|
|
113
|
+
logger.debug("[discover_endpoints] found", endpoints.length, "endpoints");
|
|
89
114
|
const grouped = {};
|
|
90
115
|
for (const ep of endpoints) {
|
|
91
116
|
grouped[ep.asset] ??= {};
|
|
@@ -104,7 +129,9 @@ export function registerCoreTools(server) {
|
|
|
104
129
|
const planInfo = planState.loaded
|
|
105
130
|
? {
|
|
106
131
|
accessible,
|
|
107
|
-
...(Object.keys(windowLimits).length > 0 && {
|
|
132
|
+
...(Object.keys(windowLimits).length > 0 && {
|
|
133
|
+
date_limits: windowLimits,
|
|
134
|
+
}),
|
|
108
135
|
...(!accessible && {
|
|
109
136
|
required_plan: requiredPlan,
|
|
110
137
|
upgrade_hint: `Upgrade to ${capitalizeFirst(requiredPlan)} for access`,
|
|
@@ -132,19 +159,26 @@ export function registerCoreTools(server) {
|
|
|
132
159
|
matched_endpoints: endpoints.length,
|
|
133
160
|
total_available: summary?.total_endpoints || 0,
|
|
134
161
|
...(planState.loaded && {
|
|
135
|
-
plan_info: {
|
|
162
|
+
plan_info: {
|
|
163
|
+
your_plan: planState.plan,
|
|
164
|
+
note: getPlanNote(planState.plan),
|
|
165
|
+
},
|
|
136
166
|
}),
|
|
137
167
|
catalog,
|
|
138
168
|
tip: "Use get_endpoint_info(endpoint) to see available parameter values for a specific endpoint",
|
|
139
169
|
});
|
|
140
170
|
});
|
|
141
171
|
server.tool("get_endpoint_info", "Get detailed information about a specific API endpoint including available parameter values.", getEndpointInfoSchema, async (params) => {
|
|
172
|
+
logger.debug("[get_endpoint_info] lookup:", params.endpoint);
|
|
142
173
|
const authError = requireAuth();
|
|
143
174
|
if (authError)
|
|
144
175
|
return authError;
|
|
145
176
|
const endpoint = getEndpointByPath(params.endpoint);
|
|
146
177
|
if (!endpoint) {
|
|
147
|
-
|
|
178
|
+
logger.debug("[get_endpoint_info] endpoint not found:", params.endpoint);
|
|
179
|
+
const searchResults = searchEndpoints({
|
|
180
|
+
query: params.endpoint.split("/").pop() || "",
|
|
181
|
+
});
|
|
148
182
|
return errorResponse(`Endpoint not found: ${params.endpoint}`, {
|
|
149
183
|
suggestions: searchResults.slice(0, 5).map((ep) => ep.path),
|
|
150
184
|
tip: "Use discover_endpoints() to browse available endpoints",
|
|
@@ -159,7 +193,9 @@ export function registerCoreTools(server) {
|
|
|
159
193
|
const earliestDate = parseDurationToDate(limit);
|
|
160
194
|
dateLimitsInfo[window] = {
|
|
161
195
|
limit,
|
|
162
|
-
earliest_date: earliestDate
|
|
196
|
+
earliest_date: earliestDate
|
|
197
|
+
? earliestDate.toISOString().split("T")[0]
|
|
198
|
+
: null,
|
|
163
199
|
};
|
|
164
200
|
}
|
|
165
201
|
return jsonResponse({
|
|
@@ -176,14 +212,21 @@ export function registerCoreTools(server) {
|
|
|
176
212
|
plan_access: {
|
|
177
213
|
accessible,
|
|
178
214
|
your_plan: planState.plan,
|
|
179
|
-
...(Object.keys(dateLimitsInfo).length > 0 && {
|
|
180
|
-
|
|
215
|
+
...(Object.keys(dateLimitsInfo).length > 0 && {
|
|
216
|
+
date_limits: dateLimitsInfo,
|
|
217
|
+
}),
|
|
218
|
+
...(!accessible && {
|
|
219
|
+
required_plan: requiredPlan,
|
|
220
|
+
upgrade_url: "https://cryptoquant.com/pricing",
|
|
221
|
+
}),
|
|
181
222
|
},
|
|
182
223
|
}),
|
|
183
224
|
example_query: buildExampleQuery(endpoint),
|
|
184
225
|
});
|
|
185
226
|
});
|
|
186
227
|
server.tool("query_data", "Query raw data from CryptoQuant API. Workflow: initialize() → discover_endpoints(asset, category) → query_data(endpoint, params). Use endpoint paths and parameter values from discover_endpoints response.", queryDataSchema, async (params) => {
|
|
228
|
+
logger.debug("[query_data] called with endpoint:", params.endpoint);
|
|
229
|
+
logger.debug("[query_data] params:", params.params);
|
|
187
230
|
const authError = requireAuth();
|
|
188
231
|
if (authError)
|
|
189
232
|
return authError;
|
|
@@ -224,7 +267,9 @@ export function registerCoreTools(server) {
|
|
|
224
267
|
return errorResponse(dateValidation.error || "Date range exceeds plan limit", {
|
|
225
268
|
your_plan: planState.plan,
|
|
226
269
|
...(dateValidation.limit && { limit: dateValidation.limit }),
|
|
227
|
-
...(dateValidation.earliest_allowed && {
|
|
270
|
+
...(dateValidation.earliest_allowed && {
|
|
271
|
+
earliest_allowed: dateValidation.earliest_allowed,
|
|
272
|
+
}),
|
|
228
273
|
upgrade_url: "https://cryptoquant.com/pricing",
|
|
229
274
|
suggestion: "Upgrade to Premium for unlimited historical data access",
|
|
230
275
|
});
|
|
@@ -233,7 +278,9 @@ export function registerCoreTools(server) {
|
|
|
233
278
|
}
|
|
234
279
|
const apiKey = state.api_key;
|
|
235
280
|
if (!apiKey) {
|
|
236
|
-
return errorResponse("API key not available", {
|
|
281
|
+
return errorResponse("API key not available", {
|
|
282
|
+
action: "Re-initialize with your API key",
|
|
283
|
+
});
|
|
237
284
|
}
|
|
238
285
|
try {
|
|
239
286
|
const urlParams = new URLSearchParams();
|
|
@@ -248,10 +295,12 @@ export function registerCoreTools(server) {
|
|
|
248
295
|
urlParams.set("source", "mcp");
|
|
249
296
|
const apiUrl = getApiBaseUrl();
|
|
250
297
|
const fullUrl = `${apiUrl}${params.endpoint}?${urlParams.toString()}`;
|
|
298
|
+
logger.debug("[query_data] API request:", fullUrl);
|
|
251
299
|
const response = await fetch(fullUrl, {
|
|
252
300
|
method: "GET",
|
|
253
301
|
headers: { Authorization: `Bearer ${apiKey}` },
|
|
254
302
|
});
|
|
303
|
+
logger.debug("[query_data] API response status:", response.status, response.statusText);
|
|
255
304
|
if (!response.ok) {
|
|
256
305
|
const errorBody = await response.text();
|
|
257
306
|
return errorResponse(`API request failed: ${response.status} ${response.statusText}`, {
|
|
@@ -261,10 +310,12 @@ export function registerCoreTools(server) {
|
|
|
261
310
|
}
|
|
262
311
|
let data;
|
|
263
312
|
try {
|
|
264
|
-
data = await response.json();
|
|
313
|
+
data = (await response.json());
|
|
265
314
|
}
|
|
266
315
|
catch {
|
|
267
|
-
return errorResponse("Failed to parse API response", {
|
|
316
|
+
return errorResponse("Failed to parse API response", {
|
|
317
|
+
endpoint: params.endpoint,
|
|
318
|
+
});
|
|
268
319
|
}
|
|
269
320
|
const rateLimitInfo = buildRateLimitInfo(response);
|
|
270
321
|
return jsonResponse({
|
|
@@ -276,7 +327,9 @@ export function registerCoreTools(server) {
|
|
|
276
327
|
});
|
|
277
328
|
}
|
|
278
329
|
catch (error) {
|
|
279
|
-
return errorResponse(`Network error: ${error}`, {
|
|
330
|
+
return errorResponse(`Network error: ${error}`, {
|
|
331
|
+
endpoint: params.endpoint,
|
|
332
|
+
});
|
|
280
333
|
}
|
|
281
334
|
});
|
|
282
335
|
server.tool("list_assets", "List all supported assets (cryptocurrencies) with their available data categories.", {}, async () => {
|
|
@@ -292,7 +345,12 @@ export function registerCoreTools(server) {
|
|
|
292
345
|
const note = state.authenticated
|
|
293
346
|
? "Discovery data not loaded. Try reset_session() and initialize() again."
|
|
294
347
|
: "Call initialize() to load full endpoint catalog";
|
|
295
|
-
return jsonResponse({
|
|
348
|
+
return jsonResponse({
|
|
349
|
+
success: true,
|
|
350
|
+
authenticated: state.authenticated,
|
|
351
|
+
assets: defaultAssets,
|
|
352
|
+
note,
|
|
353
|
+
});
|
|
296
354
|
}
|
|
297
355
|
const summary = getDiscoverySummary();
|
|
298
356
|
const catalog = getEndpointCatalog();
|
|
@@ -318,15 +376,21 @@ export function registerCoreTools(server) {
|
|
|
318
376
|
});
|
|
319
377
|
});
|
|
320
378
|
server.tool("describe_metric", "Get detailed description for a specific metric. Use only when user asks 'what is X?' or metric is unfamiliar. Returns thresholds, interpretation guidance, and category info.", {
|
|
321
|
-
metric_id: z
|
|
379
|
+
metric_id: z
|
|
380
|
+
.string()
|
|
381
|
+
.describe("The metric ID to describe (e.g., 'mvrv', 'sopr', 'netflow')"),
|
|
322
382
|
}, async (params) => {
|
|
383
|
+
logger.debug("[describe_metric] looking up metric:", params.metric_id);
|
|
323
384
|
try {
|
|
324
385
|
const metrics = parseToonMetrics();
|
|
386
|
+
logger.debug("[describe_metric] loaded", metrics.length, "metrics from local data");
|
|
325
387
|
const searchLower = params.metric_id.toLowerCase();
|
|
326
388
|
const metric = metrics.find((m) => m.id.toLowerCase() === searchLower);
|
|
327
389
|
if (!metric) {
|
|
390
|
+
logger.debug("[describe_metric] metric not found:", params.metric_id);
|
|
328
391
|
const suggestions = metrics
|
|
329
|
-
.filter((m) => m.id.toLowerCase().includes(searchLower) ||
|
|
392
|
+
.filter((m) => m.id.toLowerCase().includes(searchLower) ||
|
|
393
|
+
m.name.toLowerCase().includes(searchLower))
|
|
330
394
|
.slice(0, 5)
|
|
331
395
|
.map((m) => m.id);
|
|
332
396
|
return errorResponse(`Unknown metric: ${params.metric_id}`, {
|
|
@@ -334,6 +398,7 @@ export function registerCoreTools(server) {
|
|
|
334
398
|
tip: "Use discover_endpoints() to find available metrics",
|
|
335
399
|
});
|
|
336
400
|
}
|
|
401
|
+
logger.debug("[describe_metric] found metric:", metric.id, "-", metric.name);
|
|
337
402
|
return jsonResponse({
|
|
338
403
|
success: true,
|
|
339
404
|
metric: {
|
|
@@ -356,11 +421,14 @@ function parseToonMetrics() {
|
|
|
356
421
|
const __filename = fileURLToPath(import.meta.url);
|
|
357
422
|
const __dirname = dirname(__filename);
|
|
358
423
|
const toonPath = join(__dirname, "..", "data", "metrics.toon");
|
|
424
|
+
logger.debug("[parseToonMetrics] loading from:", toonPath);
|
|
359
425
|
let content;
|
|
360
426
|
try {
|
|
361
427
|
content = readFileSync(toonPath, "utf-8");
|
|
428
|
+
logger.debug("[parseToonMetrics] file loaded, size:", content.length, "bytes");
|
|
362
429
|
}
|
|
363
|
-
catch {
|
|
430
|
+
catch (err) {
|
|
431
|
+
logger.debug("[parseToonMetrics] file not found, using built-in metrics");
|
|
364
432
|
return getBuiltInMetrics();
|
|
365
433
|
}
|
|
366
434
|
const metrics = [];
|
|
@@ -369,7 +437,9 @@ function parseToonMetrics() {
|
|
|
369
437
|
let dataStartIndex = -1;
|
|
370
438
|
for (let i = 0; i < lines.length; i++) {
|
|
371
439
|
const line = lines[i].trim();
|
|
372
|
-
if (line.startsWith("metrics[") &&
|
|
440
|
+
if (line.startsWith("metrics[") &&
|
|
441
|
+
line.includes("{") &&
|
|
442
|
+
line.includes("}:")) {
|
|
373
443
|
const match = line.match(/\{([^}]+)\}/);
|
|
374
444
|
if (match) {
|
|
375
445
|
schemaFields = match[1].split(",").map((f) => f.trim());
|
|
@@ -460,14 +530,17 @@ function buildExampleQuery(endpoint) {
|
|
|
460
530
|
params.push(`${required}=${values[0]}`);
|
|
461
531
|
}
|
|
462
532
|
}
|
|
463
|
-
if (endpoint.parameters.window &&
|
|
533
|
+
if (endpoint.parameters.window &&
|
|
534
|
+
!endpoint.required_parameters.includes("window")) {
|
|
464
535
|
params.push(`window=${endpoint.parameters.window[0]}`);
|
|
465
536
|
}
|
|
466
537
|
params.push("limit=100");
|
|
467
|
-
const paramStr = params
|
|
538
|
+
const paramStr = params
|
|
539
|
+
.map((p) => {
|
|
468
540
|
const [key, val] = p.split("=");
|
|
469
541
|
return `"${key}": "${val}"`;
|
|
470
|
-
})
|
|
542
|
+
})
|
|
543
|
+
.join(", ");
|
|
471
544
|
return `query_data(endpoint="${endpoint.path}", params={${paramStr}})`;
|
|
472
545
|
}
|
|
473
546
|
//# sourceMappingURL=core.js.map
|
package/dist/tools/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
* Shared utility functions for CryptoQuant MCP Server
|
|
3
3
|
*/
|
|
4
4
|
import type { UserPlan } from "./plan-limits.js";
|
|
5
|
+
/**
|
|
6
|
+
* Logger with level-based output.
|
|
7
|
+
* - debug: Only shown when DEBUG=true (use for detailed tracing)
|
|
8
|
+
* - info: Always shown (use for important status messages)
|
|
9
|
+
* - warn: Always shown (use for warnings)
|
|
10
|
+
* - error: Always shown (use for errors)
|
|
11
|
+
*/
|
|
12
|
+
export declare const logger: {
|
|
13
|
+
debug: (...args: unknown[]) => void;
|
|
14
|
+
info: (...args: unknown[]) => void;
|
|
15
|
+
warn: (...args: unknown[]) => void;
|
|
16
|
+
error: (...args: unknown[]) => void;
|
|
17
|
+
};
|
|
5
18
|
/**
|
|
6
19
|
* Create a JSON response for MCP tools.
|
|
7
20
|
*/
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAejD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;qBACA,OAAO,EAAE;oBAKV,OAAO,EAAE;oBAGT,OAAO,EAAE;qBAGR,OAAO,EAAE;CAG3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG;IAC3C,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3C,CAEA;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAE/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAe3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared utility functions for CryptoQuant MCP Server
|
|
3
3
|
*/
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// Logger - Debug logging controlled by DEBUG environment variable
|
|
6
|
+
// =============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Check if debug logging is enabled.
|
|
9
|
+
* Set DEBUG=true or DEBUG=1 to enable debug output.
|
|
10
|
+
*/
|
|
11
|
+
function isDebugEnabled() {
|
|
12
|
+
const debug = process.env.DEBUG;
|
|
13
|
+
return debug === "true" || debug === "1";
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Logger with level-based output.
|
|
17
|
+
* - debug: Only shown when DEBUG=true (use for detailed tracing)
|
|
18
|
+
* - info: Always shown (use for important status messages)
|
|
19
|
+
* - warn: Always shown (use for warnings)
|
|
20
|
+
* - error: Always shown (use for errors)
|
|
21
|
+
*/
|
|
22
|
+
export const logger = {
|
|
23
|
+
debug: (...args) => {
|
|
24
|
+
if (isDebugEnabled()) {
|
|
25
|
+
console.error("[DEBUG]", ...args);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
info: (...args) => {
|
|
29
|
+
console.error("[INFO]", ...args);
|
|
30
|
+
},
|
|
31
|
+
warn: (...args) => {
|
|
32
|
+
console.error("[WARN]", ...args);
|
|
33
|
+
},
|
|
34
|
+
error: (...args) => {
|
|
35
|
+
console.error("[ERROR]", ...args);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
4
38
|
/**
|
|
5
39
|
* Create a JSON response for MCP tools.
|
|
6
40
|
*/
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAChC,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IAGxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,KAA+B;IAE/B,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAuB;IACjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,6CAA6C,CAAC;QACvD,KAAK,SAAS;YACZ,OAAO,yBAAyB,CAAC;QACnC,KAAK,cAAc;YACjB,OAAO,6CAA6C,CAAC;QACvD,KAAK,UAAU;YACb,OAAO,gDAAgD,CAAC;QAC1D,KAAK,OAAO;YACV,OAAO,iDAAiD,CAAC;QAC3D;YACE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptoquant_official/mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "CryptoQuant MCP Server - On-chain analytics for Claude and AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,10 +51,12 @@
|
|
|
51
51
|
"zod": "^3.23.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@eslint/js": "^9.39.2",
|
|
54
55
|
"@types/node": "^20.0.0",
|
|
56
|
+
"eslint": "^9.0.0",
|
|
55
57
|
"tsx": "^4.0.0",
|
|
56
58
|
"typescript": "^5.5.0",
|
|
57
|
-
"eslint": "^
|
|
59
|
+
"typescript-eslint": "^8.54.0",
|
|
58
60
|
"vitest": "^2.0.0"
|
|
59
61
|
},
|
|
60
62
|
"engines": {
|