@cryptoquant_official/mcp 0.0.4 → 0.0.7

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.
Files changed (124) hide show
  1. package/README.md +308 -39
  2. package/dist/ai-sdk/execute.d.ts +35 -0
  3. package/dist/ai-sdk/execute.d.ts.map +1 -0
  4. package/dist/ai-sdk/execute.js +531 -0
  5. package/dist/ai-sdk/execute.js.map +1 -0
  6. package/dist/ai-sdk/index.d.ts +51 -0
  7. package/dist/ai-sdk/index.d.ts.map +1 -0
  8. package/dist/ai-sdk/index.js +54 -0
  9. package/dist/ai-sdk/index.js.map +1 -0
  10. package/dist/ai-sdk/prompts.d.ts +34 -0
  11. package/dist/ai-sdk/prompts.d.ts.map +1 -0
  12. package/dist/ai-sdk/prompts.js +74 -0
  13. package/dist/ai-sdk/prompts.js.map +1 -0
  14. package/dist/ai-sdk/schemas.d.ts +66 -0
  15. package/dist/ai-sdk/schemas.d.ts.map +1 -0
  16. package/dist/ai-sdk/schemas.js +136 -0
  17. package/dist/ai-sdk/schemas.js.map +1 -0
  18. package/dist/ai-sdk/tools.d.ts +165 -0
  19. package/dist/ai-sdk/tools.d.ts.map +1 -0
  20. package/dist/ai-sdk/tools.js +152 -0
  21. package/dist/ai-sdk/tools.js.map +1 -0
  22. package/dist/ai-sdk/types.d.ts +149 -0
  23. package/dist/ai-sdk/types.d.ts.map +1 -0
  24. package/dist/ai-sdk/types.js +5 -0
  25. package/dist/ai-sdk/types.js.map +1 -0
  26. package/dist/core/auth/storage.d.ts.map +1 -0
  27. package/dist/core/auth/storage.js.map +1 -0
  28. package/dist/core/cache/storage.d.ts +110 -0
  29. package/dist/core/cache/storage.d.ts.map +1 -0
  30. package/dist/core/cache/storage.js +356 -0
  31. package/dist/core/cache/storage.js.map +1 -0
  32. package/dist/core/cache/summary.d.ts.map +1 -0
  33. package/dist/core/cache/summary.js.map +1 -0
  34. package/dist/{cache → core/cache}/types.d.ts +25 -0
  35. package/dist/{cache → core/cache}/types.d.ts.map +1 -1
  36. package/dist/core/cache/types.js.map +1 -0
  37. package/dist/core/config.d.ts.map +1 -0
  38. package/dist/core/config.js.map +1 -0
  39. package/dist/core/discovery.d.ts.map +1 -0
  40. package/dist/{discovery.js → core/discovery.js} +14 -2
  41. package/dist/core/discovery.js.map +1 -0
  42. package/dist/core/index.d.ts +16 -0
  43. package/dist/core/index.d.ts.map +1 -0
  44. package/dist/core/index.js +19 -0
  45. package/dist/core/index.js.map +1 -0
  46. package/dist/{permissions.d.ts → core/permissions.d.ts} +2 -2
  47. package/dist/core/permissions.d.ts.map +1 -0
  48. package/dist/{permissions.js → core/permissions.js} +38 -14
  49. package/dist/core/permissions.js.map +1 -0
  50. package/dist/core/plan-limits.d.ts.map +1 -0
  51. package/dist/core/plan-limits.js.map +1 -0
  52. package/dist/{utils.d.ts → core/utils.d.ts} +13 -0
  53. package/dist/core/utils.d.ts.map +1 -0
  54. package/dist/{utils.js → core/utils.js} +34 -0
  55. package/dist/core/utils.js.map +1 -0
  56. package/dist/data/metrics.toon +8 -5
  57. package/dist/http/chat-proxy.d.ts +32 -0
  58. package/dist/http/chat-proxy.d.ts.map +1 -0
  59. package/dist/http/chat-proxy.js +305 -0
  60. package/dist/http/chat-proxy.js.map +1 -0
  61. package/dist/http/index.d.ts +16 -0
  62. package/dist/http/index.d.ts.map +1 -0
  63. package/dist/http/index.js +26 -0
  64. package/dist/http/index.js.map +1 -0
  65. package/dist/http/server.d.ts +20 -0
  66. package/dist/http/server.d.ts.map +1 -0
  67. package/dist/http/server.js +204 -0
  68. package/dist/http/server.js.map +1 -0
  69. package/dist/index.d.ts +8 -16
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +19 -29
  72. package/dist/index.js.map +1 -1
  73. package/dist/mcp/index.d.ts +6 -0
  74. package/dist/mcp/index.d.ts.map +1 -0
  75. package/dist/mcp/index.js +6 -0
  76. package/dist/mcp/index.js.map +1 -0
  77. package/dist/mcp/tools/auth.d.ts +3 -0
  78. package/dist/mcp/tools/auth.d.ts.map +1 -0
  79. package/dist/{tools → mcp/tools}/auth.js +38 -12
  80. package/dist/mcp/tools/auth.js.map +1 -0
  81. package/dist/mcp/tools/core.d.ts +3 -0
  82. package/dist/mcp/tools/core.d.ts.map +1 -0
  83. package/dist/{tools → mcp/tools}/core.js +122 -162
  84. package/dist/mcp/tools/core.js.map +1 -0
  85. package/dist/shared/metrics-data.generated.d.ts +176 -0
  86. package/dist/shared/metrics-data.generated.d.ts.map +1 -0
  87. package/dist/shared/metrics-data.generated.js +3077 -0
  88. package/dist/shared/metrics-data.generated.js.map +1 -0
  89. package/package.json +44 -5
  90. package/dist/auth/storage.d.ts.map +0 -1
  91. package/dist/auth/storage.js.map +0 -1
  92. package/dist/cache/storage.d.ts +0 -47
  93. package/dist/cache/storage.d.ts.map +0 -1
  94. package/dist/cache/storage.js +0 -140
  95. package/dist/cache/storage.js.map +0 -1
  96. package/dist/cache/summary.d.ts.map +0 -1
  97. package/dist/cache/summary.js.map +0 -1
  98. package/dist/cache/types.js.map +0 -1
  99. package/dist/config.d.ts.map +0 -1
  100. package/dist/config.js.map +0 -1
  101. package/dist/discovery.d.ts.map +0 -1
  102. package/dist/discovery.js.map +0 -1
  103. package/dist/permissions.d.ts.map +0 -1
  104. package/dist/permissions.js.map +0 -1
  105. package/dist/plan-limits.d.ts.map +0 -1
  106. package/dist/plan-limits.js.map +0 -1
  107. package/dist/tools/auth.d.ts +0 -3
  108. package/dist/tools/auth.d.ts.map +0 -1
  109. package/dist/tools/auth.js.map +0 -1
  110. package/dist/tools/core.d.ts +0 -3
  111. package/dist/tools/core.d.ts.map +0 -1
  112. package/dist/tools/core.js.map +0 -1
  113. package/dist/utils.d.ts.map +0 -1
  114. package/dist/utils.js.map +0 -1
  115. /package/dist/{auth → core/auth}/storage.d.ts +0 -0
  116. /package/dist/{auth → core/auth}/storage.js +0 -0
  117. /package/dist/{cache → core/cache}/summary.d.ts +0 -0
  118. /package/dist/{cache → core/cache}/summary.js +0 -0
  119. /package/dist/{cache → core/cache}/types.js +0 -0
  120. /package/dist/{config.d.ts → core/config.d.ts} +0 -0
  121. /package/dist/{config.js → core/config.js} +0 -0
  122. /package/dist/{discovery.d.ts → core/discovery.d.ts} +0 -0
  123. /package/dist/{plan-limits.d.ts → core/plan-limits.d.ts} +0 -0
  124. /package/dist/{plan-limits.js → core/plan-limits.js} +0 -0
