omnitrade-mcp 0.8.0 → 0.9.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.
package/README.md CHANGED
@@ -1,28 +1,125 @@
1
- # OmniTrade MCP
1
+ <p align="center">
2
+ <br />
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Connectry-io/omnitrade-mcp/main/.github/assets/logo-dark.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/Connectry-io/omnitrade-mcp/main/.github/assets/logo-light.svg">
6
+ <img alt="OmniTrade" src="https://raw.githubusercontent.com/Connectry-io/omnitrade-mcp/main/.github/assets/logo-dark.svg" width="350">
7
+ </picture>
8
+ <br />
9
+ </p>
10
+
11
+ <h3 align="center">
12
+ Trade crypto with natural language
13
+ </h3>
14
+
15
+ <p align="center">
16
+ Connect Claude to 107+ exchanges through the Model Context Protocol.<br />
17
+ Buy, sell, track, and analyze — all by just asking.
18
+ </p>
19
+
20
+ <p align="center">
21
+ <a href="https://www.npmjs.com/package/omnitrade-mcp"><img src="https://img.shields.io/npm/v/omnitrade-mcp?style=flat&colorA=18181B&colorB=28CF8D" alt="npm version"></a>
22
+ <a href="https://www.npmjs.com/package/omnitrade-mcp"><img src="https://img.shields.io/npm/dm/omnitrade-mcp?style=flat&colorA=18181B&colorB=28CF8D" alt="npm downloads"></a>
23
+ <a href="https://github.com/Connectry-io/omnitrade-mcp"><img src="https://img.shields.io/github/stars/Connectry-io/omnitrade-mcp?style=flat&colorA=18181B&colorB=28CF8D" alt="GitHub stars"></a>
24
+ <a href="https://github.com/Connectry-io/omnitrade-mcp/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Connectry-io/omnitrade-mcp?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
25
+ </p>
26
+
27
+ <p align="center">
28
+ <a href="#-quick-start">Quick Start</a> •
29
+ <a href="#-features">Features</a> •
30
+ <a href="#-examples">Examples</a> •
31
+ <a href="#-tui-dashboard">Dashboard</a> •
32
+ <a href="#-paper-trading">Paper Trading</a> •
33
+ <a href="#-tools">Tools</a> •
34
+ <a href="#-security">Security</a>
35
+ </p>
2
36
 
