@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.
- package/dist/agent-host-catalog.json +1318 -52
- package/dist/core/agent/user-folder.d.ts +22 -0
- package/dist/core/agent/user-folder.d.ts.map +1 -0
- package/dist/core/agent/user-folder.js +82 -0
- package/dist/core/agent/user-folder.js.map +1 -0
- package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
- package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/analyze-tools.js +6 -1
- package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
- package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
- package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
- package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
- package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
- package/dist/core/chart/ohlcv-session-store.d.ts +2 -0
- package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
- package/dist/core/chart/ohlcv-session-store.js +66 -9
- package/dist/core/chart/ohlcv-session-store.js.map +1 -1
- package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
- package/dist/core/chart/overlay-schemas.js +2 -0
- package/dist/core/chart/overlay-schemas.js.map +1 -1
- package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
- package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
- package/dist/core/mpc/forge-dry-run-build.js +200 -0
- package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
- package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
- package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
- package/dist/core/mpc/forge-dry-run-request.js +144 -0
- package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
- package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
- package/dist/core/mpc/join-multisign-request.js +41 -1
- package/dist/core/mpc/join-multisign-request.js.map +1 -1
- package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
- package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
- package/dist/core/mpc/mpc-input-coerce.js +53 -0
- package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
- package/dist/core/mpc/schemas.d.ts +61 -2
- package/dist/core/mpc/schemas.d.ts.map +1 -1
- package/dist/core/mpc/schemas.js +137 -3
- package/dist/core/mpc/schemas.js.map +1 -1
- package/dist/evm/forge-dry-run-paths.d.ts +13 -0
- package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
- package/dist/evm/forge-dry-run-paths.js +39 -0
- package/dist/evm/forge-dry-run-paths.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/agent-chart-data-access-gate.d.ts +1 -1
- package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -1
- package/dist/mcp/agent-chart-data-access-gate.js.map +1 -1
- package/dist/mcp/agent-cron-jobs.d.ts +1 -1
- package/dist/mcp/agent-cron-jobs.d.ts.map +1 -1
- package/dist/mcp/agent-cron-jobs.js +9 -0
- package/dist/mcp/agent-cron-jobs.js.map +1 -1
- package/dist/mcp/agent-environment-variables.d.ts +1 -1
- package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
- package/dist/mcp/agent-environment-variables.js +3 -0
- package/dist/mcp/agent-environment-variables.js.map +1 -1
- package/dist/mcp/agent-host-catalog.d.ts +15 -2
- package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
- package/dist/mcp/agent-host-catalog.js +52 -12
- package/dist/mcp/agent-host-catalog.js.map +1 -1
- package/dist/mcp/agent-input-coerce-register.d.ts +8 -0
- package/dist/mcp/agent-input-coerce-register.d.ts.map +1 -0
- package/dist/mcp/agent-input-coerce-register.js +22 -0
- package/dist/mcp/agent-input-coerce-register.js.map +1 -0
- package/dist/mcp/agent-input-coerce.d.ts +13 -0
- package/dist/mcp/agent-input-coerce.d.ts.map +1 -0
- package/dist/mcp/agent-input-coerce.js +292 -0
- package/dist/mcp/agent-input-coerce.js.map +1 -0
- package/dist/mcp/agent-mcp-servers.d.ts +1 -1
- package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
- package/dist/mcp/agent-mcp-servers.js +7 -0
- package/dist/mcp/agent-mcp-servers.js.map +1 -1
- package/dist/mcp/agent-skills.d.ts +1 -1
- package/dist/mcp/agent-skills.d.ts.map +1 -1
- package/dist/mcp/agent-skills.js +5 -0
- package/dist/mcp/agent-skills.js.map +1 -1
- package/dist/mcp/agent-webhooks.d.ts +1 -1
- package/dist/mcp/agent-webhooks.d.ts.map +1 -1
- package/dist/mcp/agent-webhooks.js +9 -0
- package/dist/mcp/agent-webhooks.js.map +1 -1
- package/dist/mcp/chart.d.ts +1 -1
- package/dist/mcp/chart.d.ts.map +1 -1
- package/dist/mcp/chart.js +38 -0
- package/dist/mcp/chart.js.map +1 -1
- package/dist/mcp/coinbase-public/register.d.ts +1 -1
- package/dist/mcp/coinbase-public/register.d.ts.map +1 -1
- package/dist/mcp/coinbase-public/register.js +6 -1
- package/dist/mcp/coinbase-public/register.js.map +1 -1
- package/dist/mcp/coinmarketcap-public/register.d.ts +1 -1
- package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -1
- package/dist/mcp/coinmarketcap-public/register.js +14 -1
- package/dist/mcp/coinmarketcap-public/register.js.map +1 -1
- package/dist/mcp/continuum-docs/config.d.ts +12 -0
- package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/config.js +35 -0
- package/dist/mcp/continuum-docs/config.js.map +1 -0
- package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
- package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/fetch-page.js +76 -0
- package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
- package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
- package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/index-store.js +79 -0
- package/dist/mcp/continuum-docs/index-store.js.map +1 -0
- package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
- package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
- package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
- package/dist/mcp/continuum-docs/register.d.ts +3 -0
- package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/register.js +69 -0
- package/dist/mcp/continuum-docs/register.js.map +1 -0
- package/dist/mcp/continuum-docs/search.d.ts +13 -0
- package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/search.js +92 -0
- package/dist/mcp/continuum-docs/search.js.map +1 -0
- package/dist/mcp/continuum-docs/types.d.ts +81 -0
- package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/types.js +60 -0
- package/dist/mcp/continuum-docs/types.js.map +1 -0
- package/dist/mcp/deferred/discovery-tools.d.ts +1 -1
- package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
- package/dist/mcp/deferred/discovery-tools.js +57 -15
- package/dist/mcp/deferred/discovery-tools.js.map +1 -1
- package/dist/mcp/deferred/session.d.ts +15 -2
- package/dist/mcp/deferred/session.d.ts.map +1 -1
- package/dist/mcp/deferred/session.js +128 -80
- package/dist/mcp/deferred/session.js.map +1 -1
- package/dist/mcp/deferred/tool-group-map.d.ts +15 -2
- package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
- package/dist/mcp/deferred/tool-group-map.js +624 -72
- package/dist/mcp/deferred/tool-group-map.js.map +1 -1
- package/dist/mcp/defi/bitquery-api-key.d.ts +1 -1
- package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/discovery.d.ts +1 -1
- package/dist/mcp/defi/discovery.d.ts.map +1 -1
- package/dist/mcp/defi/discovery.js +15 -3
- package/dist/mcp/defi/discovery.js.map +1 -1
- package/dist/mcp/defi/handler.d.ts +13 -6
- package/dist/mcp/defi/handler.d.ts.map +1 -1
- package/dist/mcp/defi/mcp-json-schema.d.ts +23 -0
- package/dist/mcp/defi/mcp-json-schema.d.ts.map +1 -0
- package/dist/mcp/defi/mcp-json-schema.js +173 -0
- package/dist/mcp/defi/mcp-json-schema.js.map +1 -0
- package/dist/mcp/defi/register-protocol-tools.d.ts +1 -1
- package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
- package/dist/mcp/defi/register-protocol-tools.js +41 -4
- package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
- package/dist/mcp/defi/the-graph-api-key.d.ts +1 -1
- package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/tool-schemas.d.ts +4 -3
- package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
- package/dist/mcp/defi/tool-schemas.js +6 -4
- package/dist/mcp/defi/tool-schemas.js.map +1 -1
- package/dist/mcp/defi/uniswap-api-key.d.ts +1 -1
- package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/venice-api-key.d.ts +1 -1
- package/dist/mcp/defi/venice-api-key.d.ts.map +1 -1
- package/dist/mcp/docs/search-index.json +2594 -0
- package/dist/mcp/group.d.ts +1 -1
- package/dist/mcp/group.d.ts.map +1 -1
- package/dist/mcp/group.js +3 -3
- package/dist/mcp/group.js.map +1 -1
- package/dist/mcp/keygen-messaging.d.ts +1 -1
- package/dist/mcp/keygen-messaging.d.ts.map +1 -1
- package/dist/mcp/keygen-messaging.js +10 -0
- package/dist/mcp/keygen-messaging.js.map +1 -1
- package/dist/mcp/keygen.d.ts +1 -1
- package/dist/mcp/keygen.d.ts.map +1 -1
- package/dist/mcp/keygen.js +6 -3
- package/dist/mcp/keygen.js.map +1 -1
- package/dist/mcp/management-signer.d.ts +1 -1
- package/dist/mcp/management-signer.d.ts.map +1 -1
- package/dist/mcp/management-signer.js +1 -1
- package/dist/mcp/management-signer.js.map +1 -1
- package/dist/mcp/mcp-resources.d.ts +1 -1
- package/dist/mcp/mcp-resources.d.ts.map +1 -1
- package/dist/mcp/mpc.d.ts +1 -1
- package/dist/mcp/mpc.d.ts.map +1 -1
- package/dist/mcp/mpc.js +57 -7
- package/dist/mcp/mpc.js.map +1 -1
- package/dist/mcp/node.d.ts +1 -1
- package/dist/mcp/node.d.ts.map +1 -1
- package/dist/mcp/node.js +7 -1
- package/dist/mcp/node.js.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.d.ts +1 -2
- package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
- package/dist/mcp/register.d.ts +1 -1
- package/dist/mcp/register.d.ts.map +1 -1
- package/dist/mcp/register.js +6 -6
- package/dist/mcp/register.js.map +1 -1
- package/dist/mcp/registry/address-book.d.ts +1 -1
- package/dist/mcp/registry/address-book.d.ts.map +1 -1
- package/dist/mcp/registry/address-book.js +1 -0
- package/dist/mcp/registry/address-book.js.map +1 -1
- package/dist/mcp/registry/networks.d.ts +1 -1
- package/dist/mcp/registry/networks.d.ts.map +1 -1
- package/dist/mcp/registry/networks.js +3 -1
- package/dist/mcp/registry/networks.js.map +1 -1
- package/dist/mcp/registry/tokens.d.ts +1 -1
- package/dist/mcp/registry/tokens.d.ts.map +1 -1
- package/dist/mcp/registry/tokens.js +2 -0
- package/dist/mcp/registry/tokens.js.map +1 -1
- package/dist/mcp/resources/chart-analysis.md +1 -1
- package/dist/mcp/resources/mpc.md +11 -1
- package/dist/mcp/server/http-transport.d.ts +1 -1
- package/dist/mcp/server/http-transport.d.ts.map +1 -1
- package/dist/mcp/server/http-transport.js +30 -118
- package/dist/mcp/server/http-transport.js.map +1 -1
- package/dist/mcp/server/index.js +8 -1
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/ta/register.d.ts +1 -1
- package/dist/mcp/ta/register.d.ts.map +1 -1
- package/dist/mcp/ta/register.js +3 -1
- package/dist/mcp/ta/register.js.map +1 -1
- package/dist/mcp/ta-server/index.js +3 -4
- package/dist/mcp/ta-server/index.js.map +1 -1
- package/dist/mcp/tool-utils.d.ts +1 -1
- package/dist/mcp/tool-utils.d.ts.map +1 -1
- package/dist/mcp/trade-tools.d.ts +1 -1
- package/dist/mcp/trade-tools.d.ts.map +1 -1
- package/dist/mcp/trade-tools.js +5 -0
- package/dist/mcp/trade-tools.js.map +1 -1
- package/dist/mcp/vpn.d.ts +1 -1
- package/dist/mcp/vpn.d.ts.map +1 -1
- package/dist/mcp/vpn.js +9 -1
- package/dist/mcp/vpn.js.map +1 -1
- 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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEvD,uFAAuF;AACvF,SAAS,kCAAkC,CAAC,SAAiB;IAC5D,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,kBAAkB,CAAC,EAChC;QACC,WAAW,EACV,+LAA+L;QAChM,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,0BAA0B;KACxC,EACD,KAAK,EAAE,KAAkD,EAAE,EAAE,CAC5D,OAAO,CACN,gBAAgB,CAAC,MAAM,EAAE;QACxB,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS;YACzB,CAAC,CAAC,kCAAkC,CAAC,KAAK,CAAC,SAAS,CAAC;YACrD,CAAC,CAAC,SAAS;KACZ,CAAC,CACF,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,oBAAoB,CAAC,EAClC;QACC,WAAW,EACV,kNAAkN;QACnN,WAAW,EAAE,6BAA6B;QAC1C,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,KAAoD,EAAE,EAAE,CAC9D,OAAO,CACN,kBAAkB,CAAC,MAAM,EAAE;QAC1B,GAAG,KAAK;QACR,SAAS,EAAE,kCAAkC,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9D,CAAC,CACF,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CAClB,YAAY,CAAC,yBAAyB,CAAC,EACvC;QACC,WAAW,EACV,8FAA8F;QAC/F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,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;YACrE,SAAS,EAAE,eAAe;YAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,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,CACJ,OAAO,CACN,uBAAuB,CAAC,MAAM,EAAE;QAC/B,GAAG,KAAK;QACR,SAAS,EAAE,kCAAkC,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9D,CAAC,CACF,CACF,CAAC;AACH,CAAC"}
|
|
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;
|
|
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: `
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"
|
|
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/
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAiB,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAcrE,SAAS,kBAAkB,CAC1B,UAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAClB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CACjF,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACrB,GAA2C,EAC3C,KAAmB;IAEnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,EAAE;QAC1C,OAAO,EAAE,KAAK,CAAC,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;KACD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACpE,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChC,MAAM,wBAAwB,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACrD,yEAAyE;YACzE,oEAAoE;YACpE,+EAA+E;YAC/E,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,MAAqC,EACrC,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;IACxC,MAAM,IAAI,GAAU,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC/B,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAChE,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE;YACzD,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACR,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACvC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACR,CAAC;gBACD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC3B,KAAK,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;AACtB,CAAC"}
|
package/dist/mcp/server/index.js
CHANGED
|
@@ -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
|
-
{
|
|
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,
|
|
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
|
|
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,
|
|
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"}
|
package/dist/mcp/ta/register.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { McpServer } from
|
|
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,
|
|
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 {
|
|
1
|
+
import { serveStdio } from '@modelcontextprotocol/server/stdio';
|
|
2
2
|
import { createTaMcpServer } from '../ta/register.js';
|
|
3
3
|
async function main() {
|
|
4
|
-
|
|
5
|
-
|
|
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,
|
|
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"}
|
package/dist/mcp/tool-utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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
|
|
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,
|
|
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"}
|
package/dist/mcp/trade-tools.js
CHANGED
|
@@ -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,
|