@continuumdao/continuum-node-sdk 1.2.28 → 1.3.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.
Files changed (99) hide show
  1. package/dist/config/mpa-wallet.d.ts +60 -29
  2. package/dist/config/mpa-wallet.d.ts.map +1 -1
  3. package/dist/config/mpa-wallet.js +35 -13
  4. package/dist/config/mpa-wallet.js.map +1 -1
  5. package/dist/config/paths.d.ts +2 -0
  6. package/dist/config/paths.d.ts.map +1 -1
  7. package/dist/config/paths.js +12 -0
  8. package/dist/config/paths.js.map +1 -1
  9. package/dist/core/mpc/mpa-billing-ops.d.ts +29 -0
  10. package/dist/core/mpc/mpa-billing-ops.d.ts.map +1 -0
  11. package/dist/core/mpc/mpa-billing-ops.js +473 -0
  12. package/dist/core/mpc/mpa-billing-ops.js.map +1 -0
  13. package/dist/core/mpc/mpa-top-up.d.ts.map +1 -1
  14. package/dist/core/mpc/mpa-top-up.js +17 -25
  15. package/dist/core/mpc/mpa-top-up.js.map +1 -1
  16. package/dist/core/mpc/register-keygen.d.ts.map +1 -1
  17. package/dist/core/mpc/register-keygen.js +1 -6
  18. package/dist/core/mpc/register-keygen.js.map +1 -1
  19. package/dist/core/mpc/schemas.d.ts +47 -0
  20. package/dist/core/mpc/schemas.d.ts.map +1 -1
  21. package/dist/core/mpc/schemas.js +35 -0
  22. package/dist/core/mpc/schemas.js.map +1 -1
  23. package/dist/core/ta/calculate.d.ts +15 -0
  24. package/dist/core/ta/calculate.d.ts.map +1 -0
  25. package/dist/core/ta/calculate.js +275 -0
  26. package/dist/core/ta/calculate.js.map +1 -0
  27. package/dist/core/ta/catalog.d.ts +26 -0
  28. package/dist/core/ta/catalog.d.ts.map +1 -0
  29. package/dist/core/ta/catalog.js +215 -0
  30. package/dist/core/ta/catalog.js.map +1 -0
  31. package/dist/core/ta/index.d.ts +5 -0
  32. package/dist/core/ta/index.d.ts.map +1 -0
  33. package/dist/core/ta/index.js +5 -0
  34. package/dist/core/ta/index.js.map +1 -0
  35. package/dist/core/ta/normalize-input.d.ts +30 -0
  36. package/dist/core/ta/normalize-input.d.ts.map +1 -0
  37. package/dist/core/ta/normalize-input.js +193 -0
  38. package/dist/core/ta/normalize-input.js.map +1 -0
  39. package/dist/core/ta/schemas.d.ts +151 -0
  40. package/dist/core/ta/schemas.d.ts.map +1 -0
  41. package/dist/core/ta/schemas.js +95 -0
  42. package/dist/core/ta/schemas.js.map +1 -0
  43. package/dist/core/vpn/schemas.d.ts +181 -0
  44. package/dist/core/vpn/schemas.d.ts.map +1 -0
  45. package/dist/core/vpn/schemas.js +112 -0
  46. package/dist/core/vpn/schemas.js.map +1 -0
  47. package/dist/core/vpn/vpn-admin.d.ts +22 -0
  48. package/dist/core/vpn/vpn-admin.d.ts.map +1 -0
  49. package/dist/core/vpn/vpn-admin.js +88 -0
  50. package/dist/core/vpn/vpn-admin.js.map +1 -0
  51. package/dist/core/vpn/vpn-egress.d.ts +30 -0
  52. package/dist/core/vpn/vpn-egress.d.ts.map +1 -0
  53. package/dist/core/vpn/vpn-egress.js +91 -0
  54. package/dist/core/vpn/vpn-egress.js.map +1 -0
  55. package/dist/core/vpn/vpn-files.d.ts +14 -0
  56. package/dist/core/vpn/vpn-files.d.ts.map +1 -0
  57. package/dist/core/vpn/vpn-files.js +32 -0
  58. package/dist/core/vpn/vpn-files.js.map +1 -0
  59. package/dist/core/vpn/vpn-host-binding.d.ts +4 -0
  60. package/dist/core/vpn/vpn-host-binding.d.ts.map +1 -0
  61. package/dist/core/vpn/vpn-host-binding.js +6 -0
  62. package/dist/core/vpn/vpn-host-binding.js.map +1 -0
  63. package/dist/core/vpn/vpn-parse.d.ts +115 -0
  64. package/dist/core/vpn/vpn-parse.d.ts.map +1 -0
  65. package/dist/core/vpn/vpn-parse.js +238 -0
  66. package/dist/core/vpn/vpn-parse.js.map +1 -0
  67. package/dist/core/vpn/vpn-signed.d.ts +13 -0
  68. package/dist/core/vpn/vpn-signed.d.ts.map +1 -0
  69. package/dist/core/vpn/vpn-signed.js +39 -0
  70. package/dist/core/vpn/vpn-signed.js.map +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/mcp/index.d.ts +1 -1
  76. package/dist/mcp/index.d.ts.map +1 -1
  77. package/dist/mcp/index.js +1 -1
  78. package/dist/mcp/index.js.map +1 -1
  79. package/dist/mcp/mpc.d.ts.map +1 -1
  80. package/dist/mcp/mpc.js +33 -2
  81. package/dist/mcp/mpc.js.map +1 -1
  82. package/dist/mcp/register.d.ts +1 -0
  83. package/dist/mcp/register.d.ts.map +1 -1
  84. package/dist/mcp/register.js +4 -0
  85. package/dist/mcp/register.js.map +1 -1
  86. package/dist/mcp/ta/register.d.ts +6 -0
  87. package/dist/mcp/ta/register.d.ts.map +1 -0
  88. package/dist/mcp/ta/register.js +51 -0
  89. package/dist/mcp/ta/register.js.map +1 -0
  90. package/dist/mcp/ta/resources/indicators.md +86 -0
  91. package/dist/mcp/ta-server/index.d.ts +2 -0
  92. package/dist/mcp/ta-server/index.d.ts.map +1 -0
  93. package/dist/mcp/ta-server/index.js +12 -0
  94. package/dist/mcp/ta-server/index.js.map +1 -0
  95. package/dist/mcp/vpn.d.ts +4 -0
  96. package/dist/mcp/vpn.d.ts.map +1 -0
  97. package/dist/mcp/vpn.js +107 -0
  98. package/dist/mcp/vpn.js.map +1 -0
  99. package/package.json +7 -1