3
- > **One AI. 107 Exchanges. Natural language trading.**
37
+ ---
38
+
39
+ > ⚠️ **Disclaimer:** OmniTrade is a developer tool and does not constitute financial advice. Cryptocurrency trading involves substantial risk. Connectry Labs is not a licensed financial advisor. Always do your own research and consult a qualified financial advisor before making investment decisions. [Use at your own risk.](https://github.com/Connectry-io/omnitrade-mcp/blob/main/LICENSE)
40
+
41
+ ## 💬 What is OmniTrade?
42
+
43
+ OmniTrade is an [MCP](https://modelcontextprotocol.io/) server that lets you trade cryptocurrency using natural language through Claude. No more juggling exchange dashboards — just tell Claude what you want:
44
+
45
+ ```
46
+ You: "What's my portfolio worth?"
47
+ Claude: Your portfolio across 2 exchanges is worth $12,456.78
48
+
49
+ Binance: $8,234.56
50
+ └── 0.15 BTC ($6,322.50)
51
+ └── 2.5 ETH ($1,912.06)
52
+
53
+ Coinbase: $4,222.22
54
+ └── 100 SOL ($4,222.22)
55
+ ```
56
+
57
+ ```
58
+ You: "Buy $100 of ETH on the cheapest exchange"
59
+ Claude: I found the best price for ETH:
60
+ • Kraken: $765.20 (cheapest)
61
+ • Binance: $765.89 (+0.09%)
62
+ • Coinbase: $766.12 (+0.12%)
63
+
64
+ ✅ Bought 0.1306 ETH on Kraken for $100.00
65
+ ```
66
+
67
+ <br />
68
+
69
+ ## ✨ Features
70
+
71
+ <table>
72
+ <tr>
73
+ <td width="50%">
74
+
75
+ ### 🔗 107+ Exchanges
76
+ Connect to Binance, Coinbase, Kraken, and 104 more exchanges through [CCXT](https://github.com/ccxt/ccxt). One config, all exchanges.
77
+
78
+ ### 💬 Natural Language
79
+ No commands to memorize. Just ask Claude in plain English. "Buy ETH", "Show my balance", "Find arbitrage opportunities".
4
80
 
5
- Connect Claude to Binance, Coinbase, Kraken, and 104 more cryptocurrency exchanges through the Model Context Protocol (MCP).
81
+ ### 📊 Portfolio Intelligence
82
+ Unified view of all holdings across exchanges. Track P&L over time, record snapshots, and see performance trends.
6
83
 
7
- [![npm version](https://img.shields.io/npm/v/omnitrade-mcp)](https://www.npmjs.com/package/omnitrade-mcp)
8
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
84
+ ### 🔔 Price Alerts
85
+ Set alerts for any trading pair. Get notified when prices hit your targets. Works across all connected exchanges.
9
86
 
10
- ## Features
87
+ </td>
88
+ <td width="50%">
11
89
 
12
- - 🔗 **107 Exchanges** Connect to any exchange supported by CCXT
13
- - 🤖 **Natural Language** Ask Claude to trade in plain English
14
- - 🔒 **Local-Only** — API keys never leave your machine
15
- - ⚡ **Arbitrage Detection** — Find price differences across exchanges
16
- - 📊 **Unified Portfolio** — See all holdings in one view
17
- - 🛡️ **Safety First** — Order limits, pair whitelists, testnet mode
18
- - 🔔 **Price Alerts** — Get notified when crypto hits your target price
19
- - 📈 **ASCII Charts** — View price history right in your terminal
20
- - 📊 **Portfolio Tracking** — Track P&L over time with snapshots
21
- - ⚖️ **Auto-Rebalance** — Automatically rebalance to target allocations
22
- - 💰 **DCA (Dollar Cost Average)** — Set up recurring buys
23
- - 🎯 **Conditional Orders** — Execute trades based on price conditions
90
+ ### 📈 DCA & Conditional Orders
91
+ Dollar-cost averaging with natural language: "Buy $10 of BTC every day". Conditional orders: "Buy ETH if it drops 5%".
24
92
 
25
- ## Quick Start
93
+ ### Auto-Rebalancing
94
+ "Rebalance to 50% BTC, 30% ETH, 20% SOL" — Claude calculates and executes the trades to hit your targets.
95
+
96
+ ### 📉 Rich Price Charts
97
+ View price charts right in your conversation. 1h, 4h, 24h, 7d timeframes. Returns rich **SVG charts** — full color, no need to switch apps.
98
+
99
+ ### 🔒 100% Local & Secure
100
+ Your API keys never leave your machine. No cloud, no telemetry, fully open source. Audit every line.
101
+
102
+ </td>
103
+ </tr>
104
+ <tr>
105
+ <td width="50%">
106
+
107
+ ### 🖥️ TUI Dashboard *(v0.9.0)*
108
+ Full-screen Bloomberg Terminal-style interface in your terminal. Live prices, interactive charts, and a live portfolio panel — all in one view. Run `omnitrade dashboard` to launch.
109
+
110
+ </td>
111
+ <td width="50%">
112
+
113
+ ### 📝 Paper Trading *(v0.9.0)*
114
+ Practice risk-free with a virtual $10,000 USDT wallet. Buy and sell at live market prices, track your portfolio, review trade history, and reset anytime. No real funds, full real data.
115
+
116
+ </td>
117
+ </tr>
118
+ </table>
119
+
120
+ <br />
121
+
122
+ ## 🚀 Quick Start
26
123
 
27
124
  ### 1. Install
28
125
 
@@ -30,364 +127,671 @@ Connect Claude to Binance, Coinbase, Kraken, and 104 more cryptocurrency exchang
30
127
  npm install -g omnitrade-mcp
31
128
  ```
32
129
 
33
- ### 2. Configure
130
+ ### 2. Run the Setup Wizard
131
+
132
+ ```bash
133
+ omnitrade setup
134
+ ```
135
+
136
+ The interactive wizard walks you through everything in ~2 minutes:
137
+
138
+ - 🔑 Add your exchange API keys (Binance, Coinbase, Kraken, and more)
139
+ - 🔒 Configure security settings (order size limits, allowed pairs, testnet mode)
140
+ - 🖥️ Auto-configure **Claude Desktop** — writes to your config file automatically
141
+ - 💻 Optionally auto-configure **Claude Code** (terminal) — writes to `~/.claude/settings.json`
142
+
143
+ That's it. No manual JSON editing required.
34
144
 
35
- Create `~/.omnitrade/config.json`:
145
+ ### 3. Start Trading
146
+
147
+ Restart Claude Desktop (or reload Claude Code) and start chatting:
148
+
149
+ - *"What's my balance on Binance?"*
150
+ - *"Show me ETH prices across all exchanges"*
151
+ - *"Buy $50 of BTC on the cheapest exchange"*
152
+ - *"Are there any arbitrage opportunities?"*
153
+
154
+ <br />
155
+
156
+ ## ⚙️ Manual Configuration
157
+
158
+ Prefer to configure manually? Add OmniTrade to your Claude config:
159
+
160
+ ### Claude Desktop
161
+
162
+ <details>
163
+ <summary><b>macOS</b> — <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></summary>
36
164
 
37
165
  ```json
38
166
  {
39
- "exchanges": {
40
- "binance": {
41
- "apiKey": "YOUR_API_KEY",
42
- "secret": "YOUR_SECRET",
43
- "testnet": true
44
- },
45
- "coinbase": {
46
- "apiKey": "YOUR_API_KEY",
47
- "secret": "YOUR_SECRET",
48
- "password": "YOUR_PASSPHRASE",
49
- "testnet": true
167
+ "mcpServers": {
168
+ "omnitrade": {
169
+ "command": "omnitrade",
170
+ "args": ["start"]
50
171
  }
51
- },
52
- "security": {
53
- "maxOrderSize": 100,
54
- "confirmTrades": true
55
172
  }
56
173
  }
57
174
  ```
58
175
 
59
- Set proper permissions:
176
+ </details>
60
177
 
61
- ```bash
62
- chmod 600 ~/.omnitrade/config.json
178
+ <details>
179
+ <summary><b>Windows</b> <code>%APPDATA%\Claude\claude_desktop_config.json</code></summary>
180
+
181
+ ```json
182
+ {
183
+ "mcpServers": {
184
+ "omnitrade": {
185
+ "command": "omnitrade",
186
+ "args": ["start"]
187
+ }
188
+ }
189
+ }
63
190
  ```
64
191
 
65
- ### 3. Add to Claude Desktop
192
+ </details>
66
193
 
67
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
194
+ ### Claude Code (Terminal)
195
+
196
+ Add to `~/.claude/settings.json`:
68
197
 
69
198
  ```json
70
199
  {
71
200
  "mcpServers": {
72
201
  "omnitrade": {
73
- "command": "omnitrade-mcp"
202
+ "command": "omnitrade",
203
+ "args": ["start"]
74
204
  }
75
205
  }
76
206
  }
77
207
  ```
78
208
 
79
- ### 4. Trade
209
+ Then run `claude` in your terminal and OmniTrade will be available.
80
210
 
81
- Restart Claude Desktop and start chatting:
211
+ <br />
82
212
 
83
- - *"What's my balance on Binance?"*
84
- - *"Show me ETH prices across all exchanges"*
85
- - *"Buy $50 of BTC on the cheapest exchange"*
86
- - *"Are there any arbitrage opportunities for SOL?"*
87
- - *"Alert me when BTC drops below $40000"*
88
- - *"Show me a 24h chart for ETH"*
89
- - *"How has my portfolio performed this week?"*
90
- - *"Rebalance my portfolio to 50% BTC, 30% ETH, 20% SOL"*
91
- - *"Setup DCA to buy $10 of BTC daily"*
92
- - *"Buy ETH if it drops 5%"*
213
+ ## 💡 Examples
93
214
 
94
- ## Available Tools
215
+ ### Portfolio Overview
95
216
 
96
- ### Core Trading
97
- | Tool | Description |
98
- |------|-------------|
99
- | `get_balances` | Get portfolio balances across exchanges |
100
- | `get_portfolio` | Unified portfolio summary |
101
- | `get_prices` | Current prices for a trading pair |
102
- | `compare_prices` | Find best price across exchanges |
103
- | `place_order` | Execute buy/sell orders |
104
- | `get_orders` | View open and recent orders |
105
- | `cancel_order` | Cancel an open order |
217
+ ```
218
+ You: "Show me my portfolio"
219
+
220
+ Claude: 📊 Portfolio Summary
221
+ Total Value: $24,567.89
222
+
223
+ ┌─────────────────────────────────────────┐
224
+ Asset │ Amount │ Value │ % │
225
+ ├─────────────────────────────────────────┤
226
+ BTC │ 0.3521 │ $14,821.42 60.3%
227
+ │ ETH │ 4.2100 │ $6,847.28 │ 27.9% │
228
+ │ SOL │ 28.5000 │ $2,899.19 │ 11.8% │
229
+ └─────────────────────────────────────────┘
230
+ ```
106
231
 
107
- ### Advanced Trading
108
- | Tool | Description |
109
- |------|-------------|
110
- | `get_arbitrage` | Find arbitrage opportunities |
111
- | `execute_arbitrage` | Execute arbitrage trades automatically |
112
- | `check_spread` | Check spread for a specific pair |
232
+ ### Price Alerts
113
233
 
114
- ### Alerts
115
- | Tool | Description |
116
- |------|-------------|
117
- | `set_price_alert` | Set price alerts for any trading pair |
118
- | `list_alerts` | View all active and triggered alerts |
119
- | `check_alerts` | Manually check if alerts have triggered |
120
- | `remove_alert` | Remove a specific alert |
121
- | `clear_triggered_alerts` | Clear alert history |
234
+ ```
235
+ You: "Alert me when BTC drops below $40,000"
236
+
237
+ Claude: Price alert created
238
+
239
+ 📍 BTC/USDT on Binance
240
+ 🎯 Trigger: Below $40,000
241
+ 📊 Current: $42,156.78
242
+
243
+ I'll let you know when it triggers!
244
+ ```
122
245
 
123
- ### Charts & Analytics
124
- | Tool | Description |
125
- |------|-------------|
126
- | `get_chart` | Display ASCII price charts (1h, 4h, 24h, 7d) |
127
- | `record_portfolio_snapshot` | Record current portfolio value |
128
- | `get_portfolio_history` | View portfolio P&L over time |
129
- | `clear_portfolio_history` | Clear portfolio history |
246
+ ### ASCII Charts
130
247
 
131
- ### Portfolio Management
132
- | Tool | Description |
133
- |------|-------------|
134
- | `rebalance_portfolio` | Auto-rebalance to target allocations |
248
+ ```
249
+ You: "Show me a 24h chart for ETH"
135
250
 
136
- ### DCA (Dollar Cost Averaging)
137
- | Tool | Description |
138
- |------|-------------|
139
- | `setup_dca` | Setup recurring buy orders |
140
- | `list_dca_configs` | List all DCA configurations |
141
- | `execute_dca_orders` | Execute pending DCA orders |
142
- | `toggle_dca` | Enable/disable DCA configs |
143
- | `remove_dca` | Remove DCA configuration |
251
+ Claude: ETH/USDT 24h Chart (Binance)
252
+
253
+ $3,312 ┤ ╭──
254
+ $3,290 ┤ ╭─────╯
255
+ $3,268 ┤ ╭────────╯
256
+ $3,245 ┤ ╭────────╯
257
+ $3,223 ┼────╯
258
+ └────────────────────────────────────
259
+ 00:00 12:00 23:59
260
+
261
+ Open: $3,245.20 → Close: $3,312.50
262
+ Change: ↑ +$67.30 (+2.07%)
263
+ ```
144
264
 
145
- ### Conditional Orders
146
- | Tool | Description |
147
- |------|-------------|
148
- | `set_conditional_order` | Create price-triggered orders |
149
- | `list_conditional_orders` | View all conditional orders |
150
- | `check_conditional_orders` | Check and execute conditions |
151
- | `remove_conditional_order` | Remove conditional order |
265
+ ### DCA Setup
152
266
 
153
- ## Usage Examples
267
+ ```
268
+ You: "Set up DCA to buy $25 of BTC every week"
269
+
270
+ Claude: ✅ DCA Strategy Created
271
+
272
+ 📈 Asset: BTC/USDT
273
+ 💰 Amount: $25.00
274
+ 📅 Frequency: Weekly (every Monday)
275
+ 🏦 Exchange: Binance
276
+
277
+ Next execution: Monday, Feb 24, 2025
278
+ ```
279
+
280
+ ### Auto-Rebalance
154
281
 
155
- ### Price Alerts
156
282
  ```
157
- You: "Alert me when BTC drops below $40000"
158
- Claude: ✅ Alert set for BTC/USDT below $40000
283
+ You: "Rebalance my portfolio to 50% BTC, 30% ETH, 20% SOL"
159
284
 
160
- You: "Check my alerts"
161
- Claude: 🚨 1 alert triggered! BTC has gone below $40000 on binance
285
+ Claude: 📊 Rebalance Preview
286
+
287
+ Current → Target:
288
+ • BTC: 60.3% → 50.0% (sell $2,528.54)
289
+ • ETH: 27.9% → 30.0% (buy $516.17)
290
+ • SOL: 11.8% → 20.0% (buy $2,012.37)
291
+
292
+ Trades required:
293
+ 1. SELL 0.0601 BTC → $2,528.54
294
+ 2. BUY 0.3171 ETH ← $516.17
295
+ 3. BUY 19.79 SOL ← $2,012.37
296
+
297
+ Shall I execute these trades?
162
298
  ```
163
299
 
164
- ### ASCII Charts
300
+ ### Arbitrage Detection
301
+
165
302
  ```
166
- You: "Show me a 24h chart for ETH"
167
- Claude:
168
- ╔════════════════════════════════════════════════════════════╗
169
- ║ ETH/USDT - 24h Chart ║
170
- ╠════════════════════════════════════════════════════════════╣
171
-
172
- ▄█
173
- ██▄
174
- ███▄
175
- ████▄
176
- ╚════════════════════════════════════════════════════════════╝
177
- Start: $3245.20 | End: $3312.50 | Change: ↑ 2.07% ($67.30)
303
+ You: "Find arbitrage opportunities for BTC"
304
+
305
+ Claude: 🔍 Arbitrage Scan: BTC/USDT
306
+
307
+ ✅ Opportunity Found!
308
+
309
+ Buy on Kraken: $42,150.00
310
+ Sell on Binance: $42,298.00
311
+
312
+ Spread: 0.35% ($148.00)
313
+ After fees (~0.2%): ~$63.00 profit per BTC
314
+
315
+ Want me to execute this?
178
316
  ```
179
317
 
180
- ### Portfolio History & P&L
318
+ ### Paper Trading
319
+
320
+ ```
321
+ You: "Buy 0.01 BTC in paper trading"
322
+
323
+ Claude: ✅ Paper Trade Executed
324
+
325
+ 📄 BUY 0.01 BTC
326
+ 💵 Price: $42,312.00
327
+ 💸 Cost: $423.12 USDT
328
+
329
+ Virtual Portfolio:
330
+ ┌──────────────────────────────────────────┐
331
+ │ USDT $9,576.88 (available) │
332
+ │ BTC 0.01000 ≈ $423.12 │
333
+ └──────────────────────────────────────────┘
334
+ Total Value: $10,000.00
181
335
  ```
182
- You: "Record my portfolio value"
183
- Claude: ✅ Portfolio snapshot recorded: $12,345.67
184
336
 
185
- You: "How has my portfolio performed this week?"
186
- Claude:
187
- Performance (1w):
188
- Start: $10,000.00
189
- End: $12,345.67
190
- Profit: ↑ $2,345.67 (23.46%)
191
- Trend: UP
337
+ ```
338
+ You: "Show my paper trading portfolio"
339
+
340
+ Claude: 📝 Paper Portfolio
341
+
342
+ ┌─────────────────────────────────────────────┐
343
+ │ Asset Amount │ Value │ P&L │
344
+ ├─────────────────────────────────────────────┤
345
+ │ USDT │ 9,076.88 │ $9,076.88 │ — │
346
+ │ BTC │ 0.0200 │ $856.40 │ +$10.16 │
347
+ │ ETH │ 0.5000 │ $914.25 │ +$22.50 │
348
+ └─────────────────────────────────────────────┘
349
+ Total: $10,847.53 | All-time P&L: +$847.53 (+8.5%)
192
350
  ```
193
351
 
194
- ### Auto-Rebalance
352
+ ### SVG Chart
353
+
195
354
  ```
196
- You: "Rebalance my portfolio to 50% BTC, 30% ETH, 20% SOL"
197
- Claude:
198
- 📊 Rebalance Plan:
199
- Current: BTC 40%, ETH 35%, SOL 25%
200
- Target: BTC 50%, ETH 30%, SOL 20%
201
-
202
- Trades required:
203
- - BUY 0.0523 BTC ($1,234.56)
204
- - SELL 0.1234 ETH ($456.78)
205
- - SELL 5.6789 SOL ($234.56)
355
+ You: "Show me a 24h chart for ETH"
356
+
357
+ Claude: [renders rich SVG chart]
358
+
359
+ ETH/USDT 24h Chart (Binance)
360
+ Full-color candlestick chart with volume bars,
361
+ gridlines, and price annotations.
362
+
363
+ Open: $3,245.20 Close: $3,312.50
364
+ Change: +$67.30 (+2.07%)
206
365
  ```
207
366
 
208
- ### DCA (Dollar Cost Averaging)
367
+ <br />
368
+
369
+ ## 🖥️ TUI Dashboard
370
+
371
+ Launch a full-screen Bloomberg Terminal-style interface directly in your terminal — live prices, charts, and your portfolio panel updating in real time.
372
+
373
+ ```bash
374
+ omnitrade dashboard
209
375
  ```
210
- You: "Setup DCA to buy $10 of BTC every day"
211
- Claude: ✅ DCA strategy created for BTC/USDT: $10 daily
212
376
 
213
- You: "Execute my DCA orders"
214
- Claude: DCA execution complete: 1 succeeded, 0 failed
215
- - Bought 0.00024 BTC for $10.00
377
+ The dashboard opens in full-screen and shows:
378
+
379
+ - **Live price ticker** Watchlist of your configured pairs, updating every few seconds
380
+ - **Price chart panel** — Interactive candlestick chart for the selected pair (1h, 4h, 24h, 7d)
381
+ - **Portfolio panel** — Current holdings and real-time P&L across all connected exchanges
382
+
383
+ **Keyboard shortcuts:**
384
+
385
+ | Key | Action |
386
+ |-----|--------|
387
+ | `↑` / `↓` | Navigate the watchlist |
388
+ | `1` `4` `D` `W` | Switch chart timeframe (1h / 4h / 24h / 7d) |
389
+ | `Tab` | Cycle between panels |
390
+ | `q` / `Ctrl+C` | Exit dashboard |
391
+
392
+ The dashboard reads from the same `~/.omnitrade/config.json` as the MCP server — no extra setup required.
393
+
394
+ <br />
395
+
396
+ ## 📝 Paper Trading
397
+
398
+ Practice risk-free with a virtual wallet before committing real funds. Paper trading uses **live market prices** from your connected exchanges, so your results reflect what would actually happen.
399
+
400
+ **Starting balance:** $10,000 USDT
401
+
402
+ ```bash
403
+ # Buy in paper mode
404
+ omnitrade paper buy BTC 0.01
405
+
406
+ # Sell in paper mode
407
+ omnitrade paper sell ETH 0.5
408
+
409
+ # View your virtual portfolio
410
+ omnitrade paper portfolio
411
+
412
+ # Review trade history
413
+ omnitrade paper history
414
+
415
+ # Reset back to $10,000 USDT
416
+ omnitrade paper reset
216
417
  ```
217
418
 
218
- ### Conditional Orders
419
+ | Command | Description |
420
+ |---------|-------------|
421
+ | `omnitrade paper buy <ASSET> <AMOUNT>` | Buy at current live price, deducting from virtual USDT balance |
422
+ | `omnitrade paper sell <ASSET> <AMOUNT>` | Sell at current live price, crediting virtual USDT balance |
423
+ | `omnitrade paper portfolio` | Show all virtual holdings with live valuations and P&L |
424
+ | `omnitrade paper history` | View the full list of paper trades with timestamps and prices |
425
+ | `omnitrade paper reset` | Wipe trade history and reset balance to $10,000 USDT |
426
+
427
+ Paper trading state is stored locally in `~/.omnitrade/paper.json` — separate from your live trading config. It has no impact on real orders.
428
+
429
+ <br />
430
+
431
+ ## 🖥 CLI Commands
432
+
433
+ OmniTrade ships with a standalone CLI for setup, monitoring, and background operation — separate from the MCP server that Claude uses.
434
+
435
+ ### Daemon — Background Price Monitoring
436
+
437
+ The daemon runs in the background and fires notifications when your price alerts trigger, even when Claude isn't open.
438
+
439
+ ```bash
440
+ # Start the background daemon
441
+ omnitrade daemon start
442
+
443
+ # Check if the daemon is running (shows PID, uptime, recent log)
444
+ omnitrade daemon status
445
+
446
+ # Stop the daemon
447
+ omnitrade daemon stop
219
448
  ```
220
- You: "Buy ETH if it drops 5%"
221
- Claude: ✅ Conditional order created
222
- When: ETH price decreases by 5% (from $3,245.20)
223
- Will execute: MARKET BUY 0.5 ETH
224
449
 
225
- You: "Check conditional orders"
226
- Claude: 🚨 1 conditional order triggered!
227
- ETH dropped to $3,082.94 (-5.0%)
228
- Executed: MARKET BUY 0.5 ETH (Order #12345)
450
+ | Command | Description |
451
+ |---------|-------------|
452
+ | `omnitrade daemon start` | Spawns the daemon as a detached background process. Writes a PID file to `~/.omnitrade/daemon.pid`. Logs to `~/.omnitrade/daemon.log`. |
453
+ | `omnitrade daemon status` | Shows whether the daemon is running, its PID, uptime, and the last 5 lines of the activity log. |
454
+ | `omnitrade daemon stop` | Sends SIGTERM to the daemon for a clean shutdown (waits up to 5s, then force-kills if needed). |
455
+
456
+ The daemon poll interval defaults to **60 seconds** and is configurable in `~/.omnitrade/config.json`:
457
+
458
+ ```json
459
+ {
460
+ "daemon": {
461
+ "pollInterval": 30
462
+ }
463
+ }
229
464
  ```
230
465
 
231
- ### Arbitrage Execution
466
+ ### Watch — Live Terminal Price Ticker
467
+
468
+ Stream live prices for one or more assets directly in your terminal. Updates every 5 seconds.
469
+
470
+ ```bash
471
+ # Watch a single asset (defaults to USDT pair)
472
+ omnitrade watch BTC
473
+
474
+ # Watch multiple assets simultaneously
475
+ omnitrade watch BTC ETH SOL
476
+
477
+ # Watch full trading pairs
478
+ omnitrade watch BTC/USDT ETH/BTC SOL/ETH
232
479
  ```
233
- You: "Find arbitrage for BTC"
234
- Claude: Found 1 opportunity:
235
- Buy BTC on Kraken: $42,150
236
- Sell BTC on Binance: $42,300
237
- Spread: 0.36% ($150)
238
480
 
239
- You: "Execute arbitrage for 0.01 BTC between Kraken and Binance"
240
- Claude:
241
- 📊 Arbitrage Preview:
242
- Buy on Kraken: $421.50
243
- Sell on Binance: $423.00
244
- Gross profit: $1.50 (0.36%)
245
- Fees: $0.84
246
- Net profit: $0.66 (0.16%)
481
+ The ticker auto-detects your configured exchange (falls back to public Binance data if no config exists). Each row shows the current price, direction indicator (▲ / ▼), and the change since the previous poll. If a symbol is **invalid or not available** on the exchange, the row is displayed in red with `⚠ INVALID` — it will never silently show `$0.00`.
482
+
483
+ Press **Ctrl+C** to exit the watch view cleanly.
484
+
485
+ ### Setup Interactive Configuration Wizard
486
+
487
+ Configure everything in ~2 minutes with the interactive setup wizard.
488
+
489
+ ```bash
490
+ omnitrade setup
247
491
  ```
248
492
 
249
- ## Supported Exchanges
493
+ The wizard walks you through:
494
+
495
+ 1. **Exchange API keys** — Binance, Coinbase, Kraken, and 104+ more
496
+ 2. **Security settings** — order size limits, allowed pairs, testnet mode
497
+ 3. **Notification channels** — choose how to receive price alerts:
250
498
 
251
- OmniTrade supports **107 exchanges** through [CCXT](https://github.com/ccxt/ccxt), including:
499
+ | Channel | How to configure |
500
+ |---------|-----------------|
501
+ | **Native OS** | Zero setup — uses system notifications on macOS, Windows, and Linux |
502
+ | **Telegram** | Create a bot via [@BotFather](https://t.me/BotFather), get your token + chat ID |
503
+ | **Discord** | Create a webhook in your server's channel settings, paste the URL |
252
504
 
253
- **Tier 1 (Certified):** Binance, Bybit, OKX, Gate.io, KuCoin, Bitget, HTX, Crypto.com, MEXC, WOO X, Hyperliquid
505
+ 4. **Claude integration** auto-writes to Claude Desktop config and optionally `~/.claude/settings.json` for Claude Code
506
+
507
+ You can re-run `omnitrade setup` at any time to update credentials or add new notification channels.
508
+
509
+ ### Dashboard — Full-Screen TUI *(v0.9.0)*
510
+
511
+ Launch the Bloomberg Terminal-style interface with live prices, charts, and portfolio panel.
512
+
513
+ ```bash
514
+ omnitrade dashboard
515
+ ```
516
+
517
+ | Command | Description |
518
+ |---------|-------------|
519
+ | `omnitrade dashboard` | Opens the full-screen TUI. Press `q` or `Ctrl+C` to exit. No arguments required — reads your existing config. |
520
+
521
+ ### Paper — Risk-Free Practice Trading *(v0.9.0)*
522
+
523
+ Trade against live prices using a virtual $10,000 USDT wallet. State persists between sessions.
524
+
525
+ ```bash
526
+ # Buy and sell with virtual funds
527
+ omnitrade paper buy BTC 0.01
528
+ omnitrade paper sell ETH 0.5
529
+
530
+ # Review your positions and history
531
+ omnitrade paper portfolio
532
+ omnitrade paper history
533
+
534
+ # Start fresh
535
+ omnitrade paper reset
536
+ ```
537
+
538
+ | Command | Description |
539
+ |---------|-------------|
540
+ | `omnitrade paper buy <ASSET> <AMOUNT>` | Buy at the current live price. Deducts USDT from virtual wallet. |
541
+ | `omnitrade paper sell <ASSET> <AMOUNT>` | Sell at the current live price. Credits USDT to virtual wallet. |
542
+ | `omnitrade paper portfolio` | Show all virtual holdings with live valuations and total P&L. |
543
+ | `omnitrade paper history` | List every paper trade with timestamp, price, and value at execution. |
544
+ | `omnitrade paper reset` | Reset virtual wallet to $10,000 USDT and clear trade history. |
545
+
546
+ <br />
547
+
548
+ ## 🛠 Tools
549
+
550
+ OmniTrade provides **40 tools** organized by category:
551
+
552
+ <details>
553
+ <summary><b>Core Trading</b> — Balances, prices, orders</summary>
554
+
555
+ | Tool | Description |
556
+ |------|-------------|
557
+ | `get_balances` | Get balances from one or all exchanges |
558
+ | `get_portfolio` | Unified portfolio view with totals |
559
+ | `get_prices` | Current price for any trading pair |
560
+ | `compare_prices` | Find best price across all exchanges |
561
+ | `place_order` | Execute market or limit orders |
562
+ | `get_orders` | View open and recent orders |
563
+ | `cancel_order` | Cancel an open order |
564
+
565
+ </details>
566
+
567
+ <details>
568
+ <summary><b>Arbitrage</b> — Cross-exchange opportunities</summary>
569
+
570
+ | Tool | Description |
571
+ |------|-------------|
572
+ | `get_arbitrage` | Scan for arbitrage opportunities |
573
+ | `execute_arbitrage` | Execute arbitrage trades |
574
+ | `check_spread` | Check bid/ask spread on a pair |
254
575
 
255
- **Tier 2:** Coinbase, Kraken, Bitstamp, Gemini, Bitfinex, Poloniex, Deribit, Upbit, Bithumb, Bitvavo, and 80+ more
576
+ </details>
256
577
 
257
- ## Security
578
+ <details>
579
+ <summary><b>Price Alerts</b> — Notifications & triggers</summary>
580
+
581
+ | Tool | Description |
582
+ |------|-------------|
583
+ | `set_price_alert` | Create price alerts (above/below) |
584
+ | `list_alerts` | View all alerts and their status |
585
+ | `check_alerts` | Check if any alerts triggered |
586
+ | `remove_alert` | Delete a specific alert |
587
+ | `clear_triggered_alerts` | Clear triggered alert history |
588
+
589
+ </details>
590
+
591
+ <details>
592
+ <summary><b>Charts & Analytics</b> — Visualization & tracking</summary>
593
+
594
+ | Tool | Description |
595
+ |------|-------------|
596
+ | `get_chart` | Rich SVG price charts (1h/4h/24h/7d) |
597
+ | `record_portfolio_snapshot` | Save current portfolio value |
598
+ | `get_portfolio_history` | View P&L over time |
599
+ | `clear_portfolio_history` | Reset portfolio history |
600
+
601
+ </details>
602
+
603
+ <details>
604
+ <summary><b>Portfolio Management</b> — Rebalancing</summary>
605
+
606
+ | Tool | Description |
607
+ |------|-------------|
608
+ | `rebalance_portfolio` | Calculate and execute rebalance |
609
+
610
+ </details>
611
+
612
+ <details>
613
+ <summary><b>DCA (Dollar Cost Averaging)</b> — Recurring buys</summary>
614
+
615
+ | Tool | Description |
616
+ |------|-------------|
617
+ | `setup_dca` | Create DCA strategy |
618
+ | `list_dca_configs` | View all DCA configurations |
619
+ | `execute_dca_orders` | Run pending DCA orders |
620
+ | `toggle_dca` | Enable/disable DCA configs |
621
+ | `remove_dca` | Delete DCA configuration |
622
+
623
+ </details>
624
+
625
+ <details>
626
+ <summary><b>Conditional Orders</b> — Price-triggered trades</summary>
627
+
628
+ | Tool | Description |
629
+ |------|-------------|
630
+ | `set_conditional_order` | Create conditional order |
631
+ | `list_conditional_orders` | View all conditional orders |
632
+ | `check_conditional_orders` | Check and execute conditions |
633
+ | `remove_conditional_order` | Delete conditional order |
634
+
635
+ </details>
636
+
637
+ <details>
638
+ <summary><b>Paper Trading</b> — Risk-free practice with live prices <em>(v0.9.0)</em></summary>
639
+
640
+ | Tool | Description |
641
+ |------|-------------|
642
+ | `paper_buy` | Buy an asset in the virtual wallet at the current live price |
643
+ | `paper_sell` | Sell an asset from the virtual wallet at the current live price |
644
+ | `get_paper_portfolio` | View virtual holdings, live valuations, and total P&L |
645
+ | `get_paper_history` | List all paper trades with timestamps and execution prices |
646
+ | `reset_paper_wallet` | Reset virtual wallet to $10,000 USDT and clear trade history |
647
+
648
+ </details>
649
+
650
+ <br />
651
+
652
+ ## 🔒 Security
258
653
 
259
654
  ### Local-Only Architecture
260
655
 
261
656
  ```
262
- ┌─────────────────────────────────────┐
263
- YOUR MACHINE
264
-
265
- Claude ←→ OmniTrade MCP
266
-
267
- config.json (your keys)
268
-
269
- Exchange APIs
270
- └─────────────────────────────────────┘
271
- (HTTPS to exchanges)
657
+ ┌─────────────────────────────────────────────────────────┐
658
+ YOUR MACHINE
659
+
660
+ ┌──────────┐ ┌─────────────────┐
661
+ │ Claude │ ◄─────► │ OmniTrade MCP │
662
+ └──────────┘ MCP └────────┬────────┘
663
+
664
+ ~/.omnitrade/config.json
665
+ │ (your keys, chmod 600) │
666
+ │ │ │
667
+ └─────────────────────────────────│────────────────────────┘
668
+ │ HTTPS
669
+
670
+ ┌─────────────────────────┐
671
+ │ Exchange APIs │
672
+ │ (Binance, Coinbase, │
673
+ │ Kraken, etc.) │
674
+ └─────────────────────────┘
272
675
  ```
273
676
 
274
- - ✅ API keys stay on your machine
275
- - ✅ No cloud storage
276
- - ✅ No telemetry
277
- - ✅ Open source — audit the code
677
+ - ✅ **API keys stay on your machine** — Never sent anywhere else
678
+ - ✅ **No cloud storage** — Everything local
679
+ - ✅ **No telemetry** — Zero data collection
680
+ - ✅ **Open source**[Audit the code yourself](https://github.com/Connectry-io/omnitrade-mcp)
278
681
 
279
682
  ### API Key Best Practices
280
683
 
281
- **Always:**
684
+ <table>
685
+ <tr>
686
+ <td>
687
+
688
+ **✅ Always**
282
689
  - Enable only View + Trade permissions
283
- - **Disable** withdrawal permissions
284
690
  - Use IP restrictions when available
285
- - Use testnet for testing
691
+ - Use testnet for testing first
692
+ - Set `chmod 600` on config file
286
693
 
287
- **Never:**
694
+ </td>
695
+ <td>
696
+
697
+ **❌ Never**
698
+ - Enable withdrawal permissions
288
699
  - Share your config file
289
700
  - Commit config to git
290
- - Enable withdrawal permissions
701
+ - Skip testnet testing
291
702
 
292
- ### Safety Features
703
+ </td>
704
+ </tr>
705
+ </table>
293
706
 
294
- ```json
295
- {
296
- "security": {
297
- "maxOrderSize": 100, // Max $100 per order
298
- "allowedPairs": ["BTC/USDT", "ETH/USDT"], // Whitelist
299
- "testnetOnly": true, // Force testnet
300
- "confirmTrades": true // Require confirmation
301
- }
302
- }
303
- ```
707
+ ### Safety Settings
304
708
 
305
- ## Configuration
306
-
307
- ### Full Config Example
709
+ Configure trading limits in `~/.omnitrade/config.json`:
308
710
 
309
711
  ```json
310
712
  {
311
- "exchanges": {
312
- "binance": {
313
- "apiKey": "xxx",
314
- "secret": "xxx",
315
- "testnet": true
316
- },
317
- "coinbase": {
318
- "apiKey": "xxx",
319
- "secret": "xxx",
320
- "password": "xxx",
321
- "testnet": true
322
- },
323
- "kraken": {
324
- "apiKey": "xxx",
325
- "secret": "xxx",
326
- "testnet": false
327
- }
328
- },
329
- "defaultExchange": "binance",
330
713
  "security": {
331
714
  "maxOrderSize": 100,
332
- "allowedPairs": ["BTC/USDT", "ETH/USDT", "SOL/USDT"],
333
- "testnetOnly": false,
715
+ "allowedPairs": ["BTC/USDT", "ETH/USDT"],
716
+ "testnetOnly": true,
334
717
  "confirmTrades": true
335
718
  }
336
719
  }
337
720
  ```
338
721
 
339
- ### Config Locations
722
+ <br />
340
723
 
341
- The config file is searched in order:
724
+ ## 🏦 Supported Exchanges
342
725
 
343
- 1. `~/.omnitrade/config.json` (recommended)
344
- 2. `./omnitrade.config.json`
345
- 3. `./.omnitrade.json`
726
+ OmniTrade supports **107 exchanges** through [CCXT](https://github.com/ccxt/ccxt):
346
727
 
347
- ## Testnet Setup
728
+ **Tier 1 (Certified)**
729
+ > Binance • Bybit • OKX • Gate.io • KuCoin • Bitget • HTX • Crypto.com • MEXC • WOO X • Hyperliquid
348
730
 
349
- ### Binance Testnet
731
+ **Tier 2**
732
+ > Coinbase • Kraken • Bitstamp • Gemini • Bitfinex • Poloniex • Deribit • Upbit • Bithumb • Bitvavo
350
733
 
351
- 1. Go to https://testnet.binance.vision/
352
- 2. Login with GitHub
353
- 3. Generate API keys
354
- 4. Get free testnet coins from faucet
734
+ **+ 87 more** via [CCXT](https://github.com/ccxt/ccxt/wiki/Exchange-Markets)
355
735
 
356
- ### Coinbase Sandbox
736
+ <br />
357
737
 
358
- 1. Go to https://portal.cdp.coinbase.com/
359
- 2. Create new project
360
- 3. Enable sandbox mode
361
- 4. Generate API keys
738
+ ## 🤝 Contributing
362
739
 
363
- ## Disclaimer
364
-
365
- ```
366
- ⚠️ IMPORTANT
740
+ We love contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
367
741
 
368
- This software is provided "as is" without warranty of any kind.
742
+ ```bash
743
+ # Clone the repo
744
+ git clone https://github.com/Connectry-io/omnitrade-mcp.git
745
+ cd omnitrade-mcp
369
746
 
370
- Cryptocurrency trading involves substantial risk of loss.
371
- Past performance does not guarantee future results.
747
+ # Install dependencies
748
+ npm install
372
749
 
373
- This software does NOT provide financial, investment, or trading advice.
374
- You are solely responsible for your trading decisions.
750
+ # Build
751
+ npm run build
375
752
 
376
- Always test with testnet before using real funds.
377
- Never trade more than you can afford to lose.
753
+ # Run locally
754
+ node dist/cli.js setup
378
755
  ```
379
756
 
380
- ## License
757
+ <br />
758
+
759
+ ## 📄 License
760
+
761
+ MIT © [Connectry Labs](https://connectry.io/labs)
381
762
 
382
- MIT © [Connectry Labs](https://connectry.io)
763
+ <br />
383
764
 
384
- ## Links
765
+ ## 🙏 Credits
385
766
 
386
- - [GitHub](https://github.com/Connectry-io/omnitrade-mcp)
387
- - [npm](https://www.npmjs.com/package/omnitrade-mcp)
388
- - [CCXT Documentation](https://docs.ccxt.com/)
389
- - [MCP Specification](https://modelcontextprotocol.io/)
767
+ - [CCXT](https://github.com/ccxt/ccxt) — Unified exchange library
768
+ - [Anthropic](https://anthropic.com) — Claude & MCP
769
+ - [Model Context Protocol](https://modelcontextprotocol.io/) — The protocol that makes this possible
770
+
771
+ <br />
390
772
 
391
773
  ---
392
774
 
393
- Made with ⚡ by [Connectry Labs](https://connectry.io)
775
+ ## ⚠️ Disclaimer
776
+
777
+ OmniTrade is an experimental developer tool provided under the MIT License. It does not constitute financial advice, investment advice, or any other form of advice. **Connectry Labs is not a licensed financial advisor.** Cryptocurrency trading involves substantial risk of loss and is not appropriate for all investors.
778
+
779
+ - Past performance is not indicative of future results
780
+ - You are solely responsible for your trading decisions
781
+ - Always conduct your own research
782
+ - Consult a qualified financial advisor before investing
783
+ - Never trade more than you can afford to lose
784
+
785
+ OmniTrade is a project by [Connectry Labs](https://connectry.io/labs) — the innovation lab of [Connectry](https://connectry.io).
786
+
787
+ <br />
788
+
789
+ <p align="center">
790
+ <sub>Built with ⚡ by <a href="https://connectry.io/labs">Connectry Labs</a></sub>
791
+ </p>
792
+
793
+ <p align="center">
794
+ <a href="https://github.com/Connectry-io/omnitrade-mcp">GitHub</a> •
795
+ <a href="https://www.npmjs.com/package/omnitrade-mcp">npm</a> •
796
+ <a href="https://connectry.io/labs/omnitrade">Website</a>
797
+ </p>