kinetic-mcp 1.3.1 → 1.3.3

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Kinetic
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.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kinetic
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 CHANGED
@@ -1,138 +1,141 @@
1
- # Kinetic MCP — Solana Trading for Claude Desktop
2
-
3
- [![npm](https://img.shields.io/npm/v/kinetic-mcp)](https://www.npmjs.com/package/kinetic-mcp)
4
-
5
- An MCP server that lets you check balances and swap tokens on Solana through natural language in Claude Desktop. Runs locally on your machine, powered by the [Kinetic](https://kinetic.xyz) trading platform.
6
-
7
- **Prerequisites:** [Node.js 20+](https://nodejs.org)
8
-
9
- ## Quick Start
10
-
11
- ### Option A: Setup Wizard (Recommended)
12
-
13
- The setup wizard walks you through keypair import and Claude Desktop configuration:
14
-
15
- ```bash
16
- npx kinetic-mcp setup
17
- ```
18
-
19
- ### Option B: Manual Configuration
20
-
21
- Add this to your Claude Desktop config file and restart Claude Desktop:
22
-
23
- | Platform | Config file path |
24
- | -------- | ----------------------------------------------------------------- |
25
- | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
26
- | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
27
- | Linux | `~/.config/Claude/claude_desktop_config.json` |
28
-
29
- ```json
30
- {
31
- "mcpServers": {
32
- "solana-trading": {
33
- "command": "npx",
34
- "args": ["-y", "kinetic-mcp"],
35
- "env": {
36
- "SOLANA_KEYPAIR_PATH": "/absolute/path/to/your/keypair.json"
37
- }
38
- }
39
- }
40
- }
41
- ```
42
-
43
- If you have a Kinetic API key, add `"API_KEY": "your_key"` to the `env` block.
44
-
45
- Restart Claude Desktop (fully quit and reopen — not just close the window). Look for the hammer icon in the chat input.
46
-
47
- ## Creating a Keypair
48
-
49
- You need a Solana keypair file — a JSON array of 64 integers in [Solana CLI format](https://docs.solanalabs.com/cli/wallets/file-system).
50
-
51
- ### Exporting from Phantom
52
-
53
- Open Phantom > Settings > Manage Accounts > [Your Account] > Show Private Key. Copy the base58 string.
54
-
55
- ### Converting to Keypair File
56
-
57
- Run from any directory:
58
-
59
- ```bash
60
- npx -y -p bs58 node --input-type=module -e "
61
- import bs58 from 'bs58';
62
- import { writeFileSync, mkdirSync } from 'fs';
63
- import { join } from 'path';
64
- import { homedir } from 'os';
65
- const dir = join(homedir(), '.config', 'solana');
66
- mkdirSync(dir, { recursive: true });
67
- const out = join(dir, 'trading-keypair.json');
68
- writeFileSync(out, JSON.stringify(Array.from(bs58.decode('YOUR_PRIVATE_KEY_HERE'))) + '\n');
69
- console.log('Saved to', out);
70
- "
71
- ```
72
-
73
- On macOS/Linux, lock down permissions: `chmod 600 ~/.config/solana/trading-keypair.json`
74
-
75
- Update `SOLANA_KEYPAIR_PATH` in your Claude Desktop config to point to the keypair file, then restart Claude Desktop.
76
-
77
- **Never share your private key, paste it into websites, or commit it to git.**
78
-
79
- ## Usage
80
-
81
- Try these prompts in Claude Desktop:
82
-
83
- - "What's my SOL balance?"
84
- - "Show me all my token holdings"
85
- - "Swap 0.01 SOL for USDC" — Claude shows a quote preview and asks for confirmation
86
- - "Swap 100 USDC for SOL with 1% slippage" — specify custom slippage
87
- - "Send 0.1 SOL to Abc123..." — previews transfer details, then confirms
88
- - "What's the price of BONK?" — get current token prices in USDC
89
- - "Show my recent transactions" — view last 10 transactions
90
-
91
- Claude will ask for permission the first time it uses a tool. Click "Allow for This Chat" or "Allow Always".
92
-
93
- ## Available Tools
94
-
95
- | Tool | Description | Inputs |
96
- | ------------------------- | -------------------------------------- | ------------------------------------------------------------------------ |
97
- | `get_wallet_balance` | Get SOL balance and all token holdings | None |
98
- | `swap_tokens` | Swap one token for another | `from_token`, `to_token`, `amount`, `slippage_bps` (optional), `confirm` |
99
- | `send_sol` | Send SOL to another wallet | `recipient`, `amount`, `confirm` |
100
- | `get_token_price` | Get current token prices in USDC | `tokens` (array of symbols or mints) |
101
- | `get_transaction_history` | Get 10 most recent wallet transactions | None |
102
-
103
- ## Safety Guardrails
104
-
105
- - **Two-step confirmation** — swaps and transfers always show a preview first; you must confirm before execution
106
- - **Max trade size** — `MAX_TRADE_SOL` limits swap size in SOL-equivalent (default: 10 SOL)
107
- - **Slippage cap** — maximum 10% (1000 bps) enforced by input validation
108
- - **No private key exposure** — keypair is loaded from a local file only, never accepted as tool input
109
-
110
- ## Troubleshooting
111
-
112
- | Problem | Solution |
113
- | --------------------------------- | ------------------------------------------------------------------------------------------------ |
114
- | No hammer icon appears | Check that your config JSON is valid and the path is absolute. Fully restart Claude Desktop. |
115
- | "Unable to connect to MCP server" | Check Claude Desktop logs for errors. Verify Node.js 20+ is installed. |
116
- | Tools appear but return errors | Verify `SOLANA_KEYPAIR_PATH` points to a valid 64-byte keypair file. Test network access. |
117
- | "Cannot find module" errors | Run `npm install && npm run build` (if running from source). Make sure you're using Node.js 20+. |
118
- | Balance shows mint addresses | Token not in well-known table. Use the mint address directly for swaps. |
119
-
120
- **Where to find Claude Desktop logs:**
121
-
122
- - **macOS**: `~/Library/Logs/Claude/`
123
- - **Windows**: `%APPDATA%\Claude\logs\`
124
- - **Linux**: `~/.config/Claude/logs/`
125
-
126
- ## Configuration
127
-
128
- The only required environment variable is `SOLANA_KEYPAIR_PATH`. All others have sensible defaults.
129
-
130
- See [docs/development.md](docs/development.md#environment-variables) for the full configuration reference.
131
-
132
- ## Contributing
133
-
134
- See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
135
-
136
- ## License
137
-
138
- MIT
1
+ # Kinetic MCP — Solana Trading for Claude Desktop
2
+
3
+ [![npm](https://img.shields.io/npm/v/kinetic-mcp)](https://www.npmjs.com/package/kinetic-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dm/kinetic-mcp)](https://www.npmjs.com/package/kinetic-mcp)
5
+ [![license](https://img.shields.io/npm/l/kinetic-mcp)](https://github.com/KineticXYZ/Kinetic-MCP/blob/main/LICENSE)
6
+ [![CI](https://github.com/KineticXYZ/Kinetic-MCP/actions/workflows/ci.yml/badge.svg)](https://github.com/KineticXYZ/Kinetic-MCP/actions/workflows/ci.yml)
7
+
8
+ An MCP server that lets you check balances and swap tokens on Solana through natural language in Claude Desktop. Runs locally on your machine, powered by the [Kinetic](https://kinetic.xyz) trading platform.
9
+
10
+ **Prerequisites:** [Node.js 20+](https://nodejs.org)
11
+
12
+ ## Quick Start
13
+
14
+ ### Option A: Setup Wizard (Recommended)
15
+
16
+ The setup wizard walks you through keypair import and Claude Desktop configuration:
17
+
18
+ ```bash
19
+ npx kinetic-mcp setup
20
+ ```
21
+
22
+ ### Option B: Manual Configuration
23
+
24
+ Add this to your Claude Desktop config file and restart Claude Desktop:
25
+
26
+ | Platform | Config file path |
27
+ | -------- | ----------------------------------------------------------------- |
28
+ | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
29
+ | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
30
+ | Linux | `~/.config/Claude/claude_desktop_config.json` |
31
+
32
+ ```json
33
+ {
34
+ "mcpServers": {
35
+ "solana-trading": {
36
+ "command": "npx",
37
+ "args": ["-y", "kinetic-mcp"],
38
+ "env": {
39
+ "SOLANA_KEYPAIR_PATH": "/absolute/path/to/your/keypair.json"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ If you have a Kinetic API key, add `"API_KEY": "your_key"` to the `env` block.
47
+
48
+ Restart Claude Desktop (fully quit and reopen — not just close the window). Look for the hammer icon in the chat input.
49
+
50
+ ## Creating a Keypair
51
+
52
+ You need a Solana keypair file — a JSON array of 64 integers in [Solana CLI format](https://docs.solanalabs.com/cli/wallets/file-system).
53
+
54
+ ### Exporting from Phantom
55
+
56
+ Open Phantom > Settings > Manage Accounts > [Your Account] > Show Private Key. Copy the base58 string.
57
+
58
+ ### Converting to Keypair File
59
+
60
+ Run from any directory:
61
+
62
+ ```bash
63
+ npx -y -p bs58 node --input-type=module -e "
64
+ import bs58 from 'bs58';
65
+ import { writeFileSync, mkdirSync } from 'fs';
66
+ import { join } from 'path';
67
+ import { homedir } from 'os';
68
+ const dir = join(homedir(), '.config', 'solana');
69
+ mkdirSync(dir, { recursive: true });
70
+ const out = join(dir, 'trading-keypair.json');
71
+ writeFileSync(out, JSON.stringify(Array.from(bs58.decode('YOUR_PRIVATE_KEY_HERE'))) + '\n');
72
+ console.log('Saved to', out);
73
+ "
74
+ ```
75
+
76
+ On macOS/Linux, lock down permissions: `chmod 600 ~/.config/solana/trading-keypair.json`
77
+
78
+ Update `SOLANA_KEYPAIR_PATH` in your Claude Desktop config to point to the keypair file, then restart Claude Desktop.
79
+
80
+ **Never share your private key, paste it into websites, or commit it to git.**
81
+
82
+ ## Usage
83
+
84
+ Try these prompts in Claude Desktop:
85
+
86
+ - "What's my SOL balance?"
87
+ - "Show me all my token holdings"
88
+ - "Swap 0.01 SOL for USDC" — Claude shows a quote preview and asks for confirmation
89
+ - "Swap 100 USDC for SOL with 1% slippage" — specify custom slippage
90
+ - "Send 0.1 SOL to Abc123..." — previews transfer details, then confirms
91
+ - "What's the price of BONK?" get current token prices in USDC
92
+ - "Show my recent transactions" — view last 10 transactions
93
+
94
+ Claude will ask for permission the first time it uses a tool. Click "Allow for This Chat" or "Allow Always".
95
+
96
+ ## Available Tools
97
+
98
+ | Tool | Description | Inputs |
99
+ | ------------------------- | -------------------------------------- | ------------------------------------------------------------------------ |
100
+ | `get_wallet_balance` | Get SOL balance and all token holdings | None |
101
+ | `swap_tokens` | Swap one token for another | `from_token`, `to_token`, `amount`, `slippage_bps` (optional), `confirm` |
102
+ | `send_sol` | Send SOL to another wallet | `recipient`, `amount`, `confirm` |
103
+ | `get_token_price` | Get current token prices in USDC | `tokens` (array of symbols or mints) |
104
+ | `get_transaction_history` | Get 10 most recent wallet transactions | None |
105
+
106
+ ## Safety Guardrails
107
+
108
+ - **Two-step confirmation** — swaps and transfers always show a preview first; you must confirm before execution
109
+ - **Max trade size** — `MAX_TRADE_SOL` limits swap size in SOL-equivalent (default: 10 SOL)
110
+ - **Slippage cap** — maximum 10% (1000 bps) enforced by input validation
111
+ - **No private key exposure** — keypair is loaded from a local file only, never accepted as tool input
112
+
113
+ ## Troubleshooting
114
+
115
+ | Problem | Solution |
116
+ | --------------------------------- | ------------------------------------------------------------------------------------------------ |
117
+ | No hammer icon appears | Check that your config JSON is valid and the path is absolute. Fully restart Claude Desktop. |
118
+ | "Unable to connect to MCP server" | Check Claude Desktop logs for errors. Verify Node.js 20+ is installed. |
119
+ | Tools appear but return errors | Verify `SOLANA_KEYPAIR_PATH` points to a valid 64-byte keypair file. Test network access. |
120
+ | "Cannot find module" errors | Run `npm install && npm run build` (if running from source). Make sure you're using Node.js 20+. |
121
+ | Balance shows mint addresses | Token not in well-known table. Use the mint address directly for swaps. |
122
+
123
+ **Where to find Claude Desktop logs:**
124
+
125
+ - **macOS**: `~/Library/Logs/Claude/`
126
+ - **Windows**: `%APPDATA%\Claude\logs\`
127
+ - **Linux**: `~/.config/Claude/logs/`
128
+
129
+ ## Configuration
130
+
131
+ The only required environment variable is `SOLANA_KEYPAIR_PATH`. All others have sensible defaults.
132
+
133
+ See [docs/development.md](docs/development.md#environment-variables) for the full configuration reference.
134
+
135
+ ## Contributing
136
+
137
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
138
+
139
+ ## License
140
+
141
+ MIT
package/build/index.js CHANGED
@@ -62,13 +62,20 @@ async function main() {
62
62
  const server = new McpServer({
63
63
  name: "kinetic-mcp",
64
64
  version,
65
+ }, {
66
+ instructions: [
67
+ "This server provides Solana blockchain tools for checking wallet balances, swapping tokens, sending SOL, getting token prices, and viewing transaction history.",
68
+ "WORKFLOW: For swap_tokens and send_sol, ALWAYS call with confirm=false first to preview, then confirm=true to execute. Never skip the preview step.",
69
+ "Token resolution: Use common symbols (SOL, USDC, BONK) or full Solana mint addresses. If a symbol is ambiguous, use the mint address.",
70
+ "Safety: Trades and SOL transfers are both capped at MAX_TRADE_SOL (default 10 SOL equivalent). Slippage is capped at 1000 bps (10%).",
71
+ ].join(" "),
65
72
  });
66
73
  // --- Tool: get_wallet_balance ---
67
- server.tool("get_wallet_balance", "Get SOL balance and all token balances for the connected wallet", {}, async () => {
74
+ server.tool("get_wallet_balance", "Returns SOL and all SPL token balances for the connected Solana wallet. Includes mint address, symbol (when resolvable), decimals, and human-readable amount for each holding. Read-only query, no confirmation required.", {}, async () => {
68
75
  return getWalletBalance();
69
76
  });
70
77
  // --- Tool: swap_tokens ---
71
- server.tool("swap_tokens", "Swap one Solana token for another. IMPORTANT: Always call first with confirm=false to preview the quote, then call again with confirm=true and identical parameters to execute. Never set confirm=true without previewing first.", {
78
+ server.tool("swap_tokens", "Execute a token-to-token swap on Solana via DEX aggregator. Supports SOL and any SPL token by symbol or mint address. Returns quote with price impact, minimum received, and fees. Trade size limited to MAX_TRADE_SOL equivalent. IMPORTANT: Always call first with confirm=false to preview the quote, then call again with confirm=true and identical parameters to execute. Never set confirm=true without previewing first.", {
72
79
  from_token: z.string().describe("Token to sell — symbol (e.g. 'SOL') or mint address"),
73
80
  to_token: z.string().describe("Token to buy — symbol (e.g. 'BONK') or mint address"),
74
81
  amount: z
@@ -90,7 +97,7 @@ async function main() {
90
97
  return swapTokens(params);
91
98
  });
92
99
  // --- Tool: send_sol ---
93
- server.tool("send_sol", "Send SOL to another wallet. IMPORTANT: Always call first with confirm=false to preview the transfer details, then call again with confirm=true and identical parameters to execute. Never set confirm=true without previewing first.", {
100
+ server.tool("send_sol", "Transfer native SOL to a Solana wallet address. Returns preview with recipient, amount, and estimated fees. IMPORTANT: Always call first with confirm=false to preview the transfer details, then call again with confirm=true and identical parameters to execute. Never set confirm=true without previewing first.", {
94
101
  recipient: z.string().describe("Destination wallet address (base58 Solana public key)"),
95
102
  amount: z
96
103
  .number()
@@ -105,7 +112,7 @@ async function main() {
105
112
  return sendSol(params);
106
113
  });
107
114
  // --- Tool: get_token_price ---
108
- server.tool("get_token_price", "Get the current price of one or more tokens in USDC. Accepts token symbols (e.g. 'SOL') or mint addresses.", {
115
+ server.tool("get_token_price", "Returns current USDC price for one or more Solana tokens. Accepts token symbols (SOL, USDC, BONK) or mint addresses. Prices sourced from DEX liquidity via Kinetic routing engine. Read-only query, no confirmation required.", {
109
116
  tokens: z
110
117
  .array(z.string().min(1).max(100))
111
118
  .min(1)
@@ -115,7 +122,7 @@ async function main() {
115
122
  return getTokenPrice(params);
116
123
  });
117
124
  // --- Tool: get_transaction_history ---
118
- server.tool("get_transaction_history", "Get the 10 most recent transactions for the connected wallet. Shows signature, type, status, and timestamp for each transaction.", {}, async () => {
125
+ server.tool("get_transaction_history", "Returns the 10 most recent transactions for the connected Solana wallet. Includes signature, type, status, and timestamp for each transaction. Read-only query, no confirmation required.", {}, async () => {
119
126
  return getTransactionHistory();
120
127
  });
121
128
  logger.info({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,53 +1,84 @@
1
- {
2
- "name": "kinetic-mcp",
3
- "version": "1.3.1",
4
- "description": "MCP server for Solana trading via Kinetic API",
5
- "type": "module",
6
- "main": "build/index.js",
7
- "bin": {
8
- "kinetic-mcp": "build/index.js"
9
- },
10
- "files": [
11
- "build/",
12
- "scripts/setup.mjs"
13
- ],
14
- "engines": {
15
- "node": ">=20"
16
- },
17
- "scripts": {
18
- "build": "tsc",
19
- "dev": "tsc --watch",
20
- "start": "node build/index.js",
21
- "clean": "rm -rf build/",
22
- "typecheck": "tsc --noEmit",
23
- "lint": "eslint src/",
24
- "lint:fix": "eslint src/ --fix",
25
- "format": "prettier --write \"src/**/*.ts\"",
26
- "format:check": "prettier --check \"src/**/*.ts\"",
27
- "test": "vitest run",
28
- "test:watch": "vitest",
29
- "setup": "node scripts/setup.mjs"
30
- },
31
- "dependencies": {
32
- "@clack/prompts": "^1.0.1",
33
- "@modelcontextprotocol/sdk": "^1.27.0",
34
- "@solana/spl-token": "^0.4.9",
35
- "@solana/web3.js": "^1.95.0",
36
- "bs58": "^6.0.0",
37
- "gradient-string": "^3.0.0",
38
- "picocolors": "^1.1.1",
39
- "pino": "^10.3.1",
40
- "zod": "^3.23.0"
41
- },
42
- "devDependencies": {
43
- "@eslint/js": "^10.0.1",
44
- "@types/node": "^20.19.35",
45
- "eslint": "^10.0.2",
46
- "eslint-config-prettier": "^10.1.8",
47
- "globals": "^17.3.0",
48
- "prettier": "^3.8.1",
49
- "typescript": "^5.7.0",
50
- "typescript-eslint": "^8.56.1",
51
- "vitest": "^4.0.18"
52
- }
53
- }
1
+ {
2
+ "name": "kinetic-mcp",
3
+ "version": "1.3.3",
4
+ "description": "MCP server for Solana trading in Claude Desktop — check balances, swap tokens, send SOL, and get prices via natural language",
5
+ "type": "module",
6
+ "main": "build/index.js",
7
+ "bin": {
8
+ "kinetic-mcp": "build/index.js"
9
+ },
10
+ "files": [
11
+ "build/",
12
+ "scripts/setup.mjs"
13
+ ],
14
+ "engines": {
15
+ "node": ">=20"
16
+ },
17
+ "license": "MIT",
18
+ "author": {
19
+ "name": "Kinetic",
20
+ "url": "https://kinetic.xyz"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/KineticXYZ/Kinetic-MCP.git"
25
+ },
26
+ "homepage": "https://github.com/KineticXYZ/Kinetic-MCP#readme",
27
+ "bugs": {
28
+ "url": "https://github.com/KineticXYZ/Kinetic-MCP/issues"
29
+ },
30
+ "keywords": [
31
+ "mcp",
32
+ "mcp-server",
33
+ "model-context-protocol",
34
+ "solana",
35
+ "trading",
36
+ "swap",
37
+ "token-swap",
38
+ "claude",
39
+ "claude-desktop",
40
+ "solana-trading",
41
+ "defi",
42
+ "spl-token",
43
+ "kinetic",
44
+ "crypto",
45
+ "ai-tools"
46
+ ],
47
+ "scripts": {
48
+ "build": "tsc",
49
+ "dev": "tsc --watch",
50
+ "start": "node build/index.js",
51
+ "clean": "rm -rf build/",
52
+ "typecheck": "tsc --noEmit",
53
+ "lint": "eslint src/",
54
+ "lint:fix": "eslint src/ --fix",
55
+ "format": "prettier --write \"src/**/*.ts\"",
56
+ "format:check": "prettier --check \"src/**/*.ts\"",
57
+ "test": "vitest run",
58
+ "test:watch": "vitest",
59
+ "setup": "node scripts/setup.mjs",
60
+ "test:npx": "node scripts/test-npx.mjs"
61
+ },
62
+ "dependencies": {
63
+ "@clack/prompts": "^1.0.1",
64
+ "@modelcontextprotocol/sdk": "^1.27.0",
65
+ "@solana/spl-token": "^0.4.9",
66
+ "@solana/web3.js": "^1.95.0",
67
+ "bs58": "^6.0.0",
68
+ "gradient-string": "^3.0.0",
69
+ "picocolors": "^1.1.1",
70
+ "pino": "^10.3.1",
71
+ "zod": "^3.23.0"
72
+ },
73
+ "devDependencies": {
74
+ "@eslint/js": "^10.0.1",
75
+ "@types/node": "^20.19.35",
76
+ "eslint": "^10.0.2",
77
+ "eslint-config-prettier": "^10.1.8",
78
+ "globals": "^17.3.0",
79
+ "prettier": "^3.8.1",
80
+ "typescript": "^5.7.0",
81
+ "typescript-eslint": "^8.56.1",
82
+ "vitest": "^4.0.18"
83
+ }
84
+ }