package/dist/index.js CHANGED
@@ -1,46 +1,36 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * MCP Server Entry Point (stdio mode)
4
+ *
5
+ * For HTTP mode, use:
6
+ * - MCP_TRANSPORT=http node dist/index.js
7
+ * - Or import from '@cryptoquant_official/mcp/http'
8
+ */
2
9
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
10
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { registerAuthTools } from "./tools/auth.js";
5
- import { registerCoreTools } from "./tools/core.js";
6
- export { fetchDiscoveryEndpoints, getEndpointCatalog, isDiscoveryLoaded, searchEndpoints, getEndpointByPath, validateEndpointParams, getParameterOptions, getDiscoverySummary, getAssetCategoryMap, resetDiscovery, } from "./discovery.js";
7
- export { initializePermissions, getPermissionState, setGuestMode, resetPermissions, clearDiscoveryCache, getDiscoveryCachePath, getCachedDiscovery, } from "./permissions.js";
8
- export { fetchPlanLimits, getPlanLimitsState, getPlanLimit, getEndpointResultLimit, getEndpointWindowLimits, hasEndpointAccess, parseDurationToDate, getEarliestAllowedDate, validateDateRange, getRequiredPlan, getApiRateLimit, getStaticEndpoints, resetPlanLimits, loadPlanLimitsFromCache, getAccessibleEndpointsSummary, detectPlanFromLimits, } from "./plan-limits.js";
9
- export { CACHE_VERSION, CACHE_TTL_DAYS } from "./cache/types.js";
10
- export { getCacheFilePath, isCacheValid, readCache, writeCache, invalidateCache, clearAllCaches, getCacheAgeDays, getCacheStatus, getCachePath, } from "./cache/storage.js";
11
- export { generateSummary, extractRawResponse } from "./cache/summary.js";
12
- export { getStoredApiKey, saveApiKey, updateValidatedAt, clearCredentials, getCredentialsPath, } from "./auth/storage.js";
13
- // =============================================================================
14
- // Utility Exports
15
- // =============================================================================
16
- export { jsonResponse, errorResponse, getPlanNote, capitalizeFirst } from "./utils.js";
17
- // =============================================================================
18
- // Config Exports
19
- // =============================================================================
20
- export { getApiUrl, getApiBaseUrl } from "./config.js";
21
- // =============================================================================
22
- // Tool Registration Exports
23
- // =============================================================================
24
- export { registerAuthTools } from "./tools/auth.js";
25
- export { registerCoreTools } from "./tools/core.js";
26
- // =============================================================================
27
- // MCP Server Startup
28
- // =============================================================================
11
+ import { registerAuthTools, registerCoreTools } from "./mcp/index.js";
12
+ import { logger } from "./core/utils.js";
13
+ import { main as httpMain } from "./http/index.js";
29
14
  async function main() {
15
+ // Check if HTTP mode is requested
16
+ const mode = process.env.MCP_TRANSPORT?.toLowerCase();
17
+ if (mode === "http" || mode === "sse") {
18
+ await httpMain();
19
+ return;
20
+ }
21
+ // Start stdio server for CLI/desktop applications
30
22
  const server = new McpServer({
31
23
  name: "cryptoquant",
32
24
  version: "1.0.0",
33
25
  });
34
- // Register tool categories
35
26
  registerAuthTools(server);
36
27
  registerCoreTools(server);
37
- // Start server with stdio transport
38
28
  const transport = new StdioServerTransport();
39
29
  await server.connect(transport);
40
- console.error("CryptoQuant MCP Server running on stdio");
30
+ logger.info("CryptoQuant MCP Server running on stdio");
41
31
  }
