@covalenthq/goldrush-mcp-server 0.0.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/LICENSE +2 -2
  2. package/dist/example-client.js +1 -6
  3. package/dist/example-client.js.map +1 -1
  4. package/dist/services/AllChainsService.d.ts.map +1 -1
  5. package/dist/services/AllChainsService.js +20 -31
  6. package/dist/services/AllChainsService.js.map +1 -1
  7. package/dist/services/BalanceService.d.ts.map +1 -1
  8. package/dist/services/BalanceService.js +47 -104
  9. package/dist/services/BalanceService.js.map +1 -1
  10. package/dist/services/BaseService.d.ts.map +1 -1
  11. package/dist/services/BaseService.js +55 -50
  12. package/dist/services/BaseService.js.map +1 -1
  13. package/dist/services/BitcoinService.d.ts.map +1 -1
  14. package/dist/services/BitcoinService.js +11 -22
  15. package/dist/services/BitcoinService.js.map +1 -1
  16. package/dist/services/NftService.d.ts.map +1 -1
  17. package/dist/services/NftService.js +44 -24
  18. package/dist/services/NftService.js.map +1 -1
  19. package/dist/services/PricingService.d.ts.map +1 -1
  20. package/dist/services/PricingService.js +12 -17
  21. package/dist/services/PricingService.js.map +1 -1
  22. package/dist/services/SecurityService.d.ts.map +1 -1
  23. package/dist/services/SecurityService.js +4 -5
  24. package/dist/services/SecurityService.js.map +1 -1
  25. package/dist/services/TransactionService.d.ts.map +1 -1
  26. package/dist/services/TransactionService.js +27 -46
  27. package/dist/services/TransactionService.js.map +1 -1
  28. package/dist/utils/constants.d.ts +18 -1
  29. package/dist/utils/constants.d.ts.map +1 -1
  30. package/dist/utils/generated-descriptions.d.ts +192 -0
  31. package/dist/utils/generated-descriptions.d.ts.map +1 -0
  32. package/dist/utils/generated-descriptions.js +219 -0
  33. package/dist/utils/generated-descriptions.js.map +1 -0
  34. package/dist/utils/tool-slug-map.d.ts +2 -0
  35. package/dist/utils/tool-slug-map.d.ts.map +1 -0
  36. package/dist/utils/tool-slug-map.js +31 -0
  37. package/dist/utils/tool-slug-map.js.map +1 -0
  38. package/package.json +16 -20
  39. package/README.md +0 -503
