@kasarlabs/ekubo-mcp 0.1.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +54 -0
  3. package/bin/ekubo-mcp.js +2 -0
  4. package/build/index.d.ts +2 -0
  5. package/build/index.js +119 -0
  6. package/build/index.js.map +1 -0
  7. package/build/interfaces/index.d.ts +21 -0
  8. package/build/interfaces/index.js +2 -0
  9. package/build/interfaces/index.js.map +1 -0
  10. package/build/lib/constants/abis/core.d.ts +92 -0
  11. package/build/lib/constants/abis/core.js +1341 -0
  12. package/build/lib/constants/abis/core.js.map +1 -0
  13. package/build/lib/constants/abis/erc20.d.ts +214 -0
  14. package/build/lib/constants/abis/erc20.js +1256 -0
  15. package/build/lib/constants/abis/erc20.js.map +1 -0
  16. package/build/lib/constants/abis/index.d.ts +5 -0
  17. package/build/lib/constants/abis/index.js +6 -0
  18. package/build/lib/constants/abis/index.js.map +1 -0
  19. package/build/lib/constants/abis/nft.d.ts +92 -0
  20. package/build/lib/constants/abis/nft.js +1227 -0
  21. package/build/lib/constants/abis/nft.js.map +1 -0
  22. package/build/lib/constants/abis/positions.d.ts +92 -0
  23. package/build/lib/constants/abis/positions.js +1595 -0
  24. package/build/lib/constants/abis/positions.js.map +1 -0
  25. package/build/lib/constants/abis/router.d.ts +76 -0
  26. package/build/lib/constants/abis/router.js +524 -0
  27. package/build/lib/constants/abis/router.js.map +1 -0
  28. package/build/lib/constants/addresses.d.ts +21 -0
  29. package/build/lib/constants/addresses.js +52 -0
  30. package/build/lib/constants/addresses.js.map +1 -0
  31. package/build/lib/utils/contracts.d.ts +8 -0
  32. package/build/lib/utils/contracts.js +26 -0
  33. package/build/lib/utils/contracts.js.map +1 -0
  34. package/build/lib/utils/events.d.ts +2 -0
  35. package/build/lib/utils/events.js +21 -0
  36. package/build/lib/utils/events.js.map +1 -0
  37. package/build/lib/utils/liquidity.d.ts +14 -0
  38. package/build/lib/utils/liquidity.js +19 -0
  39. package/build/lib/utils/liquidity.js.map +1 -0
  40. package/build/lib/utils/math.d.ts +4 -0
  41. package/build/lib/utils/math.js +25 -0
  42. package/build/lib/utils/math.js.map +1 -0
  43. package/build/lib/utils/pools.d.ts +9 -0
  44. package/build/lib/utils/pools.js +18 -0
  45. package/build/lib/utils/pools.js.map +1 -0
  46. package/build/lib/utils/quote.d.ts +5 -0
  47. package/build/lib/utils/quote.js +17 -0
  48. package/build/lib/utils/quote.js.map +1 -0
  49. package/build/lib/utils/swap.d.ts +13 -0
  50. package/build/lib/utils/swap.js +37 -0
  51. package/build/lib/utils/swap.js.map +1 -0
  52. package/build/lib/utils/token.d.ts +127 -0
  53. package/build/lib/utils/token.js +150 -0
  54. package/build/lib/utils/token.js.map +1 -0
  55. package/build/schemas/index.d.ts +388 -0
  56. package/build/schemas/index.js +119 -0
  57. package/build/schemas/index.js.map +1 -0
  58. package/build/tools/read/getPoolFeesPerLiquidity.d.ts +14 -0
  59. package/build/tools/read/getPoolFeesPerLiquidity.js +31 -0
  60. package/build/tools/read/getPoolFeesPerLiquidity.js.map +1 -0
  61. package/build/tools/read/getPoolInfo.d.ts +22 -0
  62. package/build/tools/read/getPoolInfo.js +45 -0
  63. package/build/tools/read/getPoolInfo.js.map +1 -0
  64. package/build/tools/read/getPoolLiquidity.d.ts +13 -0
  65. package/build/tools/read/getPoolLiquidity.js +30 -0
  66. package/build/tools/read/getPoolLiquidity.js.map +1 -0
  67. package/build/tools/read/getTokenPrice.d.ts +16 -0
  68. package/build/tools/read/getTokenPrice.js +42 -0
  69. package/build/tools/read/getTokenPrice.js.map +1 -0
  70. package/build/tools/write/addLiquidity.d.ts +21 -0
  71. package/build/tools/write/addLiquidity.js +77 -0
  72. package/build/tools/write/addLiquidity.js.map +1 -0
  73. package/build/tools/write/createPosition.d.ts +21 -0
  74. package/build/tools/write/createPosition.js +67 -0
  75. package/build/tools/write/createPosition.js.map +1 -0
  76. package/build/tools/write/swap.d.ts +19 -0
  77. package/build/tools/write/swap.js +76 -0
  78. package/build/tools/write/swap.js.map +1 -0
  79. package/build/tools/write/transferPosition.d.ts +16 -0
  80. package/build/tools/write/transferPosition.js +35 -0
  81. package/build/tools/write/transferPosition.js.map +1 -0
  82. package/build/tools/write/withdrawLiquidity.d.ts +19 -0
  83. package/build/tools/write/withdrawLiquidity.js +65 -0
  84. package/build/tools/write/withdrawLiquidity.js.map +1 -0
  85. package/package.json +42 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Kasar Labs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # Snak - Ekubo MCP