42
32
  main().catch((error) => {
43
- console.error("Failed to start server:", error);
33
+ logger.error("Failed to start server:", error);
44
34
  process.exit(1);
45
35
  });
46
36
  //# 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;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAcpD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,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,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEvF,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,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEnD,KAAK,UAAU,IAAI;IACjB,kCAAkC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;IACtD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MCP module - Model Context Protocol tools and server
3
+ */
4
+ export { registerAuthTools } from "./tools/auth.js";
5
+ export { registerCoreTools } from "./tools/core.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MCP module - Model Context Protocol tools and server
3
+ */
4
+ export { registerAuthTools } from "./tools/auth.js";
5
+ export { registerCoreTools } from "./tools/core.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAuthTools(server: McpServer): void;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqDzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmMzD"}
@@ -1,26 +1,39 @@
1
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 } from "../utils.js";
2
+ import { initializePermissions, resetPermissions, getDiscoverySummary, getPermissionState, clearDiscoveryCache, getDiscoveryCachePath, getCachedDiscovery, } from "../../core/permissions.js";
3
+ import { getStorageType } from "../../core/cache/storage.js";
4
+ import { getAssetCategoryMap } from "../../core/discovery.js";
5
+ import { getStoredApiKey, saveApiKey, clearCredentials, getCredentialsPath, updateValidatedAt, } from "../../core/auth/storage.js";
6
+ import { getPlanLimitsState, getAccessibleEndpointsSummary } from "../../core/plan-limits.js";
7
+ import { getApiUrl } from "../../core/config.js";
8
+ import { jsonResponse, getPlanNote, logger } from "../../core/utils.js";
8
9
  const initializeSchema = {
9
10
  api_key: z.string().optional().describe("API key (optional if CRYPTOQUANT_API_KEY env var is set)"),
10
11
  };
