@continuumdao/continuum-node-sdk 1.2.3 → 1.2.6

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 (104) hide show
  1. package/dist/api/config-update.d.ts +7 -0
  2. package/dist/api/config-update.d.ts.map +1 -0
  3. package/dist/api/config-update.js +24 -0
  4. package/dist/api/config-update.js.map +1 -0
  5. package/dist/api/management-key.d.ts +4 -0
  6. package/dist/api/management-key.d.ts.map +1 -1
  7. package/dist/api/management-key.js +30 -4
  8. package/dist/api/management-key.js.map +1 -1
  9. package/dist/api/management-read.d.ts +28 -0
  10. package/dist/api/management-read.d.ts.map +1 -0
  11. package/dist/api/management-read.js +96 -0
  12. package/dist/api/management-read.js.map +1 -0
  13. package/dist/api/node-read.d.ts +7 -0
  14. package/dist/api/node-read.d.ts.map +1 -0
  15. package/dist/api/node-read.js +9 -0
  16. package/dist/api/node-read.js.map +1 -0
  17. package/dist/config/keys.d.ts +6 -1
  18. package/dist/config/keys.d.ts.map +1 -1
  19. package/dist/config/keys.js +28 -9
  20. package/dist/config/keys.js.map +1 -1
  21. package/dist/config/paths.d.ts +5 -1
  22. package/dist/config/paths.d.ts.map +1 -1
  23. package/dist/config/paths.js +8 -2
  24. package/dist/config/paths.js.map +1 -1
  25. package/dist/core/keygen.d.ts +1 -1
  26. package/dist/core/keygen.d.ts.map +1 -1
  27. package/dist/core/keygen.js +2 -2
  28. package/dist/core/keygen.js.map +1 -1
  29. package/dist/core/management-signer.d.ts +9 -8
  30. package/dist/core/management-signer.d.ts.map +1 -1
  31. package/dist/core/management-signer.js +150 -92
  32. package/dist/core/management-signer.js.map +1 -1
  33. package/dist/core/mpc/management-post-sig.d.ts +7 -0
  34. package/dist/core/mpc/management-post-sig.d.ts.map +1 -1
  35. package/dist/core/mpc/management-post-sig.js +22 -0
  36. package/dist/core/mpc/management-post-sig.js.map +1 -1
  37. package/dist/evm/tx-params.d.ts +1 -0
  38. package/dist/evm/tx-params.d.ts.map +1 -1
  39. package/dist/evm/tx-params.js +15 -0
  40. package/dist/evm/tx-params.js.map +1 -1
  41. package/dist/index.d.ts +8 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/internal/normalize.js +2 -2
  46. package/dist/internal/normalize.js.map +1 -1
  47. package/dist/mcp/defi/catalog-adapter.d.ts +19 -0
  48. package/dist/mcp/defi/catalog-adapter.d.ts.map +1 -0
  49. package/dist/mcp/defi/catalog-adapter.js +66 -0
  50. package/dist/mcp/defi/catalog-adapter.js.map +1 -0
  51. package/dist/mcp/defi/context.d.ts +21 -0
  52. package/dist/mcp/defi/context.d.ts.map +1 -0
  53. package/dist/mcp/defi/context.js +42 -0
  54. package/dist/mcp/defi/context.js.map +1 -0
  55. package/dist/mcp/defi/discovery.d.ts +5 -0
  56. package/dist/mcp/defi/discovery.d.ts.map +1 -0
  57. package/dist/mcp/defi/discovery.js +243 -0
  58. package/dist/mcp/defi/discovery.js.map +1 -0
  59. package/dist/mcp/defi/handler.d.ts +109 -0
  60. package/dist/mcp/defi/handler.d.ts.map +1 -0
  61. package/dist/mcp/defi/handler.js +113 -0
  62. package/dist/mcp/defi/handler.js.map +1 -0
  63. package/dist/mcp/defi/import-map.d.ts +4 -0
  64. package/dist/mcp/defi/import-map.d.ts.map +1 -0
  65. package/dist/mcp/defi/import-map.js +15 -0
  66. package/dist/mcp/defi/import-map.js.map +1 -0
  67. package/dist/mcp/defi/index.d.ts +5 -0
  68. package/dist/mcp/defi/index.d.ts.map +1 -0
  69. package/dist/mcp/defi/index.js +5 -0
  70. package/dist/mcp/defi/index.js.map +1 -0
  71. package/dist/mcp/defi/input-adapter.d.ts +20 -0
  72. package/dist/mcp/defi/input-adapter.d.ts.map +1 -0
  73. package/dist/mcp/defi/input-adapter.js +123 -0
  74. package/dist/mcp/defi/input-adapter.js.map +1 -0
  75. package/dist/mcp/defi/register-protocol-tools.d.ts +7 -0
  76. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -0
  77. package/dist/mcp/defi/register-protocol-tools.js +46 -0
  78. package/dist/mcp/defi/register-protocol-tools.js.map +1 -0
  79. package/dist/mcp/index.d.ts +1 -0
  80. package/dist/mcp/index.d.ts.map +1 -1
  81. package/dist/mcp/index.js +1 -0
  82. package/dist/mcp/index.js.map +1 -1
  83. package/dist/mcp/keygen.js +1 -1
  84. package/dist/mcp/keygen.js.map +1 -1
  85. package/dist/mcp/management-signer.d.ts.map +1 -1
  86. package/dist/mcp/management-signer.js +7 -4
  87. package/dist/mcp/management-signer.js.map +1 -1
  88. package/dist/mcp/register.d.ts +3 -2
  89. package/dist/mcp/register.d.ts.map +1 -1
  90. package/dist/mcp/register.js +38 -3
  91. package/dist/mcp/register.js.map +1 -1
  92. package/dist/mcp/server/config-from-env.d.ts +6 -0
  93. package/dist/mcp/server/config-from-env.d.ts.map +1 -0
  94. package/dist/mcp/server/config-from-env.js +29 -0
  95. package/dist/mcp/server/config-from-env.js.map +1 -0
  96. package/dist/mcp/server/http-transport.d.ts +12 -0
  97. package/dist/mcp/server/http-transport.d.ts.map +1 -0
  98. package/dist/mcp/server/http-transport.js +146 -0
  99. package/dist/mcp/server/http-transport.js.map +1 -0
  100. package/dist/mcp/server/index.d.ts +2 -0
  101. package/dist/mcp/server/index.d.ts.map +1 -0
  102. package/dist/mcp/server/index.js +12 -0
  103. package/dist/mcp/server/index.js.map +1 -0
  104. package/package.json +8 -2