2
+
3
+ The Ekubo MCP provides tools for interacting with Ekubo Protocol, the next-generation AMM (Automated Market Maker) on Starknet that revolutionizes DeFi with ultra-concentrated liquidity and singleton architecture.
4
+
5
+ ## About Ekubo Protocol
6
+
7
+ Ekubo is Starknet's leading AMM, commanding 60% of the total AMM TVL and the majority of trading volume on the network. Built by former Uniswap Labs engineers, it features:
8
+
9
+ - **Singleton Architecture**: All pools consolidated into a single Cairo smart contract for 99% cheaper pool creation
10
+ - **Ultra-Concentrated Liquidity**: Up to 100x more capital efficient positions with precision down to 1/100th of a basis point
11
+ - **Extensions System**: Custom pool logic deployment without governance approval
12
+ - **Till Pattern**: Gas-optimized deferred token transfers
13
+
14
+ ## Features
15
+
16
+ This MCP adds the following tools:
17
+
18
+ ### Read Operations
19
+
20
+ - **get_pool_info**: Get comprehensive information about an Ekubo pool including current price, liquidity, and fee data.
21
+ - **get_token_price**: Get the price of a token via Ekubo pools by querying the pool price directly from the Core contract.
22
+ - **get_pool_liquidity**: Get the total liquidity available in an Ekubo pool at the current tick.
23
+ - **get_pool_fees_per_liquidity**: Get the cumulative fees per unit of liquidity for an Ekubo pool (both token0 and token1).
24
+
25
+ ### Write Operations
26
+
27
+ - **swap**: Swap tokens on Ekubo DEX. Supports both exact input and exact output swaps with configurable slippage tolerance.
28
+ - **create_position**: Create a new liquidity position (NFT) in an Ekubo pool within a specified price range (concentrated liquidity).
29
+ - **add_liquidity**: Add liquidity to an existing Ekubo pool position without minting a new NFT.
30
+ - **withdraw_liquidity**: Withdraw liquidity from an Ekubo pool position. Can withdraw full position, partial position, or only collect fees.
31
+ - **transfer_position**: Transfer an Ekubo NFT position to another address.
32
+
33
+ ## Usage
34
+
35
+ The Ekubo MCP is used by Claude Code and compatible MCP clients. Configure it in your MCP settings to enable Ekubo Protocol functionality.
36
+
37
+ ## Example
38
+
39
+ When asking the agent to perform Ekubo-related tasks, it will use the appropriate tool from this MCP:
40
+
41
+ ```
42
+ "Get info about the ETH/USDC pool on Ekubo" // Uses get_pool_info
43
+ "What's the price of STRK on Ekubo?" // Uses get_token_price
44
+ "How much liquidity is in the ETH/USDC pool?" // Uses get_pool_liquidity
45
+ "Swap 0.1 ETH for USDC on Ekubo" // Uses swap
46
+ "Create a liquidity position for ETH/USDC" // Uses create_position
47
+ "Add liquidity to my existing position" // Uses add_liquidity
48
+ "Withdraw liquidity from my position" // Uses withdraw_liquidity
49
+ "Transfer my position NFT to another address" // Uses transfer_position
50
+ ```
51
+
52
+ ## Development
53
+
54
+ To extend this MCP, add new tools in the `src/tools` directory and register them in the `registerTools` function in `src/tools/index.ts`.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import('../build/index.js');
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export declare const RegisterToolInServer: () => Promise<void>;
package/build/index.js ADDED
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import dotenv from 'dotenv';
5
+ import { registerToolsWithServer, getOnchainRead, getOnchainWrite, } from '@kasarlabs/ask-starknet-core';
6
+ import { poolKeySchema, getTokenPriceSchema, swapTokensSchema, addLiquiditySchema, withdrawLiquiditySchema, transferPositionSchema, createPositionSchema, } from './schemas/index.js';
7
+ import { getPoolInfo } from './tools/read/getPoolInfo.js';
8
+ import { getTokenPrice } from './tools/read/getTokenPrice.js';
9
+ import { getPoolLiquidity } from './tools/read/getPoolLiquidity.js';
10
+ import { getPoolFeesPerLiquidity } from './tools/read/getPoolFeesPerLiquidity.js';
11
+ import { swap } from './tools/write/swap.js';
12
+ import { createPosition } from './tools/write/createPosition.js';
13
+ import { addLiquidity } from './tools/write/addLiquidity.js';
14
+ import { withdrawLiquidity } from './tools/write/withdrawLiquidity.js';
15
+ import { transferPosition } from './tools/write/transferPosition.js';
16
+ dotenv.config();
17
+ const server = new McpServer({
18
+ name: 'ekubo-mcp',
19
+ version: '0.0.1',
20
+ });
21
+ const registerTools = (EkuboToolRegistry) => {
22
+ EkuboToolRegistry.push({
23
+ name: 'get_pool_info',
24
+ description: 'Get comprehensive information about an Ekubo pool including current price, liquidity, and fee data.',
25
+ schema: poolKeySchema,
26
+ execute: async (params) => {
27
+ const onchainRead = getOnchainRead();
28
+ return await getPoolInfo(onchainRead, params);
29
+ },
30
+ });
31
+ EkuboToolRegistry.push({
32
+ name: 'get_token_price',
33
+ description: 'Get the price of a token via Ekubo pools by querying the pool price directly from the Core contract.',
34
+ schema: getTokenPriceSchema,
35
+ execute: async (params) => {
36
+ const onchainRead = getOnchainRead();
37
+ return await getTokenPrice(onchainRead, params);
38
+ },
39
+ });
40
+ EkuboToolRegistry.push({
41
+ name: 'get_pool_liquidity',
42
+ description: 'Get the total liquidity available in an Ekubo pool at the current tick.',
43
+ schema: poolKeySchema,
44
+ execute: async (params) => {
45
+ const onchainRead = getOnchainRead();
46
+ return await getPoolLiquidity(onchainRead, params);
47
+ },
48
+ });
49
+ EkuboToolRegistry.push({
50
+ name: 'get_pool_fees_per_liquidity',
51
+ description: 'Get the cumulative fees per unit of liquidity for an Ekubo pool (both token0 and token1).',
52
+ schema: poolKeySchema,
53
+ execute: async (params) => {
54
+ const onchainRead = getOnchainRead();
55
+ return await getPoolFeesPerLiquidity(onchainRead, params);
56
+ },
57
+ });
58
+ EkuboToolRegistry.push({
59
+ name: 'swap',
60
+ description: 'Swap tokens on Ekubo DEX. Supports both exact input (specify input amount) and exact output (specify desired output amount) swaps with configurable slippage tolerance.',
61
+ schema: swapTokensSchema,
62
+ execute: async (params) => {
63
+ const onchainWrite = getOnchainWrite();
64
+ return await swap(onchainWrite, params);
65
+ },
66
+ });
67
+ EkuboToolRegistry.push({
68
+ name: 'create_position',
69
+ description: 'Create a new liquidity position (NFT) in an Ekubo pool within a specified price range (concentrated liquidity). Mints a new NFT position.',
70
+ schema: createPositionSchema,
71
+ execute: async (params) => {
72
+ const onchainWrite = getOnchainWrite();
73
+ return await createPosition(onchainWrite, params);
74
+ },
75
+ });
76
+ EkuboToolRegistry.push({
77
+ name: 'add_liquidity',
78
+ description: 'Add liquidity to an existing Ekubo pool position without minting a new NFT. Deposits tokens into the last position.',
79
+ schema: addLiquiditySchema,
80
+ execute: async (params) => {
81
+ const onchainWrite = getOnchainWrite();
82
+ return await addLiquidity(onchainWrite, params);
83
+ },
84
+ });
85
+ EkuboToolRegistry.push({
86
+ name: 'withdraw_liquidity',
87
+ description: 'Withdraw liquidity from an Ekubo pool position. Can withdraw full position, partial position, or only collect fees.',
88
+ schema: withdrawLiquiditySchema,
89
+ execute: async (params) => {
90
+ const onchainWrite = getOnchainWrite();
91
+ return await withdrawLiquidity(onchainWrite, params);
92
+ },
93
+ });
94
+ EkuboToolRegistry.push({
95
+ name: 'transfer_position',
96
+ description: 'Transfer an Ekubo NFT position to another address. The position NFT represents ownership of the liquidity position.',
97
+ schema: transferPositionSchema,
98
+ execute: async (params) => {
99
+ const onchainWrite = getOnchainWrite();
100
+ return await transferPosition(onchainWrite, params);
101
+ },
102
+ });
103
+ };
104
+ export const RegisterToolInServer = async () => {
105
+ const tools = [];
106
+ registerTools(tools);
107
+ await registerToolsWithServer(server, tools);
108
+ };
109
+ async function main() {
110
+ const transport = new StdioServerTransport();
111
+ await RegisterToolInServer();
112
+ await server.connect(transport);
113
+ console.error('Starknet Ekubo MCP Server running on stdio');
114
+ }
115
+ main().catch((error) => {
116
+ console.error('Fatal error in main():', error);
117
+ process.exit(1);
118
+ });
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Account, RpcProvider } from 'starknet';
2
+ export interface EnvParams {
3
+ provider: RpcProvider;
4
+ account: Account;
5
+ }
6
+ export interface CompletePoolInfo {
7
+ price: bigint;
8
+ liquidity: bigint;
9
+ fees_per_liquidity: {
10
+ fee_growth_global_0: bigint;
11
+ fee_growth_global_1: bigint;
12
+ };
13
+ current_tick: number;
14
+ }
15
+ export interface envRead {
16
+ provider: RpcProvider;
17
+ }
18
+ export interface envWrite {
19
+ provider: RpcProvider;
20
+ account: Account;
21
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ export declare const CORE_ABI: ({
2
+ type: string;
3
+ name: string;
4
+ interface_name: string;
5
+ members?: undefined;
6
+ variants?: undefined;
7
+ items?: undefined;
8
+ inputs?: undefined;
9
+ kind?: undefined;
10
+ } | {
11
+ type: string;
12
+ name: string;
13
+ members: {
14
+ name: string;
15
+ type: string;
16
+ }[];
17
+ interface_name?: undefined;
18
+ variants?: undefined;
19
+ items?: undefined;
20
+ inputs?: undefined;
21
+ kind?: undefined;
22
+ } | {
23
+ type: string;
24
+ name: string;
25
+ variants: {
26
+ name: string;
27
+ type: string;
28
+ }[];
29
+ interface_name?: undefined;
30
+ members?: undefined;
31
+ items?: undefined;
32
+ inputs?: undefined;
33
+ kind?: undefined;
34
+ } | {
35
+ type: string;
36
+ name: string;
37
+ items: {
38
+ type: string;
39
+ name: string;
40
+ inputs: {
41
+ name: string;
42
+ type: string;
43
+ }[];
44
+ outputs: {
45
+ type: string;
46
+ }[];
47
+ state_mutability: string;
48
+ }[];
49
+ interface_name?: undefined;
50
+ members?: undefined;
51
+ variants?: undefined;
52
+ inputs?: undefined;
53
+ kind?: undefined;
54
+ } | {
55
+ type: string;
56
+ name: string;
57
+ inputs: {
58
+ name: string;
59
+ type: string;
60
+ }[];
61
+ interface_name?: undefined;
62
+ members?: undefined;
63
+ variants?: undefined;
64
+ items?: undefined;
65
+ kind?: undefined;
66
+ } | {
67
+ type: string;
68
+ name: string;
69
+ kind: string;
70
+ members: {
71
+ name: string;
72
+ type: string;
73
+ kind: string;
74
+ }[];
75
+ interface_name?: undefined;
76
+ variants?: undefined;
77
+ items?: undefined;
78
+ inputs?: undefined;
79
+ } | {
80
+ type: string;
81
+ name: string;
82
+ kind: string;
83
+ variants: {
84
+ name: string;
85
+ type: string;
86
+ kind: string;
87
+ }[];
88
+ interface_name?: undefined;
89
+ members?: undefined;
90
+ items?: undefined;
91
+ inputs?: undefined;
92
+ })[];