@continuumdao/continuum-node-sdk 1.3.39 → 1.3.41

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 (258) hide show
  1. package/dist/agent-host-catalog.json +1318 -52
  2. package/dist/core/agent/user-folder.d.ts +22 -0
  3. package/dist/core/agent/user-folder.d.ts.map +1 -0
  4. package/dist/core/agent/user-folder.js +82 -0
  5. package/dist/core/agent/user-folder.js.map +1 -0
  6. package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
  7. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
  8. package/dist/core/chart/analysis/analyze-tools.js +6 -1
  9. package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
  10. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
  11. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
  12. package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
  13. package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
  14. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
  15. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
  16. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
  17. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
  18. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
  19. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
  20. package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
  21. package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
  22. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
  23. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
  24. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
  25. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
  26. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
  27. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
  28. package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
  29. package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
  30. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
  31. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
  32. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
  33. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
  34. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  35. package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
  36. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  37. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
  38. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
  39. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
  40. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
  41. package/dist/core/chart/ohlcv-session-store.d.ts +2 -0
  42. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
  43. package/dist/core/chart/ohlcv-session-store.js +66 -9
  44. package/dist/core/chart/ohlcv-session-store.js.map +1 -1
  45. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  46. package/dist/core/chart/overlay-schemas.js +2 -0
  47. package/dist/core/chart/overlay-schemas.js.map +1 -1
  48. package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
  49. package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
  50. package/dist/core/mpc/forge-dry-run-build.js +200 -0
  51. package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
  52. package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
  53. package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
  54. package/dist/core/mpc/forge-dry-run-request.js +144 -0
  55. package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
  56. package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
  57. package/dist/core/mpc/join-multisign-request.js +41 -1
  58. package/dist/core/mpc/join-multisign-request.js.map +1 -1
  59. package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
  60. package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
  61. package/dist/core/mpc/mpc-input-coerce.js +53 -0
  62. package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
  63. package/dist/core/mpc/schemas.d.ts +61 -2
  64. package/dist/core/mpc/schemas.d.ts.map +1 -1
  65. package/dist/core/mpc/schemas.js +137 -3
  66. package/dist/core/mpc/schemas.js.map +1 -1
  67. package/dist/evm/forge-dry-run-paths.d.ts +13 -0
  68. package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
  69. package/dist/evm/forge-dry-run-paths.js +39 -0
  70. package/dist/evm/forge-dry-run-paths.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/agent-chart-data-access-gate.d.ts +1 -1
  76. package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -1
  77. package/dist/mcp/agent-chart-data-access-gate.js.map +1 -1
  78. package/dist/mcp/agent-cron-jobs.d.ts +1 -1
  79. package/dist/mcp/agent-cron-jobs.d.ts.map +1 -1
  80. package/dist/mcp/agent-cron-jobs.js +9 -0
  81. package/dist/mcp/agent-cron-jobs.js.map +1 -1
  82. package/dist/mcp/agent-environment-variables.d.ts +1 -1
  83. package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
  84. package/dist/mcp/agent-environment-variables.js +3 -0
  85. package/dist/mcp/agent-environment-variables.js.map +1 -1
  86. package/dist/mcp/agent-host-catalog.d.ts +15 -2
  87. package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
  88. package/dist/mcp/agent-host-catalog.js +52 -12
  89. package/dist/mcp/agent-host-catalog.js.map +1 -1
  90. package/dist/mcp/agent-input-coerce-register.d.ts +8 -0
  91. package/dist/mcp/agent-input-coerce-register.d.ts.map +1 -0
  92. package/dist/mcp/agent-input-coerce-register.js +22 -0
  93. package/dist/mcp/agent-input-coerce-register.js.map +1 -0
  94. package/dist/mcp/agent-input-coerce.d.ts +13 -0
  95. package/dist/mcp/agent-input-coerce.d.ts.map +1 -0
  96. package/dist/mcp/agent-input-coerce.js +292 -0
  97. package/dist/mcp/agent-input-coerce.js.map +1 -0
  98. package/dist/mcp/agent-mcp-servers.d.ts +1 -1
  99. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  100. package/dist/mcp/agent-mcp-servers.js +7 -0
  101. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  102. package/dist/mcp/agent-skills.d.ts +1 -1
  103. package/dist/mcp/agent-skills.d.ts.map +1 -1
  104. package/dist/mcp/agent-skills.js +5 -0
  105. package/dist/mcp/agent-skills.js.map +1 -1
  106. package/dist/mcp/agent-webhooks.d.ts +1 -1
  107. package/dist/mcp/agent-webhooks.d.ts.map +1 -1
  108. package/dist/mcp/agent-webhooks.js +9 -0
  109. package/dist/mcp/agent-webhooks.js.map +1 -1
  110. package/dist/mcp/chart.d.ts +1 -1
  111. package/dist/mcp/chart.d.ts.map +1 -1
  112. package/dist/mcp/chart.js +38 -0
  113. package/dist/mcp/chart.js.map +1 -1
  114. package/dist/mcp/coinbase-public/register.d.ts +1 -1
  115. package/dist/mcp/coinbase-public/register.d.ts.map +1 -1
  116. package/dist/mcp/coinbase-public/register.js +6 -1
  117. package/dist/mcp/coinbase-public/register.js.map +1 -1
  118. package/dist/mcp/coinmarketcap-public/register.d.ts +1 -1
  119. package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -1
  120. package/dist/mcp/coinmarketcap-public/register.js +14 -1
  121. package/dist/mcp/coinmarketcap-public/register.js.map +1 -1
  122. package/dist/mcp/continuum-docs/config.d.ts +12 -0
  123. package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
  124. package/dist/mcp/continuum-docs/config.js +35 -0
  125. package/dist/mcp/continuum-docs/config.js.map +1 -0
  126. package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
  127. package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
  128. package/dist/mcp/continuum-docs/fetch-page.js +76 -0
  129. package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
  130. package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
  131. package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
  132. package/dist/mcp/continuum-docs/index-store.js +79 -0
  133. package/dist/mcp/continuum-docs/index-store.js.map +1 -0
  134. package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
  135. package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
  136. package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
  137. package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
  138. package/dist/mcp/continuum-docs/register.d.ts +3 -0
  139. package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
  140. package/dist/mcp/continuum-docs/register.js +69 -0
  141. package/dist/mcp/continuum-docs/register.js.map +1 -0
  142. package/dist/mcp/continuum-docs/search.d.ts +13 -0
  143. package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
  144. package/dist/mcp/continuum-docs/search.js +92 -0
  145. package/dist/mcp/continuum-docs/search.js.map +1 -0
  146. package/dist/mcp/continuum-docs/types.d.ts +81 -0
  147. package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
  148. package/dist/mcp/continuum-docs/types.js +60 -0
  149. package/dist/mcp/continuum-docs/types.js.map +1 -0
  150. package/dist/mcp/deferred/discovery-tools.d.ts +1 -1
  151. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
  152. package/dist/mcp/deferred/discovery-tools.js +57 -15
  153. package/dist/mcp/deferred/discovery-tools.js.map +1 -1
  154. package/dist/mcp/deferred/session.d.ts +15 -2
  155. package/dist/mcp/deferred/session.d.ts.map +1 -1
  156. package/dist/mcp/deferred/session.js +128 -80
  157. package/dist/mcp/deferred/session.js.map +1 -1
  158. package/dist/mcp/deferred/tool-group-map.d.ts +15 -2
  159. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  160. package/dist/mcp/deferred/tool-group-map.js +624 -72
  161. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  162. package/dist/mcp/defi/bitquery-api-key.d.ts +1 -1
  163. package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -1
  164. package/dist/mcp/defi/discovery.d.ts +1 -1
  165. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  166. package/dist/mcp/defi/discovery.js +15 -3
  167. package/dist/mcp/defi/discovery.js.map +1 -1
  168. package/dist/mcp/defi/handler.d.ts +13 -6
  169. package/dist/mcp/defi/handler.d.ts.map +1 -1
  170. package/dist/mcp/defi/mcp-json-schema.d.ts +23 -0
  171. package/dist/mcp/defi/mcp-json-schema.d.ts.map +1 -0
  172. package/dist/mcp/defi/mcp-json-schema.js +173 -0
  173. package/dist/mcp/defi/mcp-json-schema.js.map +1 -0
  174. package/dist/mcp/defi/register-protocol-tools.d.ts +1 -1
  175. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  176. package/dist/mcp/defi/register-protocol-tools.js +41 -4
  177. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  178. package/dist/mcp/defi/the-graph-api-key.d.ts +1 -1
  179. package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -1
  180. package/dist/mcp/defi/tool-schemas.d.ts +4 -3
  181. package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
  182. package/dist/mcp/defi/tool-schemas.js +6 -4
  183. package/dist/mcp/defi/tool-schemas.js.map +1 -1
  184. package/dist/mcp/defi/uniswap-api-key.d.ts +1 -1
  185. package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
  186. package/dist/mcp/defi/venice-api-key.d.ts +1 -1
  187. package/dist/mcp/defi/venice-api-key.d.ts.map +1 -1
  188. package/dist/mcp/docs/search-index.json +2594 -0
  189. package/dist/mcp/group.d.ts +1 -1
  190. package/dist/mcp/group.d.ts.map +1 -1
  191. package/dist/mcp/group.js +3 -3
  192. package/dist/mcp/group.js.map +1 -1
  193. package/dist/mcp/keygen-messaging.d.ts +1 -1
  194. package/dist/mcp/keygen-messaging.d.ts.map +1 -1
  195. package/dist/mcp/keygen-messaging.js +10 -0
  196. package/dist/mcp/keygen-messaging.js.map +1 -1
  197. package/dist/mcp/keygen.d.ts +1 -1
  198. package/dist/mcp/keygen.d.ts.map +1 -1
  199. package/dist/mcp/keygen.js +6 -3
  200. package/dist/mcp/keygen.js.map +1 -1
  201. package/dist/mcp/management-signer.d.ts +1 -1
  202. package/dist/mcp/management-signer.d.ts.map +1 -1
  203. package/dist/mcp/management-signer.js +1 -1
  204. package/dist/mcp/management-signer.js.map +1 -1
  205. package/dist/mcp/mcp-resources.d.ts +1 -1
  206. package/dist/mcp/mcp-resources.d.ts.map +1 -1
  207. package/dist/mcp/mpc.d.ts +1 -1
  208. package/dist/mcp/mpc.d.ts.map +1 -1
  209. package/dist/mcp/mpc.js +57 -7
  210. package/dist/mcp/mpc.js.map +1 -1
  211. package/dist/mcp/node.d.ts +1 -1
  212. package/dist/mcp/node.d.ts.map +1 -1
  213. package/dist/mcp/node.js +7 -1
  214. package/dist/mcp/node.js.map +1 -1
  215. package/dist/mcp/ohlcv-session-wrapper.d.ts +1 -2
  216. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
  217. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
  218. package/dist/mcp/register.d.ts +1 -1
  219. package/dist/mcp/register.d.ts.map +1 -1
  220. package/dist/mcp/register.js +6 -6
  221. package/dist/mcp/register.js.map +1 -1
  222. package/dist/mcp/registry/address-book.d.ts +1 -1
  223. package/dist/mcp/registry/address-book.d.ts.map +1 -1
  224. package/dist/mcp/registry/address-book.js +1 -0
  225. package/dist/mcp/registry/address-book.js.map +1 -1
  226. package/dist/mcp/registry/networks.d.ts +1 -1
  227. package/dist/mcp/registry/networks.d.ts.map +1 -1
  228. package/dist/mcp/registry/networks.js +3 -1
  229. package/dist/mcp/registry/networks.js.map +1 -1
  230. package/dist/mcp/registry/tokens.d.ts +1 -1
  231. package/dist/mcp/registry/tokens.d.ts.map +1 -1
  232. package/dist/mcp/registry/tokens.js +2 -0
  233. package/dist/mcp/registry/tokens.js.map +1 -1
  234. package/dist/mcp/resources/chart-analysis.md +1 -1
  235. package/dist/mcp/resources/mpc.md +11 -1
  236. package/dist/mcp/server/http-transport.d.ts +1 -1
  237. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  238. package/dist/mcp/server/http-transport.js +30 -118
  239. package/dist/mcp/server/http-transport.js.map +1 -1
  240. package/dist/mcp/server/index.js +8 -1
  241. package/dist/mcp/server/index.js.map +1 -1
  242. package/dist/mcp/ta/register.d.ts +1 -1
  243. package/dist/mcp/ta/register.d.ts.map +1 -1
  244. package/dist/mcp/ta/register.js +3 -1
  245. package/dist/mcp/ta/register.js.map +1 -1
  246. package/dist/mcp/ta-server/index.js +3 -4
  247. package/dist/mcp/ta-server/index.js.map +1 -1
  248. package/dist/mcp/tool-utils.d.ts +1 -1
  249. package/dist/mcp/tool-utils.d.ts.map +1 -1
  250. package/dist/mcp/trade-tools.d.ts +1 -1
  251. package/dist/mcp/trade-tools.d.ts.map +1 -1
  252. package/dist/mcp/trade-tools.js +5 -0
  253. package/dist/mcp/trade-tools.js.map +1 -1
  254. package/dist/mcp/vpn.d.ts +1 -1
  255. package/dist/mcp/vpn.d.ts.map +1 -1
  256. package/dist/mcp/vpn.js +9 -1
  257. package/dist/mcp/vpn.js.map +1 -1
  258. package/package.json +8 -5