@@ -0,0 +1,219 @@
1
+ export const TOOL_DESCRIPTIONS = {
2
+ gas_prices: "Get real-time gas estimates for different transaction speeds on a specific network, enabling users to optimize transaction costs and confirmation times.",
3
+ block: "Commonly used to fetch and render a single block for a block explorer.",
4
+ block_heights: "Commonly used to get all the block heights within a particular date range. Useful for rendering a display where you sort blocks by day.",
5
+ log_events_by_address: "Commonly used to get all the event logs emitted from a particular contract address. Useful for building dashboards that examine on-chain interactions.",
6
+ log_events_by_topic: "Commonly used to get all event logs of the same topic hash across all contracts within a particular chain. Useful for cross-sectional analysis of event logs that are emitted on-chain.",
7
+ resolve_address: "Commonly used to resolve ENS, RNS and Unstoppable Domains addresses. Only supports the resolution of a registered domain to an address.",
8
+ token_balances: "Commonly used to fetch the native and fungible (ERC20) tokens held by an address. Response includes spot prices and other metadata.",
9
+ historical_token_balances: "Commonly used to fetch the historical native and fungible (ERC20) tokens held by an address at a given block height or date. Response includes daily prices and other metadata.",
10
+ historical_portfolio_value: "Commonly used to render a daily portfolio balance for an address broken down by the token. The timeframe is user-configurable, defaults to 30 days.",
11
+ erc20_token_transfers: "Commonly used to render the transfer-in and transfer-out of a token along with historical prices from an address.",
12
+ token_holders: "Used to get a paginated list of current or historical token holders for a specified ERC20 or ERC721 token. ",
13
+ native_token_balance: "Lightweight endpoint to just get the native token balance for an EVM address. ",
14
+ transaction: "Used to fetch and render a single transaction including its decoded event logs. For foundational chains, can also retrieve internal transactions, state changes and method ID where available. ",
15
+ transaction_summary: "Used to fetch the earliest and latest transactions, and the transaction count for a wallet. Also enriched with gas expenditure details and total ERC20 token transfers count.",
16
+ transactions_for_address: "Commonly used to fetch the transactions involving an address including the decoded log events in a paginated fashion.",
17
+ transactions_for_block: "Commonly used to fetch all transactions including their decoded log events in a block and further flag interesting wallets or transactions.",
18
+ multichain_transactions: "Fetch paginated transactions for up to 10 EVM addresses and 10 EVM chains with one API call. Useful for building Activity Feeds. ",
19
+ multichain_balances: "Fetch paginated spot & historical native and token balances for a single address on up to 10 EVM chains with one API call.",
20
+ multichain_address_activity: "Commonly used to locate chains which an address is active on with a single API call.",
21
+ nft_for_address: "Commonly used to render the NFTs (including ERC721 and ERC1155) held by an address.",
22
+ nft_check_ownership: "Commonly used to verify ownership of NFTs (including ERC-721 and ERC-1155) within a collection.",
23
+ nft_check_ownership_token_id: "Commonly used to verify ownership of a specific token (ERC-721 or ERC-1155) within a collection.",
24
+ bitcoin_hd_wallet_balances: "Fetch balances for each active child address derived from a Bitcoin HD wallet. ",
25
+ bitcoin_transactions: "Used to fetch the full transaction history of a Bitcoin non-HD wallet address. ",
26
+ bitcoin_non_hd_wallet_balances: "Fetch Bitcoin balance for a non-HD address. Response includes spot prices and other metadata.",
27
+ historical_token_prices: "Get the historical prices of one (or many) large cap ERC20 tokens between specified date ranges. Also supports native tokens.",
28
+ pool_spot_prices: "Get the spot token pair prices for a specified pool contract address. Supports pools on Uniswap V2, V3 and their forks. ",
29
+ token_approvals: "Commonly used to get a list of approvals across all token contracts categorized by spenders for a wallet’s assets.",
30
+ };
31
+ export const PARAM_DESCRIPTIONS = {
32
+ gas_prices: {
33
+ chainName: "The chain name eg: `eth-mainnet`.",
34
+ eventType: "The desired event type to retrieve gas prices for. Supports `erc20` transfer events, `uniswapv3` swap events and `nativetokens` transfers.",
35
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
36
+ },
37
+ block: {
38
+ chainName: "The chain name eg: `eth-mainnet`.",
39
+ blockHeight: "The block height or `latest` for the latest block available.",
40
+ },
41
+ block_heights: {
42
+ chainName: "The chain name eg: `eth-mainnet`.",
43
+ startDate: "The start date in YYYY-MM-DD format.",
44
+ endDate: "The end date in YYYY-MM-DD format or `latest` for the latest block available.",
45
+ pageSize: "Number of items per page. Omitting this parameter defaults to 100.",
46
+ pageNumber: "0-indexed page number to begin pagination.",
47
+ },
48
+ log_events_by_address: {
49
+ chainName: "The chain name eg: `eth-mainnet`.",
50
+ contractAddress: "The requested contract address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
51
+ startingBlock: "The first block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.",
52
+ endingBlock: "The last block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.",
53
+ pageSize: "Number of items per page. Omitting this parameter defaults to 100.",
54
+ pageNumber: "0-indexed page number to begin pagination.",
55
+ },
56
+ log_events_by_topic: {
57
+ chainName: "The chain name eg: `eth-mainnet`.",
58
+ topicHash: "The endpoint will return event logs that contain this topic hash.",
59
+ startingBlock: "The first block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.",
60
+ endingBlock: "The last block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.",
61
+ secondaryTopics: "Additional topic hash(es) to filter on - padded & unpadded address fields are supported. Separate multiple topics with a comma.",
62
+ pageSize: "Number of items per page. Omitting this parameter defaults to 100.",
63
+ pageNumber: "0-indexed page number to begin pagination.",
64
+ },
65
+ resolve_address: {
66
+ chainName: "The chain name eg: `eth-mainnet`.",
67
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
68
+ },
69
+ token_balances: {
70
+ chainName: "The chain name eg: `eth-mainnet`.",
71
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
72
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
73
+ noSpam: "If `true`, the suspected spam tokens are removed. Supported on all Foundational Chains.",
74
+ },
75
+ historical_token_balances: {
76
+ chainName: "The chain name eg: `eth-mainnet`.",
77
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
78
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
79
+ noSpam: "If `true`, the suspected spam tokens are removed. Supported on all Foundational Chains.",
80
+ blockHeight: "Ending block to define a block range. Omitting this parameter defaults to the latest block height.",
81
+ date: "Ending date to define a block range (YYYY-MM-DD). Omitting this parameter defaults to the current date.",
82
+ },
83
+ historical_portfolio_value: {
84
+ chainName: "The chain name eg: `eth-mainnet`.",
85
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
86
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
87
+ days: "The number of days to return data for. Defaults to 30 days.",
88
+ },
89
+ erc20_token_transfers: {
90
+ chainName: "The chain name eg: `eth-mainnet`.",
91
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
92
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
93
+ contractAddress: "The requested contract address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
94
+ startingBlock: "The block height to start from, defaults to `0`.",
95
+ endingBlock: "The block height to end at, defaults to current block height.",
96
+ pageSize: "Number of items per page. Omitting this parameter defaults to 100.",
97
+ pageNumber: "0-indexed page number to begin pagination.",
98
+ },
99
+ token_holders: {
100
+ chainName: "The chain name eg: `eth-mainnet`.",
101
+ tokenAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
102
+ noSnapshot: "Defaults to `false`. Set to `true` to bypass last snapshot and get the latest token holders list.",
103
+ blockHeight: "Ending block to define a block range. Omitting this parameter defaults to the latest block height.",
104
+ date: "Ending date to define a block range (YYYY-MM-DD). Omitting this parameter defaults to the current date.",
105
+ pageSize: "Number of items per page. Note: Currently, only values of `100` and `1000` are supported. Omitting this parameter defaults to 100.",
106
+ pageNumber: "0-indexed page number to begin pagination.",
107
+ },
108
+ native_token_balance: {
109
+ chainName: "The chain name eg: `eth-mainnet`.",
110
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
111
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
112
+ blockHeight: "Ending block to define a block range. Omitting this parameter defaults to the latest block height.",
113
+ },
114
+ transaction: {
115
+ chainName: "The chain name eg: `eth-mainnet`.",
116
+ txHash: "The transaction hash.",
117
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
118
+ noLogs: "Omit log events.",
119
+ withInternal: "Whether to include internal transfers/transactions.",
120
+ withState: "Whether to include all transaction state changes with before and after values.",
121
+ withInputData: "Whether to include the transaction's input data such as the Method ID.",
122
+ },
123
+ transaction_summary: {
124
+ chainName: "The chain name eg: `eth-mainnet`.",
125
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
126
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
127
+ withGas: "Include gas summary details. Response times may be impacted for wallets with large number of transactions.",
128
+ withTransferCount: "Represents the total count of ERC-20 token movement events, including `Transfer`, `Deposit` and `Withdraw`. Response times may be impacted for wallets with large number of transactions.",
129
+ },
130
+ transactions_for_address: {
131
+ chainName: "The chain name eg: `eth-mainnet`.",
132
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
133
+ page: "The requested page, 0-indexed.",
134
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
135
+ noLogs: "Omit log events.",
136
+ blockSignedAtAsc: "Sort the transactions in ascending chronological order. By default, it's set to `false` and returns transactions in descending chronological order.",
137
+ },
138
+ transactions_for_block: {
139
+ chainName: "The chain name eg: `eth-mainnet`.",
140
+ blockHeight: "The requested block height.",
141
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
142
+ noLogs: "Omit log events.",
143
+ },
144
+ multichain_transactions: {
145
+ chains: "Comma separated list of chain names or IDs to retrieve transactions from. Defaults to all foundational chains.",
146
+ addresses: "Comma separated list of addresses for which transactions are fetched.",
147
+ limit: "Number of transactions to return per page, up to the default max of 100 items.",
148
+ before: "Pagination cursor pointing to fetch transactions before a certain point.",
149
+ after: "Pagination cursor pointing to fetch transactions after a certain point.",
150
+ withLogs: "Whether to include raw logs in the response.",
151
+ withDecodedLogs: "Whether to include decoded logs in the response.",
152
+ withInternal: "Whether to include internal transfers/transactions.",
153
+ withState: "Whether to include all transaction state changes with before and after values.",
154
+ withInputData: "Whether to include the transaction's input data such as the Method ID.",
155
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, `GBP`, `BTC` and `ETH`.",
156
+ },
157
+ multichain_balances: {
158
+ walletAddress: "The requested address. Domain names (e.g. `demo.eth`) NOT supported.",
159
+ chains: "Comma separated list of chain names or IDs to retrieve token balances from. Defaults to all foundational chains.",
160
+ limit: "Number of token balances to return per page, up to the default max of 100 items.",
161
+ before: "Pagination cursor pointing to fetch token balances before a certain point.",
162
+ cutoffTimestamp: "UNIX timestamp to retrieve the balance snapshot from the nearest block before the specified cutoff time.",
163
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, `GBP`, `BTC` and `ETH`.",
164
+ },
165
+ multichain_address_activity: {
166
+ walletAddress: "The requested wallet address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
167
+ testnets: "Set to true to include testnets with activity in the response. By default, it's set to `false` and only returns mainnet activity.",
168
+ },
169
+ nft_for_address: {
170
+ chainName: "The chain name eg: `eth-mainnet`.",
171
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
172
+ noSpam: "If `true`, the suspected spam tokens are removed. Supported on all Foundational Chains.",
173
+ noNftAssetMetadata: "If `true`, the response shape is limited to a list of collections and token ids, omitting metadata and asset information. Helpful for faster response times and wallets holding a large number of NFTs.",
174
+ },
175
+ nft_check_ownership: {
176
+ chainName: "The chain name eg: `eth-mainnet`.",
177
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
178
+ collectionContract: "The requested collection address.",
179
+ traitsFilter: 'Filters NFTs based on a specific trait. If this filter is used, the API will return all NFTs with the specified trait. Must be used with "values-filter", is case-sensitive, and requires proper URL encoding.',
180
+ valuesFilter: 'Filters NFTs based on a specific trait value. If this filter is used, the API will return all NFTs with the specified trait value. Must be used with "traits-filter", is case-sensitive, and requires proper URL encoding.',
181
+ },
182
+ nft_check_ownership_token_id: {
183
+ chainName: "The chain name eg: `eth-mainnet`.",
184
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
185
+ collectionContract: "The requested collection address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
186
+ tokenId: "The requested token ID.",
187
+ },
188
+ bitcoin_hd_wallet_balances: {
189
+ walletAddress: "The extended public key (xPub/yPub/zPub) of the HD wallet.",
190
+ quoteCurrency: "The currency to convert the balance to. Supports `USD`, `CAD`, `EUR`, etc.",
191
+ },
192
+ bitcoin_transactions: {
193
+ address: "The bitcoin address to query.",
194
+ pageSize: "Number of items per page. Omitting this parameter defaults to 100.",
195
+ pageNumber: "0-indexed page number to begin pagination.",
196
+ },
197
+ bitcoin_non_hd_wallet_balances: {
198
+ walletAddress: "The requested bitcoin non-HD address.",
199
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
200
+ },
201
+ historical_token_prices: {
202
+ chainName: "The chain name eg: `eth-mainnet`.",
203
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
204
+ contractAddress: "Contract address for the token. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically. Supports multiple contract addresses separated by commas.",
205
+ from: "The start day of the historical price range (YYYY-MM-DD).",
206
+ to: "The end day of the historical price range (YYYY-MM-DD).",
207
+ pricesAtAsc: "Sort the prices in chronological ascending order. By default, it's set to `false` and returns prices in chronological descending order.",
208
+ },
209
+ pool_spot_prices: {
210
+ chainName: "The chain name eg: `eth-mainnet`.",
211
+ contractAddress: "The pool contract address.",
212
+ quoteCurrency: "The currency to convert. Supports `USD`, `CAD`, `EUR`, `SGD`, `INR`, `JPY`, `VND`, `CNY`, `KRW`, `RUB`, `TRY`, `NGN`, `ARS`, `AUD`, `CHF`, and `GBP`.",
213
+ },
214
+ token_approvals: {
215
+ chainName: "The chain name eg: `eth-mainnet`.",
216
+ walletAddress: "The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.",
217
+ },
218
+ };
219
+ //# sourceMappingURL=generated-descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-descriptions.js","sourceRoot":"","sources":["../../src/utils/generated-descriptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const TOOL_SLUG_MAP: Record<string, string>;
2
+ //# sourceMappingURL=tool-slug-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-slug-map.d.ts","sourceRoot":"","sources":["../../src/utils/tool-slug-map.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4ChD,CAAC"}
@@ -0,0 +1,31 @@
1
+ export const TOOL_SLUG_MAP = {
2
+ gas_prices: "get-gas-prices",
3
+ block: "get-a-block",
4
+ block_heights: "get-block-heights",
5
+ log_events_by_address: "get-log-events-by-contract-address",
6
+ log_events_by_topic: "get-log-events-by-topic-hash",
7
+ resolve_address: "get-resolved-address-for-registered-address",
8
+ token_balances: "get-token-balances-for-address",
9
+ historical_token_balances: "get-historical-token-balances-for-address",
10
+ historical_portfolio_value: "get-historical-portfolio-value-over-time",
11
+ erc20_token_transfers: "get-erc20-token-transfers-for-address",
12
+ token_holders: "get-token-holders-as-of-any-block-height-v2",
13
+ native_token_balance: "get-native-token-balance",
14
+ transaction: "get-a-transaction",
15
+ transaction_summary: "get-transaction-summary-for-address",
16
+ transactions_for_address: "get-paginated-transactions-for-address-v3",
17
+ transactions_for_block: "get-all-transactions-in-a-block",
18
+ multichain_transactions: "get-allchains-transactions",
19
+ multichain_balances: "get-allchains-balances",
20
+ multichain_address_activity: "get-address-activity",
21
+ nft_for_address: "get-nfts-for-address",
22
+ nft_check_ownership: "check-ownership-in-nft-collection",
23
+ nft_check_ownership_token_id: "check-ownership-in-nft-collection-token",
24
+ bitcoin_hd_wallet_balances: "get-bitcoin-balances-for-hd-address",
25
+ bitcoin_transactions: "get-transactions-for-bitcoin-address",
26
+ bitcoin_non_hd_wallet_balances: "get-bitcoin-balance-for-address",
27
+ historical_token_prices: "get-historical-token-prices",
28
+ pool_spot_prices: "get-pool-spot-prices",
29
+ token_approvals: "get-token-approvals-for-address",
30
+ };
31
+ //# sourceMappingURL=tool-slug-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-slug-map.js","sourceRoot":"","sources":["../../src/utils/tool-slug-map.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,aAAa,GAA2B;IAEjD,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,aAAa;IACpB,aAAa,EAAE,mBAAmB;IAClC,qBAAqB,EAAE,oCAAoC;IAC3D,mBAAmB,EAAE,8BAA8B;IACnD,eAAe,EAAE,6CAA6C;IAG9D,cAAc,EAAE,gCAAgC;IAChD,yBAAyB,EAAE,2CAA2C;IACtE,0BAA0B,EAAE,0CAA0C;IACtE,qBAAqB,EAAE,uCAAuC;IAC9D,aAAa,EAAE,6CAA6C;IAC5D,oBAAoB,EAAE,0BAA0B;IAGhD,WAAW,EAAE,mBAAmB;IAChC,mBAAmB,EAAE,qCAAqC;IAC1D,wBAAwB,EAAE,2CAA2C;IACrE,sBAAsB,EAAE,iCAAiC;IAGzD,uBAAuB,EAAE,4BAA4B;IACrD,mBAAmB,EAAE,wBAAwB;IAC7C,2BAA2B,EAAE,sBAAsB;IAGnD,eAAe,EAAE,sBAAsB;IACvC,mBAAmB,EAAE,mCAAmC;IACxD,4BAA4B,EAAE,yCAAyC;IAGvE,0BAA0B,EAAE,qCAAqC;IACjE,oBAAoB,EAAE,sCAAsC;IAC5D,8BAA8B,EAAE,iCAAiC;IAGjE,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,sBAAsB;IAGxC,eAAe,EAAE,iCAAiC;CACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@covalenthq/goldrush-mcp-server",
3
- "version": "0.0.3",
3
+ "version": "3.0.0",
4
4
  "description": "GoldRush MCP Server for interacting with Covalent GoldRush API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,35 +40,29 @@