@@ -11,6 +11,7 @@ import { registerAddressBookTools } from './registry/address-book.js';
11
11
  import { registerChainRegistryTools } from './registry/networks.js';
12
12
  import { registerTokenRegistryTools } from './registry/tokens.js';
13
13
  import { registerMpcTools } from './mpc.js';
14
+ import { registerVpnTools } from './vpn.js';
14
15
  import { registerAgentMcpServerTools } from './agent-mcp-servers.js';
15
16
  import { registerAgentEnvironmentVariableTools } from './agent-environment-variables.js';
16
17
  import { registerAgentCronJobTools } from './agent-cron-jobs.js';
@@ -28,6 +29,7 @@ export function registerContinuumTools(server, config, defiContext) {
28
29
  registerTokenRegistryTools(server, config);
29
30
  registerChainRegistryTools(server, config);
30
31
  registerMpcTools(server, config);
32
+ registerVpnTools(server, config);
31
33
  registerAgentMcpServerTools(server, config);
32
34
  registerAgentEnvironmentVariableTools(server, config);
33
35
  registerAgentCronJobTools(server, config);
@@ -76,6 +78,7 @@ export function createContinuumMcpServer(config, options = {}) {
76
78
  registerMarkdownResource('token_registry_docs', 'registry/tokens.md', 'Saved token registry tools and workflows.');
77
79
  registerMarkdownResource('chain_registry_docs', 'registry/networks.md', 'Chain registry tools and workflows.');
78
80
  registerMarkdownResource('mpc_docs', 'mpc.md', 'MPC multi-sign requests, Get Sig, Execute, and MPA workflows.');
81
+ registerMarkdownResource('vpn_docs', 'vpn.md', 'Admin VPN and peer egress: enable/disable, client configs, sharing, revoke.');
79
82
  registerMarkdownResource('agent_mcp_servers_docs', 'agent-mcp-servers.md', 'Agent MCP server catalog: list, add, and remove node MCP integrations.');
80
83
  registerMarkdownResource('agent_cron_jobs_docs', 'agent-cron-jobs.md', 'Agent cron jobs: scheduled agent tasks, run history, and lifecycle.');
81
84
  registerMarkdownResource('agent_webhooks_docs', 'agent-webhooks.md', 'Agent inbound webhooks: list, add, activate, and test HTTP hook jobs.');
@@ -96,6 +99,7 @@ export { registerAddressBookTools } from './registry/address-book.js';
96
99
  export { registerTokenRegistryTools } from './registry/tokens.js';
97
100
  export { registerChainRegistryTools } from './registry/networks.js';
98
101
  export { registerMpcTools } from './mpc.js';
102
+ export { registerVpnTools } from './vpn.js';
99
103
  export { registerAgentMcpServerTools } from './agent-mcp-servers.js';
100
104
  export { registerAgentCronJobTools } from './agent-cron-jobs.js';
101
105
  export { registerAgentWebhookTools } from './agent-webhooks.js';
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAElE,OAAO,EACN,mBAAmB,GAEnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,4BAA4B,EAAC,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAC,6BAA6B,EAAC,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,qCAAqC,EAAC,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,yBAAyB,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,QAAQ,IAAI,EAAE,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,sBAAsB,CACrC,MAAiB,EACjB,MAAqB,EACrB,WAAiC;IAEjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,qCAAqC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QACjB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACxD,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,MAAqB,EACrB,UAA2C,EAAE;IAE7C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,mBAAmB,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC3B;QACC,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;KAChB,EACD;QACC,YAAY,EAAE;YACb,KAAK,EAAE;gBACN,WAAW,EAAE,IAAI;aACjB;SACD;KACD,CACD,CAAC;IAEF,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAEnD,SAAS,wBAAwB,CAC/B,IAAY,EACZ,QAAgB,EAChB,WAAmB;QAEnB,MAAM,GAAG,GAAG,UAAU,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,CACrB,IAAI,EACJ,GAAG,EACH,EAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAC,EACxC,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,CAAC,GAAG,EAAE,EACb,mBAAmB,EACnB,QAAQ,CACT,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,eAAe;wBACzB,IAAI;qBACL;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,eAAe,EACf,aAAa,EACb,+CAA+C,CAChD,CAAC;IACF,wBAAwB,CACtB,YAAY,EACZ,UAAU,EACV,2CAA2C,CAC5C,CAAC;IACF,wBAAwB,CACtB,WAAW,EACX,SAAS,EACT,kDAAkD,CACnD,CAAC;IACF,wBAAwB,CACtB,wBAAwB,EACxB,sBAAsB,EACtB,qEAAqE,CACtE,CAAC;IACF,wBAAwB,CACtB,aAAa,EACb,WAAW,EACX,sDAAsD,CACvD,CAAC;IACF,wBAAwB,CACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,4CAA4C,CAC7C,CAAC;IACF,wBAAwB,CACtB,qBAAqB,EACrB,oBAAoB,EACpB,2CAA2C,CAC5C,CAAC;IACF,wBAAwB,CACtB,qBAAqB,EACrB,sBAAsB,EACtB,qCAAqC,CACtC,CAAC;IACF,wBAAwB,CACtB,UAAU,EACV,QAAQ,EACR,+DAA+D,CAChE,CAAC;IACF,wBAAwB,CACtB,UAAU,EACV,QAAQ,EACR,6EAA6E,CAC9E,CAAC;IACF,wBAAwB,CACtB,wBAAwB,EACxB,sBAAsB,EACtB,wEAAwE,CACzE,CAAC;IACF,wBAAwB,CACtB,sBAAsB,EACtB,oBAAoB,EACpB,qEAAqE,CACtE,CAAC;IACF,wBAAwB,CACtB,qBAAqB,EACrB,mBAAmB,EACnB,uEAAuE,CACxE,CAAC;IACF,wBAAwB,CACtB,mBAAmB,EACnB,iBAAiB,EACjB,2EAA2E,CAC5E,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;QACjC,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACrD,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,MAAM,aAAa,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACN,6BAA6B,EAC7B,0BAA0B,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,0BAA0B,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,yBAAyB,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { mcpStructuredContent } from '../tool-utils.js';
3
+ export declare function registerTaTools(server: McpServer): void;
4
+ export declare function createTaMcpServer(): McpServer;
5
+ export { mcpStructuredContent };
6
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/mcp/ta/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAclE,OAAO,EAAC,oBAAoB,EAA4B,MAAM,kBAAkB,CAAC;AAIjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuBvD;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAuC7C;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { promises as fs } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { z } from 'zod';
6
+ import { calculateTechnicalIndicator, listTechnicalIndicators, } from '../../core/ta/calculate.js';
7
+ import { CalculateTechnicalIndicatorInputSchema, CalculateTechnicalIndicatorOutputSchema, ListTechnicalIndicatorsOutputSchema, } from '../../core/ta/schemas.js';
8
+ import { mcpStructuredContent, sdkResultToCallToolResult } from '../tool-utils.js';
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ export function registerTaTools(server) {
11
+ server.registerTool('list_technical_indicators', {
12
+ description: 'List technical indicators available via calculate_technical_indicator: id, category, inputProfile, defaultParams, outputKind. Call this before computing.',
13
+ inputSchema: z.object({}).strict(),
14
+ outputSchema: ListTechnicalIndicatorsOutputSchema,
15
+ }, async () => sdkResultToCallToolResult(listTechnicalIndicators()));
16
+ server.registerTool('calculate_technical_indicator', {
17
+ description: 'Compute one technical indicator from time series or OHLC(V) arrays. Use list_technical_indicators for inputProfile requirements. Supports params (period, stdDev, etc.), options.trimWarmup, options.maxPoints.',
18
+ inputSchema: CalculateTechnicalIndicatorInputSchema,
19
+ outputSchema: CalculateTechnicalIndicatorOutputSchema,
20
+ }, async (input) => sdkResultToCallToolResult(calculateTechnicalIndicator(input)));
21
+ }
22
+ export function createTaMcpServer() {
23
+ const server = new McpServer({
24
+ name: 'continuum-ta-mcp',
25
+ version: '1.0.0',
26
+ }, {
27
+ capabilities: {
28
+ tools: {},
29
+ },
30
+ });
31
+ registerTaTools(server);
32
+ const resourcePath = path.join(__dirname, 'resources', 'indicators.md');
33
+ server.registerResource('technical-indicators', 'docs://technical-indicators', {
34
+ description: 'Technical indicators MCP usage: input profiles, warmup semantics, and examples.',
35
+ mimeType: 'text/markdown',
36
+ }, async () => {
37
+ const text = await fs.readFile(resourcePath, 'utf8');
38
+ return {
39
+ contents: [
40
+ {
41
+ uri: 'docs://technical-indicators',
42
+ mimeType: 'text/markdown',
43
+ text,
44
+ },
45
+ ],
46
+ };
47
+ });
48
+ return server;
49
+ }
50
+ export { mcpStructuredContent };
51
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/mcp/ta/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,QAAQ,IAAI,EAAE,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EACN,2BAA2B,EAC3B,uBAAuB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,sCAAsC,EACtC,uCAAuC,EACvC,mCAAmC,GACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,oBAAoB,EAAE,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AAEjF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CAClB,2BAA2B,EAC3B;QACC,WAAW,EACV,2JAA2J;QAC5J,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAClC,YAAY,EAAE,mCAAmC;KACjD,EACD,KAAK,IAAI,EAAE,CAAC,yBAAyB,CAAC,uBAAuB,EAAE,CAAC,CAChE,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,+BAA+B,EAC/B;QACC,WAAW,EACV,iNAAiN;QAClN,WAAW,EAAE,sCAAsC;QACnD,YAAY,EAAE,uCAAuC;KACrD,EACD,KAAK,EAAE,KAA6D,EAAE,EAAE,CACvE,yBAAyB,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC3B;QACC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;KAChB,EACD;QACC,YAAY,EAAE;YACb,KAAK,EAAE,EAAE;SACT;KACD,CACD,CAAC;IAEF,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACxE,MAAM,CAAC,gBAAgB,CACtB,sBAAsB,EACtB,6BAA6B,EAC7B;QACC,WAAW,EACV,iFAAiF;QAClF,QAAQ,EAAE,eAAe;KACzB,EACD,KAAK,IAAI,EAAE;QACV,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO;YACN,QAAQ,EAAE;gBACT;oBACC,GAAG,EAAE,6BAA6B;oBAClC,QAAQ,EAAE,eAAe;oBACzB,IAAI;iBACJ;aACD;SACD,CAAC;IACH,CAAC,CACD,CAAC;IAEF,OAAO,MAAM,CAAC;AACf,CAAC;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
@@ -0,0 +1,86 @@
1
+ # Technical indicators MCP
2
+
3
+ Stateless tools wrapping [fast-technical-indicators](https://www.npmjs.com/package/fast-technical-indicators). Call **`list_technical_indicators`** first to see required input profiles, then **`calculate_technical_indicator`**.
4
+
5
+ ## Input profiles
6
+
7
+ | Profile | Provide in `input` |
8
+ |---------|-------------------|
9
+ | `close_series` | `values` or `close`, or `candles[]` (close extracted) |
10
+ | `ohl_series` | `high`, `low` |
11
+ | `ohlc_series` | `high`, `low`, `close` |
12
+ | `hlcv_series` | `high`, `low`, `close`, `volume` |
13
+ | `ohlcv_series` | `open`, `high`, `low`, `close`, `volume` |
14
+ | `close_volume_series` | `close` (or `values`), `volume` |
15
+ | `candle_objects` | `candles[]` with `{ open, high, low, close, volume? }` |
16
+ | `range_scalar` | `range: { high, low, trend? }` |
17
+ | `dual_series` | `valuesA`, `valuesB` |
18
+ | `special` | `renko`: `candles[]` + `params.brickSize`; `fibonacciProjection`: `values`/`close` + `swingPoints` |
19
+
20
+ All array fields must have equal length where applicable. Max series length defaults to **50_000** (`TA_MCP_MAX_SERIES_LENGTH`).
21
+
22
+ ## Warmup
23
+
24
+ Many indicators return `undefined` for initial bars until enough history exists. The response includes **`warmupCount`**. Set **`options.trimWarmup: true`** to drop leading empty slots from **`result`**.
25
+
26
+ ## Examples
27
+
28
+ ### SMA (close series)
29
+
30
+ ```json
31
+ {
32
+ "indicator": "sma",
33
+ "params": { "period": 3 },
34
+ "input": { "values": [1, 2, 3, 4, 5] },
35
+ "options": { "trimWarmup": true }
36
+ }
37
+ ```
38
+
39
+ ### Stochastic (OHLC)
40
+
41
+ ```json
42
+ {
43
+ "indicator": "stochastic",
44
+ "params": { "period": 14, "signalPeriod": 3 },
45
+ "input": {
46
+ "high": [48.7, 48.9, 49.0],
47
+ "low": [47.8, 48.1, 48.2],
48
+ "close": [48.2, 48.6, 48.8]
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### MACD (objects output)
54
+
55
+ ```json
56
+ {
57
+ "indicator": "macd",
58
+ "input": { "values": [44, 44.5, 45, 44.8, 45.2] }
59
+ }
60
+ ```
61
+
62
+ ### Fibonacci retracement (levels)
63
+
64
+ ```json
65
+ {
66
+ "indicator": "fibonacci",
67
+ "input": { "range": { "high": 100, "low": 80, "trend": "up" } }
68
+ }
69
+ ```
70
+
71
+ ### Doji pattern (booleans)
72
+
73
+ ```json
74
+ {
75
+ "indicator": "doji",
76
+ "input": {
77
+ "candles": [
78
+ { "open": 10, "high": 11, "low": 9, "close": 10.05 }
79
+ ]
80
+ }
81
+ }
82
+ ```
83
+
84
+ ## Aliases
85
+
86
+ Some indicators accept alternate names (e.g. `ichimokucloud` → `ichimokukinkouhyou`, `keltnerchannels` → `keltnerchannel`, `fibonacciretracement` → `fibonacci`). The response **`indicator`** field always uses the canonical id.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/ta-server/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
+ import { createTaMcpServer } from '../ta/register.js';
3
+ async function main() {
4
+ const server = createTaMcpServer();
5
+ const transport = new StdioServerTransport();
6
+ await server.connect(transport);
7
+ }
8
+ main().catch(error => {
9
+ console.error('Fatal error in ta-mcp main():', error);
10
+ process.exit(1);
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/ta-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { NodeSdkConfig } from '../config/schema.js';
3
+ export declare function registerVpnTools(server: McpServer, config: NodeSdkConfig): void;
4
+ //# sourceMappingURL=vpn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vpn.d.ts","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AA8DvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA8G/E"}
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ import { getVpnStatus, setVpnEnabled, downloadVpnAdminClientConfig } from '../core/vpn/vpn-admin.js';
3
+ import { getVpnEgressStatus, listVpnEgressExits, setVpnEgressSharing, revokeVpnEgressPeer, downloadVpnEgressClientConfig, } from '../core/vpn/vpn-egress.js';
4
+ import { DownloadVpnAdminClientConfigInputSchema, DownloadVpnEgressClientConfigInputSchema, ListVpnEgressExitsOutputSchema, RevokeVpnEgressPeerInputSchema, SetVpnEgressSharingInputSchema, SetVpnEnabledInputSchema, VpnDownloadOutputSchema, VpnEgressStatusSchema, VpnSignedActionOutputSchema, VpnStatusSchema, } from '../core/vpn/schemas.js';
5
+ import { camelToSnake, sdkResultToCallToolResult, wrapSdk } from './tool-utils.js';
6
+ function summarizeVpnStatus(status) {
7
+ return {
8
+ available: status.available,
9
+ installed: status.installed,
10
+ active: status.active,
11
+ listenPort: status.listenPort,
12
+ endpointHost: status.endpointHost,
13
+ profiles: status.profiles,
14
+ profile: status.profile,
15
+ obfuscation: status.obfuscation,
16
+ clientConfigured: status.clientConfigured,
17
+ vpnBillingRegistered: status.vpnBillingRegistered,
18
+ vpnBillingMonthActive: status.vpnBillingMonthActive,
19
+ message: status.message,
20
+ lastError: status.lastError,
21
+ };
22
+ }
23
+ function summarizeVpnEgressStatus(status) {
24
+ return {
25
+ available: status.available,
26
+ active: status.active,
27
+ sharingEnabled: status.sharingEnabled,
28
+ listenPort: status.listenPort,
29
+ endpointHost: status.endpointHost,
30
+ countryCode: status.countryCode,
31
+ defaultRateLimitMbps: status.defaultRateLimitMbps,
32
+ obfuscation: status.obfuscation,
33
+ peerCount: status.peerCount,
34
+ vpnBillingRegistered: status.vpnBillingRegistered,
35
+ vpnBillingMonthActive: status.vpnBillingMonthActive,
36
+ message: status.message,
37
+ lastError: status.lastError,
38
+ };
39
+ }
40
+ export function registerVpnTools(server, config) {
41
+ server.registerTool(camelToSnake('getVpnStatus'), {
42
+ description: 'Read admin WireGuard VPN status for this node (GET /vpn/status): availability, active profile, obfuscation, billing summary.',
43
+ inputSchema: z.object({}).strict(),
44
+ outputSchema: VpnStatusSchema,
45
+ }, async () => {
46
+ const result = await getVpnStatus(config);
47
+ if (!result.ok)
48
+ return sdkResultToCallToolResult(result);
49
+ return sdkResultToCallToolResult({ ok: true, data: summarizeVpnStatus(result.data) });
50
+ });
51
+ server.registerTool(camelToSnake('setVpnEnabled'), {
52
+ description: 'Enable or disable admin WireGuard VPN on this node (POST /vpn/setEnabled, management-signed). When enabling, optional profile (split|full, default full) and obfuscation (none, shadowsocks, wg_obfuscator, lwo, udp2raw). Writes systemd pending file on the host.',
53
+ inputSchema: SetVpnEnabledInputSchema,
54
+ outputSchema: VpnSignedActionOutputSchema,
55
+ }, async (input) => {
56
+ const result = await setVpnEnabled(config, input);
57
+ if (!result.ok)
58
+ return sdkResultToCallToolResult(result);
59
+ return sdkResultToCallToolResult({
60
+ ok: true,
61
+ data: {
62
+ result: result.data.result,
63
+ selectedSigningKey: result.data.selectedSigningKey,
64
+ signingMessage: result.data.signingMessage,
65
+ },
66
+ });
67
+ });
68
+ server.registerTool(camelToSnake('downloadVpnAdminClientConfig'), {
69
+ description: 'Request admin VPN WireGuard client config (POST /vpn/clientConfig, management-signed) and save files under user_folder (default MPC_AUTH_USER_FOLDER=/app/user_folder). Returns saved paths for WireGuard and optional transport proxy config.',
70
+ inputSchema: DownloadVpnAdminClientConfigInputSchema,
71
+ outputSchema: VpnDownloadOutputSchema,
72
+ }, async (input) => wrapSdk(downloadVpnAdminClientConfig(config, input)));
73
+ server.registerTool(camelToSnake('getVpnEgressStatus'), {
74
+ description: 'Read egress VPN provider status on this node (GET /vpn/egress/status): sharing enabled, listen ports, billing summary.',
75
+ inputSchema: z.object({}).strict(),
76
+ outputSchema: VpnEgressStatusSchema,
77
+ }, async () => {
78
+ const result = await getVpnEgressStatus(config);
79
+ if (!result.ok)
80
+ return sdkResultToCallToolResult(result);
81
+ return sdkResultToCallToolResult({
82
+ ok: true,
83
+ data: summarizeVpnEgressStatus(result.data),
84
+ });
85
+ });
86
+ server.registerTool(camelToSnake('listVpnEgressExits'), {
87
+ description: 'List exit routes from other nodes available for consumer egress (GET /vpn/egress/availableExits). Use targetAddress from a row with download_vpn_egress_client_config.',
88
+ inputSchema: z.object({}).strict(),
89
+ outputSchema: ListVpnEgressExitsOutputSchema,
90
+ }, async () => wrapSdk(listVpnEgressExits(config)));
91
+ server.registerTool(camelToSnake('setVpnEgressSharing'), {
92
+ description: 'Apply egress sharing settings on this node (POST /vpn/egress/setSharing, management-signed). Controls whether peers can request egress configs, obfuscation transport, and default rate limit Mbps.',
93
+ inputSchema: SetVpnEgressSharingInputSchema,
94
+ outputSchema: VpnSignedActionOutputSchema,
95
+ }, async (input) => wrapSdk(setVpnEgressSharing(config, input)));
96
+ server.registerTool(camelToSnake('revokeVpnEgressPeer'), {
97
+ description: 'Revoke an issued egress peer by consumer node key (POST /vpn/egress/revokePeer, management-signed).',
98
+ inputSchema: RevokeVpnEgressPeerInputSchema,
99
+ outputSchema: VpnSignedActionOutputSchema,
100
+ }, async (input) => wrapSdk(revokeVpnEgressPeer(config, input)));
101
+ server.registerTool(camelToSnake('downloadVpnEgressClientConfig'), {
102
+ description: 'Request egress client config from a remote exit (POST /vpn/egress/requestClientConfig, management-signed) and save WireGuard (+ transport when obfuscated) files to user_folder. targetAddress is the exit peer HTTP address from list_vpn_egress_exits.',
103
+ inputSchema: DownloadVpnEgressClientConfigInputSchema,
104
+ outputSchema: VpnDownloadOutputSchema,
105
+ }, async (input) => wrapSdk(downloadVpnEgressClientConfig(config, input)));
106
+ }
107
+ //# sourceMappingURL=vpn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vpn.js","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@continuumdao/continuum-node-sdk",
3
- "version": "1.2.28",
3
+ "version": "1.3.0",
4
4
  "description": "JSON SDK for the Continuum node client management API",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/ContinuumDAO/continuum-node-sdk#readme",
@@ -22,15 +22,20 @@
22
22
  },
23
23
  "main": "./dist/index.js",
24
24
  "types": "./dist/index.d.ts",
25
+ "bin": {
26
+ "continuum-ta-mcp": "./dist/mcp/ta-server/index.js"
27
+ },
25
28
  "files": [
26
29
  "dist"
27
30
  ],
28
31
  "scripts": {
29
32
  "prebuild": "bash scripts/prebuild-sync-defi.sh",
30
33
  "build": "tsc",
34
+ "postbuild": "mkdir -p dist/mcp/ta/resources && cp src/mcp/ta/resources/indicators.md dist/mcp/ta/resources/indicators.md",
31
35
  "prepublishOnly": "npm run build",
32
36
  "test": "npm run build && node --experimental-strip-types --test 'test/**/*.test.ts'",
33
37
  "mcp:start": "node dist/mcp/server/index.js",
38
+ "mcp:ta:start": "node dist/mcp/ta-server/index.js",
34
39
  "sync-vendor-defi": "bash scripts/sync-vendor-defi.sh"
35
40
  },
36
41
  "dependencies": {
@@ -38,6 +43,7 @@
38
43
  "@curvefi/api": "^2.69.2",
39
44
  "@modelcontextprotocol/sdk": "^1.29.0",
40
45
  "express": "^5.2.1",
46
+ "fast-technical-indicators": "^1.1.4",
41
47
  "viem": "^2.51.0",
42
48
  "zod": "^4.4.3"
43
49
  },