@@ -3,6 +3,7 @@ import { addToAddressBookRegistry, getAddressBookRegistry, removeFromAddressBook
3
3
  import { GetKnownAddressesDataSchema, GetKnownAddressesQuerySchema, SelectedSigningKeySchema, } from '../../schemas/extended.js';
4
4
  import { camelToSnake, wrapSdk } from '../tool-utils.js';
5
5
  export function registerAddressBookTools(server, config) {
6
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
6
7
  server.registerTool(camelToSnake('getAddressBookRegistry'), {
7
8
  description: 'Get known addresses from the address book registry. Contact names can be passed as toContactName on transfer_erc20, transfer_native_gas, and transfer_erc721 instead of copying addresses manually.',
8
9
  inputSchema: GetKnownAddressesQuerySchema,
@@ -1 +1 @@
1
- {"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../../src/mcp/registry/address-book.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CACvC,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,wBAAwB,CAAC,EACtC;QACC,WAAW,EACV,qMAAqM;QACtM,WAAW,EAAE,4BAA4B;QACzC,YAAY,EAAE,2BAA2B;KACzC,EACD,KAAK,EAAE,KAAmD,EAAE,EAAE,CAC7D,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC/C,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,0BAA0B,CAAC,EACxC;QACC,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAClC,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAMN,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtD,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,+BAA+B,CAAC,EAC7C;QACC,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAA2C,EAAE,EAAE,CACrD,OAAO,CAAC,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../../src/mcp/registry/address-book.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CACvC,MAAiB,EACjB,MAAqB;IAErB,qYAAqY;IACrY,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,wBAAwB,CAAC,EACtC;QACC,WAAW,EACV,qMAAqM;QACtM,WAAW,EAAE,4BAA4B;QACzC,YAAY,EAAE,2BAA2B;KACzC,EACD,KAAK,EAAE,KAAmD,EAAE,EAAE,CAC7D,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC/C,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,0BAA0B,CAAC,EACxC;QACC,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAClC,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAMN,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtD,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,+BAA+B,CAAC,EAC7C;QACC,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAA2C,EAAE,EAAE,CACrD,OAAO,CAAC,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtD,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  import type { NodeSdkConfig } from '../../config/schema.js';
3
3
  export declare function registerChainRegistryTools(server: McpServer, config: NodeSdkConfig): void;
4
4
  //# sourceMappingURL=networks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../src/mcp/registry/networks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAc1D,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CA6CN"}
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../src/mcp/registry/networks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAc1D,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CA+CN"}
@@ -3,11 +3,13 @@ import { addToChainRegistry, getChainRegistry, removeFromChainRegistry, } from '
3
3
  import { AddChainRegistryInputSchema, GetChainRegistryDataSchema, GetChainRegistryQuerySchema, SelectedSigningKeySchema, } from '../../schemas/extended.js';
4
4
  import { camelToSnake, wrapSdk } from '../tool-utils.js';
5
5
  export function registerChainRegistryTools(server, config) {
6
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
6
7
  server.registerTool(camelToSnake('getChainRegistry'), {
7
8
  description: 'Get chain registry entries (RPC, explorer, Custom Gas Config fields: gasLimit, baseFee, priorityFee, gasMultiplier, gasPrice, defaultGetSigFeeSpeed). Call with no args to list all configured chains. Prefer chainName (exact name from registry) over guessing chain_id. Use get_multi_sign_gas_options for create/Get Sig choices.',
8
9
  inputSchema: GetChainRegistryQuerySchema,
9
10
  outputSchema: GetChainRegistryDataSchema,
10
11
  }, async (query) => wrapSdk(getChainRegistry(config, query)));
12
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
11
13
  server.registerTool(camelToSnake('addToChainRegistry'), {
12
14
  description: 'Add chain details to the chain registry. rpcGateway (RPC URL) is required and must be supplied by the user — do not guess or infer an RPC URL.',
13
15
  inputSchema: AddChainRegistryInputSchema,
@@ -18,7 +20,7 @@ export function registerChainRegistryTools(server, config) {
18
20
  }),
19
21
  }, async (input) => wrapSdk(addToChainRegistry(config, input)));
20
22
  server.registerTool(camelToSnake('removeFromChainRegistry'), {
21
- description: 'Remove chain details from the chain registry.',
23
+ description: 'Remove a chain (RPC/gas config) from the chain registry.',
22
24
  inputSchema: z.object({
23
25
  chainId: z.union([z.string().min(1), z.number().int().nonnegative()]),
24
26
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../../src/mcp/registry/networks.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,0BAA0B,CACzC,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,kBAAkB,CAAC,EAChC;QACC,WAAW,EACV,uUAAuU;QACxU,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,0BAA0B;KACxC,EACD,KAAK,EAAE,KAAkD,EAAE,EAAE,CAC5D,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACzC,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,oBAAoB,CAAC,EAClC;QACC,WAAW,EACV,gJAAgJ;QACjJ,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAAkD,EAAE,EAAE,CAC5D,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,yBAAyB,CAAC,EACvC;QACC,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;SACrE,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,EAAC,OAAO,EAA6B,EAAE,EAAE,CAC/C,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,CACpD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../../src/mcp/registry/networks.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,0BAA0B,CACzC,MAAiB,EACjB,MAAqB;IAErB,qYAAqY;IACrY,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,kBAAkB,CAAC,EAChC;QACC,WAAW,EACV,uUAAuU;QACxU,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,0BAA0B;KACxC,EACD,KAAK,EAAE,KAAkD,EAAE,EAAE,CAC5D,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACzC,CAAC;IAEF,6MAA6M;IAC7M,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,oBAAoB,CAAC,EAClC;QACC,WAAW,EACV,gJAAgJ;QACjJ,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,KAAkD,EAAE,EAAE,CAC5D,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,yBAAyB,CAAC,EACvC;QACC,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;SACrE,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,kBAAkB,EAAE,wBAAwB;YAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;KACF,EACD,KAAK,EAAE,EAAC,OAAO,EAA6B,EAAE,EAAE,CAC/C,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,CACpD,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  import type { NodeSdkConfig } from '../../config/schema.js';
3
3
  export declare function registerTokenRegistryTools(server: McpServer, config: NodeSdkConfig): void;
4
4
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/mcp/registry/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAqB1D,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CAyEN"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/mcp/registry/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAqB1D,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CA2EN"}
@@ -8,6 +8,7 @@ function normalizeMcpTokenRegistryChainType(chainType) {
8
8
  return t === 'evm' ? 'ethereum' : t;
9
9
  }
10
10
  export function registerTokenRegistryTools(server, config) {
11
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
11
12
  server.registerTool(camelToSnake('getTokenRegistry'), {
12
13
  description: 'Get token registry entries. Call with symbol to find tokens; combine symbol with chain_id or chainName from get_chain_registry. Resolve chain and token IDs from the registry — do not guess.',
13
14
  inputSchema: GetTokenRegistryQuerySchema,
@@ -18,6 +19,7 @@ export function registerTokenRegistryTools(server, config) {
18
19
  ? normalizeMcpTokenRegistryChainType(query.chainType)
19
20
  : undefined,
20
21
  })));
22
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
21
23
  server.registerTool(camelToSnake('addToTokenRegistry'), {
22
24
  description: 'Add a token to the token registry. Use chainType "ethereum" for EVM/ERC-20 tokens (not "evm"). Requires chainType, chainId, tokenType, and contract with contractAddress, name, symbol, symbolURL, and decimals.',
23
25
  inputSchema: AddToTokenRegistryInputSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/mcp/registry/tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/mcp/registry/tokens.ts"],"names":[],"mappings":"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"}
@@ -405,7 +405,7 @@ See optional skill **`orchestration-chart-analysis`** (on-demand) for task-shape
405
405
  | `chart-analysis-momentum` | on demand | Momentum analysis |
406
406
  | `chart-analysis-liquidity-depth` | on demand | Spot book walls table (not a Trade Idea); optional left-axis profile |
407
407
  | `chart-analysis-range` | on demand | Range / volatility analysis |
408
- | `chart-analysis-bollinger` | on demand | Summarize Bollinger analysis; defaults in `chart-defaults` / `trade-defaults` |
408
+ | `chart-analysis-bollinger` | on demand | Summarize Bollinger analysis; period/stdDev/proximity from `trade-desk.yaml` |
409
409
  | `chart-analysis-donchian` | on demand | Summarize Donchian breakout; period/mode from `trade-desk.yaml` |
410
410
  | `chart-analysis-supertrend` | on demand | Summarize Supertrend flip/retest; knobs from `trade-desk.yaml` |
411
411
  | `chart-analysis-ichimoku` | on demand | Summarize Ichimoku TK/cloud; knobs from `trade-desk.yaml` |
@@ -55,9 +55,19 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
55
55
  - `create_forge_multi_sign_request`
56
56
  - Build a request from Foundry broadcast JSON.
57
57
  - Input: `keyGenId`, `broadcast` (`transactions[]` with `transaction` or `tx` objects); optional `destinationChainID`, `overrideSender`, `startingNonce`, and shared fields.
58
+ - `import_forge_dry_run_multi_sign_request`
59
+ - Import a Foundry dry-run file (`run-latest.json`) from `user_folder` — same parser as the node app Compose “Import from Foundry broadcast” flow.
60
+ - Input: `keyGenId`; exactly one of `dryRunFilePath` (under `user_folder`, e.g. `.mcp-foundry-workspace/broadcast/Script.s.sol/<chainId>/dry-run/run-latest.json`) or `dryRunJson`; optional `refreshStaleNonces` (default true), `useCustomGas`, `startingNonce`, `purpose`.
61
+ - After `foundry__forge_script`, read the dry-run path then call this tool. A copy is written to `data/artifacts/forge/<chainId>/<script>/run-latest.json` when possible.
62
+ - `build_forge_dry_run_multi_sign_payload`
63
+ - Build (do not submit) a multiSign helper from a dry-run file. Writes `data/artifacts/multisign/forge-dry-run/<chainId>/<script>/helper.json` plus a forge mirror under `data/artifacts/forge/`.
64
+ - Same inputs as `import_forge_dry_run_multi_sign_request`. Returns `{ bodyForSign, messageToSign, chainId, count, helperArtifactPath, … }`.
65
+ - `import_and_join_forge_dry_runs_multi_sign_request`
66
+ - Parse two dry-run files from `user_folder`, join into one batch, and submit. Inputs: `keyGenId`; `dryRunFilePathA`/`dryRunJsonA` and `dryRunFilePathB`/`dryRunJsonB`; optional `firstNonce` (default pending executor nonce), `refreshStaleNonces`, `useCustomGas`, `purpose`.
67
+ - Writes joined helper to `data/artifacts/multisign/joined/<chainId>/helper-n<nonce>.json`.
58
68
  - `create_joined_multi_sign_request`
59
69
  - Join two multiSignRequest helper payloads (single or batch each) into one batch on the same chain; reassigns nonces from `firstNonce`. Gas/fees are taken from each input’s serialized txs (not re-estimated). Both inputs must share the same `keyList` / `pubKey`. Chain longer flows by reusing prior join output as `payloadA` or `payloadB`.
60
- - Input: `payloadA`, `payloadB` (helper JSON with `bodyForSign` or raw body), `firstNonce`; optional `purpose` override (default merges both purposes with ` | `).
70
+ - Input: `firstNonce`; exactly one of `payloadA` or `payloadAFilePath`, and one of `payloadB` or `payloadBFilePath` (paths under `user_folder`, e.g. `data/artifacts/multisign/forge-dry-run/.../helper.json`); optional `purpose` override (default merges both purposes with ` | `).
61
71
  - Returns `{ requestId }`.
62
72
 
63
73
  ### MPA wallet (Linea)
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import { type McpServer } from '@modelcontextprotocol/server';
2
2
  export type CreateMcpServer = () => McpServer;
3
3
  export type HttpMcpRoute = {
4
4
  path: string;
@@ -1 +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;AASvE,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAkJF,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,EACrC,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC,CA8DpD"}
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAI9E,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAiDF,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,EACrC,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC,CAmDpD"}
@@ -1,121 +1,41 @@
1
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';
2
+ import { createMcpExpressApp } from '@modelcontextprotocol/express';
3
+ import { toNodeHandler } from '@modelcontextprotocol/node';
4
+ import { createMcpHandler } from '@modelcontextprotocol/server';
5
5
  import { runWithOhlcvSessionAsync } from '../ohlcv-session-context.js';
6
- import { clearChartPatternAnalysisSession } from '../../core/chart/chart-pattern-session-store.js';
7
- import { clearOhlcvSession } from '../../core/chart/ohlcv-session-store.js';
8
6
  function resolveHttpOptions(options = {}) {
9
7
  const host = options.host ?? process.env['MCP_HTTP_HOST'] ?? '127.0.0.1';
10
- const port = Number(process.env['MCP_HTTP_PORT'] ?? process.env['MCP_PORT'] ?? '3000');
8
+ const port = Number(options.port ?? process.env['MCP_HTTP_PORT'] ?? process.env['MCP_PORT'] ?? '3000');
11
9
  if (!Number.isInteger(port) || port <= 0 || port > 65_535) {
12
10
  throw new Error(`Invalid MCP HTTP port: ${String(port)}`);
13
11
  }
14
12
  return { host, port };
15
13
  }
16
- function createMcpRouteHandlers(createServer) {
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
- if (sid) {
41
- clearOhlcvSession(sid);
42
- clearChartPatternAnalysisSession(sid);
43
- }
44
- };
45
- const server = createServer();
46
- await server.connect(transport);
47
- await runWithOhlcvSessionAsync(transport.sessionId, () => transport.handleRequest(req, res, req.body));
48
- return;
49
- }
50
- else {
51
- res.status(400).json({
52
- jsonrpc: '2.0',
53
- error: {
54
- code: -32_000,
55
- message: 'Bad Request: No valid session ID provided',
56
- },
57
- id: null,
58
- });
59
- return;
60
- }
61
- await runWithOhlcvSessionAsync(sessionId ?? transport.sessionId, () => transport.handleRequest(req, res, req.body));
62
- }
63
- catch (error) {
64
- console.error('Error handling MCP request:', error);
65
- if (!res.headersSent) {
66
- res.status(500).json({
67
- jsonrpc: '2.0',
68
- error: {
69
- code: -32_603,
70
- message: 'Internal server error',
71
- },
72
- id: null,
73
- });
74
- }
75
- }
76
- };
77
- const mcpGetHandler = async (req, res) => {
78
- const sessionIdHeader = req.headers['mcp-session-id'];
79
- const sessionId = Array.isArray(sessionIdHeader)
80
- ? sessionIdHeader[0]
81
- : sessionIdHeader;
82
- if (!sessionId || !transports[sessionId]) {
83
- res.status(400).send('Invalid or missing session ID');
84
- return;
85
- }
86
- await transports[sessionId].handleRequest(req, res);
87
- };
88
- const mcpDeleteHandler = async (req, res) => {
89
- const sessionIdHeader = req.headers['mcp-session-id'];
90
- const sessionId = Array.isArray(sessionIdHeader)
91
- ? sessionIdHeader[0]
92
- : sessionIdHeader;
93
- if (!sessionId || !transports[sessionId]) {
94
- res.status(400).send('Invalid or missing session ID');
95
- return;
96
- }
97
- try {
98
- await transports[sessionId].handleRequest(req, res);
99
- }
100
- catch (error) {
101
- console.error('Error handling session termination:', error);
102
- if (!res.headersSent) {
103
- res.status(500).send('Error processing session termination');
104
- }
105
- }
106
- };
107
- const closeTransports = async () => {
108
- for (const activeSessionId of Object.keys(transports)) {
109
- try {
110
- await transports[activeSessionId].close();
111
- delete transports[activeSessionId];
112
- }
113
- catch (error) {
114
- console.error(`Error closing transport for session ${activeSessionId}:`, error);
115
- }
116
- }
14
+ /**
15
+ * MCP 2026-07-28 only: per-request servers via createMcpHandler (no Mcp-Session-Id).
16
+ * Cross-request chart/OHLCV state must use explicit handles, not transport sessions.
17
+ * Cross-request DeFi load state must use a shared DefiProtocolContext from the route factory
18
+ * (see server/index.ts) — a fresh context per request makes load_defi_protocol a no-op for ctm_*.
19
+ */
20
+ function mountMcpRoute(app, route) {
21
+ const handler = createMcpHandler(route.createServer, { legacy: 'reject' });
22
+ const nodeHandler = toNodeHandler(handler, {
23
+ onerror: error => {
24
+ console.error(`MCP handler error on ${route.path}:`, error);
25
+ },
26
+ });
27
+ const wrapped = async (req, res) => {
28
+ const requestKey = randomUUID();
29
+ await runWithOhlcvSessionAsync(requestKey, async () => {
30
+ // createMcpExpressApp mounts express.json(); pass the pre-parsed body so
31
+ // toNodeHandler does not re-read an already-consumed request stream
32
+ // (empty body → JSON-RPC parse error → go-sdk falls back to initialize → 400).
33
+ await nodeHandler(req, res, req.body);
34
+ });
117
35
  };
118
- return { mcpPostHandler, mcpGetHandler, mcpDeleteHandler, closeTransports };
36
+ app.all(route.path, (req, res, next) => {
37
+ void wrapped(req, res).catch(next);
38
+ });
119
39
  }
120
40
  export async function startHttpTransportServer(routes, options = {}) {
121
41
  const routeList = Array.isArray(routes) ? routes : [routes];
@@ -124,14 +44,9 @@ export async function startHttpTransportServer(routes, options = {}) {
124
44
  }
125
45
  const { host, port } = resolveHttpOptions(options);
126
46
  const app = createMcpExpressApp({ host });
127
- const closeHandlers = [];
128
47
  const urls = [];
129
48
  for (const route of routeList) {
130
- const { mcpPostHandler, mcpGetHandler, mcpDeleteHandler, closeTransports } = createMcpRouteHandlers(route.createServer);
131
- app.post(route.path, mcpPostHandler);
132
- app.get(route.path, mcpGetHandler);
133
- app.delete(route.path, mcpDeleteHandler);
134
- closeHandlers.push(closeTransports);
49
+ mountMcpRoute(app, route);
135
50
  urls.push(new URL(`http://${host}:${port}${route.path}`));
136
51
  }
137
52
  const httpServer = await new Promise((resolve, reject) => {
@@ -144,12 +59,9 @@ export async function startHttpTransportServer(routes, options = {}) {
144
59
  });
145
60
  });
146
61
  for (const url of urls) {
147
- console.error(`Continuum MCP Server listening on ${url.toString()}`);
62
+ console.error(`Continuum MCP Server listening on ${url.toString()} (MCP 2026-07-28)`);
148
63
  }
149
64
  const close = async () => {
150
- for (const closeTransports of closeHandlers) {
151
- await closeTransports();
152
- }
153
65
  await new Promise((resolve, reject) => {
154
66
  httpServer.close(error => {
155
67
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { createCoinbasePublicMcpServer } from '../coinbase-public/register.js';
2
2
  import { createCoinMarketCapPublicMcpServer } from '../coinmarketcap-public/register.js';
3
+ import { DefiProtocolContext } from '../defi/context.js';
3
4
  import { createContinuumMcpServer } from '../register.js';
4
5
  import { createTaMcpServer } from '../ta/register.js';
5
6
  import { createVpnMcpServer } from '../vpn.js';
@@ -12,8 +13,14 @@ async function main() {
12
13
  const vpnPath = process.env['MCP_HTTP_VPN_PATH'] ?? '/mcp/vpn';
13
14
  const cmcPublicPath = process.env['MCP_HTTP_CMC_PUBLIC_PATH'] ?? '/mcp/cmc-public';
14
15
  const coinbasePublicPath = process.env['MCP_HTTP_COINBASE_PUBLIC_PATH'] ?? '/mcp/coinbase-public';
16
+ // createMcpHandler builds a new McpServer per HTTP request (no Mcp-Session-Id).
17
+ // Share DefiProtocolContext so load_defi_protocol survives into later tools/call.
18
+ const sharedDefiContext = new DefiProtocolContext();
15
19
  await startHttpTransportServer([
16
- { path: mainPath, createServer: () => createContinuumMcpServer(config) },
20
+ {
21
+ path: mainPath,
22
+ createServer: () => createContinuumMcpServer(config, { defiContext: sharedDefiContext }),
23
+ },
17
24
  { path: taPath, createServer: () => createTaMcpServer() },
18
25
  { path: vpnPath, createServer: () => createVpnMcpServer(config) },
19
26
  { path: cmcPublicPath, createServer: () => createCoinMarketCapPublicMcpServer(config) },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAC,kCAAkC,EAAC,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,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,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC;IAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,iBAAiB,CAAC;IACnF,MAAM,kBAAkB,GACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,sBAAsB,CAAC;IAExE,MAAM,wBAAwB,CAAC;QAC9B,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAC;QACtE,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,EAAC;QACvD,EAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAC;QAC/D,EAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkC,CAAC,MAAM,CAAC,EAAC;QACrF,EAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC,EAAC;KACrF,CAAC,CAAC;AACJ,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAC,kCAAkC,EAAC,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,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,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC;IAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,iBAAiB,CAAC;IACnF,MAAM,kBAAkB,GACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,sBAAsB,CAAC;IAExE,gFAAgF;IAChF,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEpD,MAAM,wBAAwB,CAAC;QAC9B;YACC,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,GAAG,EAAE,CAClB,wBAAwB,CAAC,MAAM,EAAE,EAAC,WAAW,EAAE,iBAAiB,EAAC,CAAC;SACnE;QACD,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,EAAC;QACvD,EAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAC;QAC/D,EAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkC,CAAC,MAAM,CAAC,EAAC;QACrF,EAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC,EAAC;KACrF,CAAC,CAAC;AACJ,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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { mcpStructuredContent } from '../tool-utils.js';
3
3
  export declare function registerTaTools(server: McpServer): void;
4
4
  export declare function registerTaResources(server: McpServer): void;
@@ -1 +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;AAYlE,OAAO,EAAC,oBAAoB,EAA4B,MAAM,kBAAkB,CAAC;AAEjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuBvD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAO3D;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAiB7C;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/mcp/ta/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAYzD,OAAO,EAAC,oBAAoB,EAA4B,MAAM,kBAAkB,CAAC;AAEjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBvD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAO3D;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAiB7C;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
@@ -1,15 +1,17 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from 'zod';
3
3
  import { calculateTechnicalIndicator, listTechnicalIndicators, } from '../../core/ta/calculate.js';
4
4
  import { CalculateTechnicalIndicatorInputSchema, CalculateTechnicalIndicatorOutputSchema, ListTechnicalIndicatorsOutputSchema, } from '../../core/ta/schemas.js';
5
5
  import { registerMcpMarkdownResource } from '../mcp-resources.js';
6
6
  import { mcpStructuredContent, sdkResultToCallToolResult } from '../tool-utils.js';
7
7
  export function registerTaTools(server) {
8
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
8
9
  server.registerTool('list_technical_indicators', {
9
10
  description: 'List technical indicators available via calculate_technical_indicator: id, category, inputProfile, defaultParams, outputKind. Call this before computing.',
10
11
  inputSchema: z.object({}).strict(),
11
12
  outputSchema: ListTechnicalIndicatorsOutputSchema,
12
13
  }, async () => sdkResultToCallToolResult(listTechnicalIndicators()));
14
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. | Could not verify `outputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
13
15
  server.registerTool('calculate_technical_indicator', {
14
16
  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.',
15
17
  inputSchema: CalculateTechnicalIndicatorInputSchema,
@@ -1 +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,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,2BAA2B,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAC,oBAAoB,EAAE,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AAEjF,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,mBAAmB,CAAC,MAAiB;IACpD,2BAA2B,CAC1B,MAAM,EACN,2BAA2B,EAC3B,yBAAyB,EACzB,uEAAuE,CACvE,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;IACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AACf,CAAC;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/mcp/ta/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,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,2BAA2B,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAC,oBAAoB,EAAE,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AAEjF,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,qYAAqY;IACrY,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,qYAAqY;IACrY,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,mBAAmB,CAAC,MAAiB;IACpD,2BAA2B,CAC1B,MAAM,EACN,2BAA2B,EAC3B,yBAAyB,EACzB,uEAAuE,CACvE,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;IACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AACf,CAAC;AAED,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
@@ -1,9 +1,8 @@
1
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
1
+ import { serveStdio } from '@modelcontextprotocol/server/stdio';
2
2
  import { createTaMcpServer } from '../ta/register.js';
3
3
  async function main() {
4
- const server = createTaMcpServer();
5
- const transport = new StdioServerTransport();
6
- await server.connect(transport);
4
+ // MCP 2026-07-28 only — refuse legacy initialize clients.
5
+ await serveStdio(() => createTaMcpServer(), { legacy: 'reject' });
7
6
  }
8
7
  main().catch(error => {
9
8
  console.error('Fatal error in ta-mcp main():', error);
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/ta-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,KAAK,UAAU,IAAI;IAClB,0DAA0D;IAC1D,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;AACjE,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"}
@@ -1,4 +1,4 @@
1
- import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
1
+ import type { CallToolResult } from "@modelcontextprotocol/server";
2
2
  import { z } from 'zod';
3
3
  import type { SdkResult } from '../core/result.js';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,6CAAiC,CAAC;AAEtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ3E;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAC1C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,cAAc,CAYhB;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC9B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,cAAc,CAAC,CAEzB"}
1
+ {"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,6CAAiC,CAAC;AAEtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ3E;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAC1C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,cAAc,CAYhB;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC9B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,cAAc,CAAC,CAEzB"}
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  import type { NodeSdkConfig } from '../config/schema.js';
3
3
  import type { DefiProtocolContext } from './defi/context.js';
4
4
  import { camelToSnake } from './tool-utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"trade-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/trade-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAqBvD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA0B,YAAY,EAAqC,MAAM,iBAAiB,CAAC;AAmQ1G,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAC9B,IAAI,CAgPN;AAED,OAAO,EAAC,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"trade-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/trade-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAqBvD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA0B,YAAY,EAAqC,MAAM,iBAAiB,CAAC;AAoQ1G,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAC9B,IAAI,CAoPN;AAED,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -77,6 +77,7 @@ function resolveTradeIdea(input) {
77
77
  return ideas.find(item => item.id === id) ?? null;
78
78
  }
79
79
  function registerBuildTradeTool(server, config, defiContext, name, description, analysisType) {
80
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
80
81
  server.registerTool(name, {
81
82
  description,
82
83
  inputSchema: buildTradeBaseSchema,
@@ -232,6 +233,7 @@ const evaluateUniswapTpslSchema = z
232
233
  })
233
234
  .strict();
234
235
  export function registerTradeTools(server, config, defiContext) {
236
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
235
237
  server.registerTool('list_trade_ideas', {
236
238
  description: 'List persisted trade ideas from analyze_* tools on the current chart dataset (bound tradeIdeas[]). Returns numbered menu rows (tradeIdeaNumber) with side, status, confidence, entry/target/invalidation, targetBasis and invalidationBasis (brief how each level was calculated), chartDataSource/chartInterval/chartBarCount, and measured-move % from entry. Required before synthesizing a conclusion or consensus across ideas — cite tradeIdeaNumber from items[] exactly. Use with build_trade_from_* to submit multisign.',
237
239
  inputSchema: listTradeIdeasSchema,
@@ -252,6 +254,7 @@ export function registerTradeTools(server, config, defiContext) {
252
254
  registerBuildTradeTool(server, config, defiContext, 'build_trade_from_key_levels', 'Like build_trade_from_trade_idea but filters conversation.tradeIdeas to key_levels analysisType.', 'key_levels');
253
255
  registerBuildTradeTool(server, config, defiContext, 'build_trade_from_momentum', 'Like build_trade_from_trade_idea but filters conversation.tradeIdeas to momentum analysisType.', 'momentum');
254
256
  registerBuildTradeTool(server, config, defiContext, 'build_trade_from_divergence', 'Like build_trade_from_trade_idea but filters conversation.tradeIdeas to divergence analysisType.', 'divergence');
257
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
255
258
  server.registerTool('submit_trade_from_consensus', {
256
259
  description: 'Cron-only: after tradeConsensus gate, submit multisign for agent-selected tradeIdeaId. Re-evaluates consensus unless force=true. Delegates to build_trade_from_trade_idea bridge.',
257
260
  inputSchema: submitConsensusSchema,
@@ -320,6 +323,7 @@ export function registerTradeTools(server, config, defiContext) {
320
323
  },
321
324
  });
322
325
  });
326
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
323
327
  server.registerTool('evaluate_uniswap_tpsl_monitor', {
324
328
  description: 'Evaluate whether a spot Uniswap TP/SL monitor should trigger a market exit (price vs takeProfitPriceHuman / stopLossPriceHuman). Used by TP/SL cron jobs.',
325
329
  inputSchema: evaluateUniswapTpslSchema,
@@ -342,6 +346,7 @@ export function registerTradeTools(server, config, defiContext) {
342
346
  });
343
347
  return sdkResultToCallToolResult({ ok: true, data: evaluation });
344
348
  });
349
+ /* @mcp-codemod-error Could not verify `inputSchema` is a schema object. Raw shapes are deprecated in v2 — pass a Standard Schema object (e.g. z.object({ … })); no change is needed if it already is one. */
345
350
  server.registerTool('register_uniswap_tpsl_monitor_cron', {
346
351
  description: 'Create an agent cron job that polls Uniswap pool price and triggers a market swap exit when TP/SL levels are crossed. Best-effort monitor — not on-chain resting orders.',
347
352
  inputSchema: registerUniswapTpslMonitorSchema,