40
40
  "homepage": "https://goldrush.dev/docs/",
41
41
  "repository": {
42
42
  "type": "git",
43
- "url": "https://github.com/covalenthq/goldrush-mcp-server.git"
43
+ "url": "https://github.com/covalenthq/covalent-api-sdk-ts.git",
44
+ "directory": "services/mcp-server"
44
45
  },
45
46
  "bugs": {
46
- "url": "https://github.com/covalenthq/goldrush-mcp-server/issues"
47
+ "url": "https://github.com/covalenthq/covalent-api-sdk-ts/issues"
47
48
  },
48
49
  "license": "MIT",
49
50
  "dependencies": {
50
- "@covalenthq/client-sdk": "^2.2.6",
51
- "@modelcontextprotocol/sdk": "^1.13.1",
52
- "dotenv": "^16.5.0",
51
+ "@modelcontextprotocol/sdk": "^1.26.0",
52
+ "dotenv": "^17.2.3",
53
53
  "express": "^5.1.0",
54
- "zod": "^3.25.30"
54
+ "hono": "4.11.7",
55
+ "zod": "^4.2.1",
56
+ "@covalenthq/client-sdk": "^3.0.0"
55
57
  },
56
58
  "devDependencies": {
57
- "@eslint/eslintrc": "^3.3.1",
58
- "@eslint/js": "^9.27.0",
59
- "@trivago/prettier-plugin-sort-imports": "^5.2.2",
60
59
  "@types/express": "^5.0.2",
61
- "@types/node": "^22.15.23",
62
- "@typescript-eslint/eslint-plugin": "^8.33.0",
63
- "@typescript-eslint/parser": "^8.33.0",
64
- "eslint": "^9.27.0",
65
- "eslint-config-prettier": "^10.1.5",
66
- "eslint-plugin-prettier": "^5.4.0",
67
- "prettier": "^3.5.3",
60
+ "@types/node": "^25.0.2",
61
+ "graphqurl": "^1.0.3",
68
62
  "rimraf": "^6.0.1",
69
63
  "ts-node": "^10.9.2",
70
64
  "typescript": "^5.8.3",
71
- "vitest": "^3.1.4"
65
+ "vitest": "^4.0.15"
72
66
  },
73
67
  "scripts": {
74
68
  "build": "tsc",
@@ -77,7 +71,8 @@
77
71
  "start:http": "node dist/index.js --transport http",
78
72
  "lint": "eslint .",
79
73
  "clean": "rimraf dist",
80
- "pretty": "prettier . --write",
74
+ "format": "prettier --write .",
75
+ "format:check": "prettier --check .",
81
76
  "example": "node dist/example-client.js",
82
77
  "test": "vitest",
83
78
  "test:allchains": "vitest test/AllChainsService.test.ts",
@@ -88,6 +83,7 @@
88
83
  "test:nft": "vitest test/NftService.test.ts",
89
84
  "test:pricing": "vitest test/PricingService.test.ts",
90
85
  "test:security": "vitest test/SecurityService.test.ts",
91
- "test:resources": "vitest test/Resources.test.ts"
86
+ "test:resources": "vitest test/Resources.test.ts",
87
+ "generate:descriptions": "tsx ../../s/gen-mcp-descriptions/gen-mcp-descriptions.ts"
92
88
  }
93
89
  }