@@ -1,7 +1,8 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { NodeSdkConfig } from '../config/schema.js';
3
- export declare function registerContinuumTools(server: McpServer, config: NodeSdkConfig): void;
4
- export declare function createContinuumMcpServer(config: NodeSdkConfig): McpServer;
3
+ import { DefiProtocolContext, type CreateContinuumMcpServerOptions } from './defi/context.js';
4
+ export declare function registerContinuumTools(server: McpServer, config: NodeSdkConfig, defiContext?: DefiProtocolContext): void;
5
+ export declare function createContinuumMcpServer(config: NodeSdkConfig, options?: CreateContinuumMcpServerOptions): McpServer;
5
6
  export { registerNodeTools } from './node.js';
6
7
  export { registerGroupTools } from './group.js';
7
8
  export { registerKeyGenTools, registerKeygenTools } from './keygen.js';
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAUvD,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CASN;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAwBzE;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,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,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACN,mBAAmB,EACnB,KAAK,+BAA+B,EACpC,MAAM,mBAAmB,CAAC;AAc3B,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,WAAW,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CAaN;AAED,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,+BAAoC,GAC3C,SAAS,CAqGX;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,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,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { DefiProtocolContext, } from './defi/context.js';
3
+ import { registerDefiDiscoveryTools } from './defi/discovery.js';
4
+ import { registerAllDefiProtocolTools } from './defi/register-protocol-tools.js';
2
5
  import { registerGroupTools } from './group.js';