11
12
  function resolveApiKey(paramKey) {
12
- if (paramKey)
13
+ if (paramKey) {
14
+ logger.debug("[resolveApiKey] using key from parameter");
13
15
  return paramKey;
16
+ }
14
17
  const envKey = process.env.CRYPTOQUANT_API_KEY;
15
18
  const isEnvKeyValid = envKey && envKey.trim() && !envKey.startsWith("${");
16
- if (isEnvKeyValid)
19
+ if (isEnvKeyValid) {
20
+ logger.debug("[resolveApiKey] using key from environment variable");
17
21
  return envKey;
18
- return getStoredApiKey() ?? undefined;
22
+ }
23
+ const storedKey = getStoredApiKey();
24
+ if (storedKey) {
25
+ logger.debug("[resolveApiKey] using key from stored credentials");
26
+ return storedKey;
27
+ }
28
+ logger.debug("[resolveApiKey] no API key found");
29
+ return undefined;
19
30
  }
20
31
  export function registerAuthTools(server) {
21
32
  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
- let apiKey = resolveApiKey(params.api_key);
33
+ logger.debug("[initialize] starting initialization");
34
+ const apiKey = resolveApiKey(params.api_key);
23
35
  if (!apiKey) {
36
+ logger.debug("[initialize] no API key available");
24
37
  return jsonResponse({
25
38
  status: "api_key_required",
26
39
  message: "API key not found. Please configure using one of these methods:",
@@ -48,7 +61,14 @@ export function registerAuthTools(server) {
48
61
  });
49
62
  }
50
63
  const apiUrl = getApiUrl();
64
+ logger.debug("[initialize] using API URL:", apiUrl);
51
65
  const result = await initializePermissions(apiKey, apiUrl);
66
+ logger.debug("[initialize] permissions result:", {
67
+ success: result.success,
68
+ from_cache: result.from_cache,
69
+ cache_status: result.cache_status,
70
+ error: result.error,
71
+ });
52
72
  if (!result.success) {
53
73
  return jsonResponse({
54
74
  success: false,
@@ -147,6 +167,10 @@ export function registerAuthTools(server) {
147
167
  .optional()
148
168
  .describe("If true, also clears discovery cache (forces fresh API fetch on next initialize)"),
149
169
  }, async (params) => {
170
+ logger.debug("[reset_session] called with:", {
171
+ clear_stored: params.clear_stored,
172
+ clear_cache: params.clear_cache,
173
+ });
150
174
  resetPermissions();
151
175
  const apiUrl = getApiUrl();
152
176
  const clearedItems = ["session"];
@@ -154,13 +178,15 @@ export function registerAuthTools(server) {
154
178
  clearCredentials();
155
179
  clearedItems.push("credentials");
156
180
  }
157
- if (params.clear_cache) {
158
- clearDiscoveryCache(apiUrl);
181
+ // Skip cache clearing in redis mode (web server) - use Redis CLI for that
182
+ if (params.clear_cache && getStorageType() === "file") {
183
+ await clearDiscoveryCache(apiUrl);
159
184
  clearedItems.push("discovery cache");
160
185
  }
161
186
  const message = clearedItems.length === 1
162
187
  ? "Session cleared (credentials and cache preserved)"
163
188
  : `Cleared: ${clearedItems.join(", ")}`;
189
+ logger.debug("[reset_session] cleared:", clearedItems.join(", "));
164
190
  return jsonResponse({
165
191
  success: true,
166
192
  message,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/mcp/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,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;CACpG,CAAC;AAIF,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,mTAAmT,EACnT,gBAAgB,EAChB,KAAK,EAAE,MAAwB,EAAE,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClD,OAAO,YAAY,CAAC;gBAClB,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,iEAAiE;gBAC1E,aAAa,EAAE;oBACb;wBACE,MAAM,EAAE,oCAAoC;wBAC5C,WAAW,EAAE,8CAA8C;wBAC3D,OAAO,EAAE;4BACP,UAAU,EAAE;gCACV,WAAW,EAAE;oCACX,OAAO,EAAE,KAAK;oCACd,IAAI,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;oCACzC,GAAG,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE;iCAC7C;6BACF;yBACF;qBACF;oBACD;wBACE,MAAM,EAAE,kBAAkB;wBAC1B,WAAW,EAAE,yCAAyC;wBACtD,OAAO,EAAE,oCAAoC;qBAC9C;iBACF;gBACD,WAAW,EAAE,sCAAsC;aACpD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;YAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;gBAClB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE;oBACJ,SAAS,EAAE,4DAA4D;oBACvE,KAAK,EAAE,6DAA6D;iBACrE;aACF,CAAC,CAAC;QACL,CAAC;QAED,iDAAiD;QACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,wDAAwD;YACxD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAC5C,wDAAwD;YACxD,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,MAAM,cAAc,GAAG,SAAS,EAAE,eAAe,IAAI,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;QACnG,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;QAExE,uCAAuC;QACvC,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI;gBAC5B,UAAU,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE;aAC/E,CAAC;SACH,CAAC;QAEF,qCAAqC;QACrC,MAAM,SAAS,GAA4B;YACzC,eAAe,EAAE,SAAS,EAAE,eAAe,IAAI,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;YAC5F,UAAU,EAAE,iBAAiB,CAAC,KAAK;YACnC,IAAI,EAAE,qDAAqD;SAC5D,CAAC;QAEF,sDAAsD;QACtD,IAAI,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,MAAM,GAA8D,EAAE,CAAC;YAC7E,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;oBACvB,SAAS,EAAE,SAAS,CAAC,cAAc;oBACnC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;iBACxC,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,6BAA6B;YAC7B,MAAM,MAAM,GAA8D,EAAE,CAAC;YAC7E,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;oBACvB,SAAS,EAAE,SAAS,CAAC,KAAK;oBAC1B,UAAU,EAAE,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;iBAC3D,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,kBAAkB,EAAE,SAAS,CAAC,MAAM;YACpC,oBAAoB,EAAE,iBAAiB,CAAC,KAAK;YAC7C,0EAA0E;YAC1E,GAAG,CAAC,iBAAiB,CAAC,SAAS,IAAI,EAAE,eAAe,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACpF,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YACtF,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;SAClC,CAAC;QAEF,OAAO,YAAY,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;gBAClB,CAAC,CAAC;oBACE,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3C,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnD,gBAAgB,EAAE,eAAe;oBACjC,UAAU,EAAE,SAAS,CAAC,UAAU;iBACjC;gBACH,CAAC,CAAC,IAAI;YACR,SAAS,EAAE,QAAQ;YACnB,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,sBAAsB,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;SAC3F,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,kRAAkR,EAClR;QACE,YAAY,EAAE,CAAC;aACZ,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,yEAAyE,CAAC;QACtF,WAAW,EAAE,CAAC;aACX,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;KAChG,EACD,KAAK,EAAE,MAAyD,EAAE,EAAE;QAClE,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QAEH,gBAAgB,EAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAa,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,gBAAgB,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,WAAW,IAAI,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;YACtD,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAE5C,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,OAAO,YAAY,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,CAAC;YACtE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;SACzE,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerCoreTools(server: McpServer): void;
3
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqIzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoZzD"}