3
6
  import { registerKeyGenTools } from './keygen.js';
4
7
  import { registerManagementSignerTools } from './management-signer.js';
@@ -7,7 +10,9 @@ import { registerAddressBookTools } from './registry/address-book.js';
7
10
  import { registerChainRegistryTools } from './registry/networks.js';
8
11
  import { registerTokenRegistryTools } from './registry/tokens.js';
9
12
  import { registerMpcTools } from './mpc.js';
10
- export function registerContinuumTools(server, config) {
13
+ import { promises as fs } from 'node:fs';
14
+ import path from 'node:path';
15
+ export function registerContinuumTools(server, config, defiContext) {
11
16
  registerNodeTools(server, config);
12
17
  registerGroupTools(server, config);
13
18
  registerManagementSignerTools(server, config);
@@ -16,8 +21,13 @@ export function registerContinuumTools(server, config) {
16
21
  registerTokenRegistryTools(server, config);
17
22
  registerChainRegistryTools(server, config);
18
23
  registerMpcTools(server, config);
24
+ if (defiContext) {
25
+ registerDefiDiscoveryTools(server, config, defiContext);
26
+ registerAllDefiProtocolTools(server, config, defiContext);
27
+ }
19
28
  }
20
- export function createContinuumMcpServer(config) {
29
+ export function createContinuumMcpServer(config, options = {}) {
30
+ const defiContext = options.defiContext ?? new DefiProtocolContext();
21
31
  const server = new McpServer({
22
32
  name: 'continuum-mcp',
23
33
  version: '1.0.0',
@@ -28,7 +38,32 @@ export function createContinuumMcpServer(config) {
28
38
  },
29
39
  },
30
40
  });
31
- registerContinuumTools(server, config);
41
+ registerContinuumTools(server, config, defiContext);
42
+ function registerMarkdownResource(name, filename, description) {
43
+ const uri = `docs://${filename}`;
44
+ server.registerResource(name, uri, { description, mimeType: 'text/markdown' }, async () => {
45
+ const filePath = path.join(process.cwd(), 'src/mcp/resources', filename);
46
+ const text = await fs.readFile(filePath, 'utf8');
47
+ return {
48
+ contents: [
49
+ {
50
+ uri,
51
+ mimeType: 'text/markdown',
52
+ text,
53
+ },
54
+ ],
55
+ };
56
+ });
57
+ }
58
+ registerMarkdownResource('overview_docs', 'overview.md', 'High-level MCP host overview for this server.');
59
+ registerMarkdownResource('group_docs', 'group.md', 'Group creation flow and validation rules.');
60
+ registerMarkdownResource('sign_docs', 'sign.md', 'Modular signing flow and reusable signing tools.');
61
+ registerMarkdownResource('management_signer_docs', 'management-signer.md', 'Management signer lifecycle, MCP tools, and local key requirements.');
62
+ registerMarkdownResource('keygen_docs', 'keygen.md', 'Key generation request, acceptance, and result flow.');
63
+ registerMarkdownResource('address_book_registry_docs', 'registry/address-book.md', 'Address book registry tools and workflows.');
64
+ registerMarkdownResource('token_registry_docs', 'registry/tokens.md', 'Saved token registry tools and workflows.');
65
+ registerMarkdownResource('chain_registry_docs', 'registry/networks.md', 'Chain registry tools and workflows.');
66
+ registerMarkdownResource('mpc_docs', 'mpc.md', 'MPC multi-sign requests, Get Sig, Execute, and MPA workflows.');
32
67
  server.server.oninitialized = () => {
33
68
  void server.server.sendToolListChanged().catch(error => {
34
69
  console.error('Failed to send tools/list_changed notification:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAElE,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAChD,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;AAE1C,MAAM,UAAU,sBAAsB,CACrC,MAAiB,EACjB,MAAqB;IAErB,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,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;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC7D,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,CAAC,CAAC;IAEvC,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;QAClC,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACtD,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AACf,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,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,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type NodeSdkConfig } from '../../config/schema.js';
2
+ /** mpc-config / continuum-mcp-server: keys bind-mounted under /app (added_keys/, bootstrap_key/). */
3
+ export declare const CONTINUUM_MCP_APP_ROOT = "/app";
4
+ /** Build NodeSdkConfig for continuum-mcp-server (Docker WORKDIR /app). */
5
+ export declare function nodeSdkConfigFromEnv(): NodeSdkConfig;
6
+ //# sourceMappingURL=config-from-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-from-env.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/config-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE9E,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,0EAA0E;AAC1E,wBAAgB,oBAAoB,IAAI,aAAa,CAiCpD"}
@@ -0,0 +1,29 @@
1
+ import { parseNodeSdkConfig } from '../../config/schema.js';
2
+ /** mpc-config / continuum-mcp-server: keys bind-mounted under /app (added_keys/, bootstrap_key/). */
3
+ export const CONTINUUM_MCP_APP_ROOT = '/app';
4
+ /** Build NodeSdkConfig for continuum-mcp-server (Docker WORKDIR /app). */
5
+ export function nodeSdkConfigFromEnv() {
6
+ process.env['HOME'] = CONTINUUM_MCP_APP_ROOT;
7
+ const authHost = (process.env['MPC_AUTH_URL'] ?? 'http://app').replace(/\/+$/, '');
8
+ const managementPort = Number(process.env['MPC_AUTH_PORT'] ?? '8080');
9
+ if (!Number.isInteger(managementPort) ||
10
+ managementPort <= 0 ||
11
+ managementPort > 65_535) {
12
+ throw new Error(`Invalid MPC_AUTH_PORT: ${String(process.env['MPC_AUTH_PORT'])}`);
13
+ }
14
+ const baseUrl = /^https?:\/\//i.test(authHost)
15
+ ? authHost
16
+ : `http://${authHost}`;
17
+ return parseNodeSdkConfig({
18
+ node: {
19
+ baseUrl,
20
+ managementPort,
21
+ mpcConfigPath: CONTINUUM_MCP_APP_ROOT,
22
+ },
23
+ signer: {
24
+ defaultKey: process.env['MCP_DEFAULT_SIGNER_KEY']?.trim() || 'bootstrap',
25
+ defaultKeyPath: process.env['MCP_DEFAULT_SIGNER_KEY_PATH']?.trim() ?? null,
26
+ },
27
+ });
28
+ }
29
+ //# sourceMappingURL=config-from-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-from-env.js","sourceRoot":"","sources":["../../../src/mcp/server/config-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAqB,MAAM,wBAAwB,CAAC;AAE9E,qGAAqG;AACrG,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB;IACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC;IAE7C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,OAAO,CACrE,MAAM,EACN,EAAE,CACF,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,CAAC;IACtE,IACC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;QACjC,cAAc,IAAI,CAAC;QACnB,cAAc,GAAG,MAAM,EACtB,CAAC;QACF,MAAM,IAAI,KAAK,CACd,0BAA0B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAChE,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC;IAExB,OAAO,kBAAkB,CAAC;QACzB,IAAI,EAAE;YACL,OAAO;YACP,cAAc;YACd,aAAa,EAAE,sBAAsB;SACrC;QACD,MAAM,EAAE;YACP,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,WAAW;YACxE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI;SAC1E;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export type CreateMcpServer = () => McpServer;
3
+ export type HttpTransportOptions = {
4
+ host?: string;
5
+ port?: number;
6
+ path?: string;
7
+ };
8
+ export declare function startHttpTransportServer(createServer: CreateMcpServer, options?: HttpTransportOptions): Promise<{
9
+ url: URL;
10
+ close: () => Promise<void>;
11
+ }>;
12
+ //# sourceMappingURL=http-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAMvE,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAkBF,wBAAsB,wBAAwB,CAC7C,YAAY,EAAE,eAAe,EAC7B,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC,CAyJjD"}
@@ -0,0 +1,146 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { createMcpExpressApp } from '@modelcontextprotocol/sdk/server/express.js';
3
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
4
+ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
5
+ function resolveHttpOptions(options = {}) {
6
+ const host = options.host ?? process.env['MCP_HTTP_HOST'] ?? '127.0.0.1';
7
+ const port = Number(process.env['MCP_HTTP_PORT'] ?? process.env['MCP_PORT'] ?? '3000');
8
+ const path = options.path ?? process.env['MCP_HTTP_PATH'] ?? '/mcp';
9
+ if (!Number.isInteger(port) || port <= 0 || port > 65_535) {
10
+ throw new Error(`Invalid MCP HTTP port: ${String(port)}`);
11
+ }
12
+ return { host, port, path };
13
+ }
14
+ export async function startHttpTransportServer(createServer, options = {}) {
15
+ const { host, port, path } = resolveHttpOptions(options);
16
+ const app = createMcpExpressApp({ host });
17
+ const transports = {};
18
+ const mcpPostHandler = async (req, res) => {
19
+ const sessionIdHeader = req.headers['mcp-session-id'];
20
+ const sessionId = Array.isArray(sessionIdHeader)
21
+ ? sessionIdHeader[0]
22
+ : sessionIdHeader;
23
+ try {
24
+ let transport;
25
+ if (sessionId && transports[sessionId]) {
26
+ transport = transports[sessionId];
27
+ }
28
+ else if (!sessionId && isInitializeRequest(req.body)) {
29
+ transport = new StreamableHTTPServerTransport({
30
+ sessionIdGenerator: () => randomUUID(),
31
+ onsessioninitialized: initializedSessionId => {
32
+ transports[initializedSessionId] = transport;
33
+ },
34
+ });
35
+ transport.onclose = () => {
36
+ const sid = transport?.sessionId;
37
+ if (sid && transports[sid]) {
38
+ delete transports[sid];
39
+ }
40
+ };
41
+ const server = createServer();
42
+ await server.connect(transport);
43
+ await transport.handleRequest(req, res, req.body);
44
+ return;
45
+ }
46
+ else {
47
+ res.status(400).json({
48
+ jsonrpc: '2.0',
49
+ error: {
50
+ code: -32_000,
51
+ message: 'Bad Request: No valid session ID provided',
52
+ },
53
+ id: null,
54
+ });
55
+ return;
56
+ }
57
+ await transport.handleRequest(req, res, req.body);
58
+ }
59
+ catch (error) {
60
+ console.error('Error handling MCP request:', error);
61
+ if (!res.headersSent) {
62
+ res.status(500).json({
63
+ jsonrpc: '2.0',
64
+ error: {
65
+ code: -32_603,
66
+ message: 'Internal server error',
67
+ },
68
+ id: null,
69
+ });
70
+ }
71
+ }
72
+ };
73
+ const mcpGetHandler = async (req, res) => {
74
+ const sessionIdHeader = req.headers['mcp-session-id'];
75
+ const sessionId = Array.isArray(sessionIdHeader)
76
+ ? sessionIdHeader[0]
77
+ : sessionIdHeader;
78
+ if (!sessionId || !transports[sessionId]) {
79
+ res.status(400).send('Invalid or missing session ID');
80
+ return;
81
+ }
82
+ await transports[sessionId].handleRequest(req, res);
83
+ };
84
+ const mcpDeleteHandler = async (req, res) => {
85
+ const sessionIdHeader = req.headers['mcp-session-id'];
86
+ const sessionId = Array.isArray(sessionIdHeader)
87
+ ? sessionIdHeader[0]
88
+ : sessionIdHeader;
89
+ if (!sessionId || !transports[sessionId]) {
90
+ res.status(400).send('Invalid or missing session ID');
91
+ return;
92
+ }
93
+ try {
94
+ await transports[sessionId].handleRequest(req, res);
95
+ }
96
+ catch (error) {
97
+ console.error('Error handling session termination:', error);
98
+ if (!res.headersSent) {
99
+ res.status(500).send('Error processing session termination');
100
+ }
101
+ }
102
+ };
103
+ app.post(path, mcpPostHandler);
104
+ app.get(path, mcpGetHandler);
105
+ app.delete(path, mcpDeleteHandler);
106
+ const url = new URL(`http://${host}:${port}${path}`);
107
+ const httpServer = await new Promise((resolve, reject) => {
108
+ const listener = app.listen(port, host, (error) => {
109
+ if (error) {
110
+ reject(error);
111
+ return;
112
+ }
113
+ resolve(listener);
114
+ });
115
+ });
116
+ console.error(`Continuum MCP Server listening on ${url.toString()}`);
117
+ const close = async () => {
118
+ for (const activeSessionId of Object.keys(transports)) {
119
+ try {
120
+ await transports[activeSessionId].close();
121
+ delete transports[activeSessionId];
122
+ }
123
+ catch (error) {
124
+ console.error(`Error closing transport for session ${activeSessionId}:`, error);
125
+ }
126
+ }
127
+ await new Promise((resolve, reject) => {
128
+ httpServer.close(error => {
129
+ if (error) {
130
+ reject(error);
131
+ return;
132
+ }
133
+ resolve();
134
+ });
135
+ });
136
+ };
137
+ const shutdown = () => {
138
+ void close().finally(() => {
139
+ process.exit(0);
140
+ });
141
+ };
142
+ process.on('SIGINT', shutdown);
143
+ process.on('SIGTERM', shutdown);
144
+ return { url, close };
145
+ }
146
+ //# sourceMappingURL=http-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"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"}
@@ -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/server/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { createContinuumMcpServer } from '../register.js';
2
+ import { nodeSdkConfigFromEnv } from './config-from-env.js';
3
+ import { startHttpTransportServer } from './http-transport.js';
4
+ async function main() {
5
+ const config = nodeSdkConfigFromEnv();
6
+ await startHttpTransportServer(() => createContinuumMcpServer(config));
7
+ }
8
+ main().catch(error => {
9
+ console.error('Fatal error in 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/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@continuumdao/continuum-node-sdk",
3
- "version": "1.2.3",
3
+ "version": "1.2.6",
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",
@@ -28,14 +28,20 @@
28
28
  "scripts": {
29
29
  "build": "tsc",
30
30
  "prepublishOnly": "npm run build",
31
- "test": "npm run build"
31
+ "test": "npm run build",
32
+ "mcp:start": "node dist/mcp/server/index.js",
33
+ "sync-vendor-defi": "bash scripts/sync-vendor-defi.sh"
32
34
  },
33
35
  "dependencies": {
36
+ "@continuumdao/ctm-mpc-defi": "file:vendor/ctm-mpc-defi",
37
+ "@curvefi/api": "^2.68.0",
34
38
  "@modelcontextprotocol/sdk": "^1.29.0",
39
+ "express": "^5.2.1",
35
40
  "viem": "^2.51.0",
36
41
  "zod": "^4.4.3"
37
42
  },
38
43
  "devDependencies": {
44
+ "@types/express": "^5.0.0",
39
45
  "@types/node": "^22.15.3",
40
46
  "typescript": "^5.8.3"
41
47
  },