outsmart-agent 1.0.0-alpha.3 → 1.0.0-alpha.5

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.
@@ -21,7 +21,8 @@
21
21
  "./skills/outsmart-trenching",
22
22
  "./skills/outsmart-devving-coins",
23
23
  "./skills/outsmart-prediction-markets",
24
- "./skills/outsmart-survival"
24
+ "./skills/outsmart-survival",
25
+ "./skills/outsmart-percolator-perps"
25
26
  ],
26
27
  "agents": [
27
28
  "./agents/solana-trading-expert.md"
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # outsmart-agent
2
2
 
3
- DeFi survival toolkit for AI agents on Solana. Trade, LP, snipe, trench, dev coins, and farm across 18 DEX protocols. Earn your own existence.
3
+ DeFi survival toolkit for AI agents on Solana. Trade, LP, snipe, trench, dev coins, operate perp exchanges, and farm across 18 DEX protocols. Earn your own existence.
4
4
 
5
5
  ```
6
6
  npx outsmart-agent
@@ -10,7 +10,7 @@ npx outsmart-agent
10
10
 
11
11
  An AI agent needs money to stay alive — compute costs, inference fees, API calls. This gives any MCP-compatible agent the tools to earn revenue on Solana through DeFi. LP farming, memecoin trenching, token launching, prediction markets, systematic DCA — whatever the market calls for.
12
12
 
13
- 14 MCP tools for execution. 8 AI skills that teach the agent **when** and **why**, not just how.
13
+ 32 MCP tools for execution. 9 AI skills that teach the agent **when** and **why**, not just how.
14
14
 
15
15
  ## Quick Start
16
16
 
@@ -51,6 +51,8 @@ npx skills add outsmartchad/outsmart-agent
51
51
 
52
52
  ## MCP Tools
53
53
 
54
+ ### DEX Tools (14)
55
+
54
56
  | Tool | What |
55
57
  |------|------|
56
58
  | `solana_buy` | Buy tokens with SOL on any DEX |
@@ -68,9 +70,37 @@ npx skills add outsmartchad/outsmart-agent
68
70
  | `solana_list_dexes` | All 18 adapters + capabilities |
69
71
  | `solana_wallet_balance` | SOL and token balances |
70
72
 
73
+ ### Jupiter Tools (9)
74
+
75
+ | Tool | What |
76
+ |------|------|
77
+ | `jupiter_shield` | Token security warnings |
78
+ | `jupiter_prediction_events` | Browse/search prediction market events |
79
+ | `jupiter_prediction_market` | Market details + orderbook depth |
80
+ | `jupiter_prediction_order` | Place buy/sell orders on prediction markets |
81
+ | `jupiter_prediction_positions` | Your positions + trade history |
82
+ | `jupiter_prediction_claim` | Claim winnings from resolved markets |
83
+ | `jupiter_dca_create` | Create recurring DCA order |
84
+ | `jupiter_dca_list` | List active/historical DCA orders |
85
+ | `jupiter_dca_cancel` | Cancel a DCA order |
86
+
87
+ ### Percolator Perp Tools (9)
88
+
89
+ | Tool | What |
90
+ |------|------|
91
+ | `percolator_create_market` | Create a permissionless perp exchange |
92
+ | `percolator_init_user` | Register a trader account on a market |
93
+ | `percolator_deposit` | Deposit collateral |
94
+ | `percolator_withdraw` | Withdraw collateral |
95
+ | `percolator_trade` | Open/close/modify leveraged positions |
96
+ | `percolator_push_oracle` | Update oracle price (admin-oracle mode) |
97
+ | `percolator_crank` | Run keeper crank |
98
+ | `percolator_market_state` | Read full market state |
99
+ | `percolator_insurance_lp` | Deposit/withdraw insurance fund LP |
100
+
71
101
  ## Skills
72
102
 
73
- 8 strategy skills that teach agents how to think about Solana DeFi:
103
+ 9 strategy skills that teach agents how to think about Solana DeFi:
74
104
 
75
105
  | Skill | What |
76
106
  |-------|------|
@@ -82,6 +112,7 @@ npx skills add outsmartchad/outsmart-agent
82
112
  | **outsmart-dca-grid** | Jupiter Recurring DCA + DLMM grid trading |
83
113
  | **outsmart-prediction-markets** | Probability estimation, edge calculation, Jupiter + Polymarket + Futarchy |
84
114
  | **outsmart-survival** | Capital management, survival tiers, emergency liquidation |
115
+ | **outsmart-percolator-perps** | Operating perp exchanges — market creation, LP, pricing, keeper duties |
85
116
 
86
117
  ## Supported DEXes
87
118
 
@@ -98,10 +129,11 @@ npx skills add outsmartchad/outsmart-agent
98
129
  ```
99
130
  outsmart (npm) outsmart-agent (this repo)
100
131
  ────────────── ──────────────────────────
101
- 18 DEX adapters MCP server (14 tools)
102
- TX landing providers 8 AI skills
103
- Wallet + TX helpers Agent definition
104
- DexScreener API Plugin manifest
132
+ 18 DEX adapters MCP server (32 tools)
133
+ Percolator perps 9 AI skills
134
+ TX landing providers Agent definition
135
+ Wallet + TX helpers Plugin manifest
136
+ DexScreener API
105
137
  ```
106
138
 
107
139
  `outsmart-agent` imports `outsmart` as a dependency. The MCP server is a thin wrapper — validates params, calls adapter methods, returns JSON.
@@ -128,18 +160,20 @@ Never >5% on a single trade. Take profits. Track what works. Evolve.
128
160
  |----------|----------|-------------|
129
161
  | `PRIVATE_KEY` | Yes | Base58 Solana private key |
130
162
  | `MAINNET_ENDPOINT` | Yes | Solana RPC (Helius, Triton, etc.) |
131
- | `JUPITER_API_KEY` | No | Jupiter Ultra |
163
+ | `JUPITER_API_KEY` | No | Jupiter Ultra, Shield, Prediction, DCA |
164
+ | `DEVNET_ENDPOINT` | No | Solana devnet RPC (Percolator) |
132
165
  | `DFLOW_API_KEY` | No | DFlow |
133
166
 
134
167
  ## Roadmap
135
168
 
136
- - [x] MCP Server — 14 tools, 18 DEX adapters
137
- - [x] AI Skills — 8 strategy skills
169
+ - [x] MCP Server — 32 tools (14 DEX + 9 Jupiter + 9 Percolator), 18 DEX adapters
170
+ - [x] AI Skills — 9 strategy skills
138
171
  - [x] Claude Code Plugin manifest
172
+ - [x] Percolator — Permissionless perp exchange creation, trading, LP, insurance
139
173
  - [ ] Event Streaming — Yellowstone gRPC for real-time pool creation
140
174
  - [ ] LP Manager — Autonomous rebalancing and fee compounding
141
175
  - [ ] Strategy Engine — Tier-aware capital allocation
142
- - [ ] Percolator — Permissionless perp exchange LP
176
+ - [ ] Percolator Keeper Background crank + liquidation service
143
177
 
144
178
  ## Related
145
179
 
@@ -2,15 +2,26 @@
2
2
  /**
3
3
  * outsmart-agent MCP Server
4
4
  *
5
- * Exposes 14 MCP tools wrapping the `outsmart` trading library.
5
+ * Exposes 32 MCP tools wrapping the `outsmart` trading library + Jupiter APIs + Percolator.
6
6
  * Runs over stdio transport — start with `npx outsmart-agent`.
7
7
  *
8
- * Tools:
8
+ * DEX Tools (14):
9
9
  * solana_buy, solana_sell, solana_quote, solana_find_pool, solana_snipe,
10
10
  * solana_create_pool, solana_create_token,
11
11
  * solana_add_liquidity, solana_remove_liquidity, solana_claim_fees,
12
12
  * solana_list_positions, solana_token_info, solana_list_dexes,
13
13
  * solana_wallet_balance
14
+ *
15
+ * Jupiter Tools (9):
16
+ * jupiter_shield,
17
+ * jupiter_prediction_events, jupiter_prediction_market,
18
+ * jupiter_prediction_order, jupiter_prediction_positions, jupiter_prediction_claim,
19
+ * jupiter_dca_create, jupiter_dca_list, jupiter_dca_cancel
20
+ *
21
+ * Percolator Perp Tools (9):
22
+ * percolator_create_market, percolator_trade, percolator_deposit,
23
+ * percolator_withdraw, percolator_market_state, percolator_list_markets,
24
+ * percolator_push_price, percolator_crank, percolator_insurance_lp
14
25
  */
15
26
  export {};
16
27
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
@@ -3,15 +3,26 @@
3
3
  /**
4
4
  * outsmart-agent MCP Server
5
5
  *
6
- * Exposes 14 MCP tools wrapping the `outsmart` trading library.
6
+ * Exposes 32 MCP tools wrapping the `outsmart` trading library + Jupiter APIs + Percolator.
7
7
  * Runs over stdio transport — start with `npx outsmart-agent`.
8
8
  *
9
- * Tools:
9
+ * DEX Tools (14):
10
10
  * solana_buy, solana_sell, solana_quote, solana_find_pool, solana_snipe,
11
11
  * solana_create_pool, solana_create_token,
12
12
  * solana_add_liquidity, solana_remove_liquidity, solana_claim_fees,
13
13
  * solana_list_positions, solana_token_info, solana_list_dexes,
14
14
  * solana_wallet_balance
15
+ *
16
+ * Jupiter Tools (9):
17
+ * jupiter_shield,
18
+ * jupiter_prediction_events, jupiter_prediction_market,
19
+ * jupiter_prediction_order, jupiter_prediction_positions, jupiter_prediction_claim,
20
+ * jupiter_dca_create, jupiter_dca_list, jupiter_dca_cancel
21
+ *
22
+ * Percolator Perp Tools (9):
23
+ * percolator_create_market, percolator_trade, percolator_deposit,
24
+ * percolator_withdraw, percolator_market_state, percolator_list_markets,
25
+ * percolator_push_price, percolator_crank, percolator_insurance_lp
15
26
  */
16
27
  Object.defineProperty(exports, "__esModule", { value: true });
17
28
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
@@ -425,7 +436,7 @@ server.tool("solana_create_token", "Create a new token on PumpFun with a bonding
425
436
  }, async (args) => {
426
437
  try {
427
438
  const adapter = getAdapter("pumpfun");
428
- if (!adapter.create) {
439
+ if (!(adapter instanceof outsmart_1.PumpFunAdapter)) {
429
440
  return err("pumpfun adapter does not support create");
430
441
  }
431
442
  const result = await adapter.create(args.name, args.symbol, args.metadata_uri);
@@ -439,6 +450,490 @@ server.tool("solana_create_token", "Create a new token on PumpFun with a bonding
439
450
  }
440
451
  });
441
452
  // ---------------------------------------------------------------------------
453
+ // Jupiter API helpers
454
+ // ---------------------------------------------------------------------------
455
+ function getJupiterApiKey() {
456
+ const key = process.env.JUPITER_API_KEY;
457
+ if (!key)
458
+ throw new Error("JUPITER_API_KEY env var is required for Jupiter API calls. Get one at https://portal.jup.ag");
459
+ return key;
460
+ }
461
+ async function jupiterGet(path, baseUrl = "https://api.jup.ag") {
462
+ const res = await fetch(`${baseUrl}${path}`, {
463
+ headers: { "x-api-key": getJupiterApiKey() },
464
+ });
465
+ if (!res.ok)
466
+ throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
467
+ return res.json();
468
+ }
469
+ async function jupiterPost(path, body, baseUrl = "https://api.jup.ag") {
470
+ const res = await fetch(`${baseUrl}${path}`, {
471
+ method: "POST",
472
+ headers: { "Content-Type": "application/json", "x-api-key": getJupiterApiKey() },
473
+ body: JSON.stringify(body),
474
+ });
475
+ if (!res.ok)
476
+ throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
477
+ return res.json();
478
+ }
479
+ async function jupiterDelete(path, body, baseUrl = "https://api.jup.ag") {
480
+ const opts = {
481
+ method: "DELETE",
482
+ headers: { "Content-Type": "application/json", "x-api-key": getJupiterApiKey() },
483
+ };
484
+ if (body)
485
+ opts.body = JSON.stringify(body);
486
+ const res = await fetch(`${baseUrl}${path}`, opts);
487
+ if (!res.ok)
488
+ throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
489
+ return res.json();
490
+ }
491
+ /** Deserialize a base64 VersionedTransaction, sign it, and send on-chain */
492
+ async function signAndSendJupiterTx(base64Tx) {
493
+ const wallet = (0, outsmart_1.getWallet)();
494
+ const connection = (0, outsmart_1.getConnection)();
495
+ const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(base64Tx, "base64"));
496
+ tx.sign([wallet]);
497
+ const sig = await connection.sendRawTransaction(tx.serialize(), { skipPreflight: true });
498
+ await connection.confirmTransaction(sig, "confirmed");
499
+ return sig;
500
+ }
501
+ // ---------------------------------------------------------------------------
502
+ // Tool: jupiter_shield
503
+ // ---------------------------------------------------------------------------
504
+ server.tool("jupiter_shield", "Check token security warnings via Jupiter Shield API. Returns freeze authority, mint authority, organic activity warnings. Quick safety check — no signing needed.", {
505
+ mints: zod_1.z.string().describe("Comma-separated token mint addresses to check (e.g. 'MINT1,MINT2')"),
506
+ }, async (args) => {
507
+ try {
508
+ const result = await jupiterGet(`/ultra/v1/shield?mints=${args.mints}`);
509
+ return ok(result);
510
+ }
511
+ catch (e) {
512
+ return err(e.message);
513
+ }
514
+ });
515
+ // ---------------------------------------------------------------------------
516
+ // Tool: jupiter_prediction_events
517
+ // ---------------------------------------------------------------------------
518
+ // @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
519
+ server.tool("jupiter_prediction_events", "Browse prediction market events on Jupiter. Returns events with markets, pricing, and status. Use to find betting opportunities.", {
520
+ category: zod_1.z.string().optional().describe("Filter by category: crypto, sports, politics, esports, culture, economics, tech"),
521
+ status: zod_1.z.enum(["active", "resolved", "all"]).optional().describe("Event status filter (default: active)"),
522
+ query: zod_1.z.string().optional().describe("Search query (if provided, uses search endpoint instead)"),
523
+ limit: zod_1.z.number().int().min(1).max(50).optional().describe("Max results (default: 10)"),
524
+ }, async (args) => {
525
+ try {
526
+ if (args.query) {
527
+ const result = await jupiterGet(`/prediction/v1/events/search?query=${encodeURIComponent(args.query)}&limit=${args.limit ?? 10}`);
528
+ return ok(result);
529
+ }
530
+ let path = `/prediction/v1/events?includeMarkets=true&limit=${args.limit ?? 10}`;
531
+ if (args.category)
532
+ path += `&category=${args.category}`;
533
+ if (args.status)
534
+ path += `&filter=${args.status}`;
535
+ const result = await jupiterGet(path);
536
+ return ok(result);
537
+ }
538
+ catch (e) {
539
+ return err(e.message);
540
+ }
541
+ });
542
+ // ---------------------------------------------------------------------------
543
+ // Tool: jupiter_prediction_market
544
+ // ---------------------------------------------------------------------------
545
+ server.tool("jupiter_prediction_market", "Get details for a specific prediction market — pricing, orderbook depth, volume, open interest.", {
546
+ market_id: zod_1.z.string().describe("Market ID from jupiter_prediction_events"),
547
+ include_orderbook: zod_1.z.boolean().optional().describe("Also fetch orderbook depth (default: false)"),
548
+ }, async (args) => {
549
+ try {
550
+ const market = await jupiterGet(`/prediction/v1/markets/${args.market_id}`);
551
+ if (args.include_orderbook) {
552
+ const orderbook = await jupiterGet(`/prediction/v1/orderbook/${args.market_id}`);
553
+ return ok({ market, orderbook });
554
+ }
555
+ return ok(market);
556
+ }
557
+ catch (e) {
558
+ return err(e.message);
559
+ }
560
+ });
561
+ // ---------------------------------------------------------------------------
562
+ // Tool: jupiter_prediction_order
563
+ // ---------------------------------------------------------------------------
564
+ // @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
565
+ server.tool("jupiter_prediction_order", "Place a buy or sell order on a Jupiter prediction market. Signs and submits a Solana transaction. Returns order details and tx signature.", {
566
+ market_id: zod_1.z.string().describe("Market ID to trade on"),
567
+ is_yes: zod_1.z.boolean().describe("true = YES contract, false = NO contract"),
568
+ is_buy: zod_1.z.boolean().describe("true = buy contracts, false = sell contracts"),
569
+ deposit_amount: zod_1.z.number().positive().describe("Amount in USD (e.g. 5.0 for $5). Will be converted to micro-USD internally."),
570
+ deposit_mint: zod_1.z.string().optional().describe("Deposit token mint. Default: USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)"),
571
+ }, async (args) => {
572
+ try {
573
+ const wallet = (0, outsmart_1.getWallet)();
574
+ const depositMint = args.deposit_mint ?? "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
575
+ // Convert USD to micro-USD (1 USD = 1,000,000 micro-USD)
576
+ const microUsd = Math.round(args.deposit_amount * 1_000_000);
577
+ const response = await jupiterPost("/prediction/v1/orders", {
578
+ ownerPubkey: wallet.publicKey.toBase58(),
579
+ marketId: args.market_id,
580
+ isYes: args.is_yes,
581
+ isBuy: args.is_buy,
582
+ depositAmount: microUsd,
583
+ depositMint: depositMint,
584
+ });
585
+ if (!response.transaction) {
586
+ return ok(response); // May return error info
587
+ }
588
+ const signature = await signAndSendJupiterTx(response.transaction);
589
+ return ok({
590
+ signature,
591
+ order: response.order,
592
+ note: "Order submitted on-chain. Jupiter keepers will match it. Poll jupiter_prediction_positions to check fill status.",
593
+ });
594
+ }
595
+ catch (e) {
596
+ return err(e.message);
597
+ }
598
+ });
599
+ // ---------------------------------------------------------------------------
600
+ // Tool: jupiter_prediction_positions
601
+ // ---------------------------------------------------------------------------
602
+ server.tool("jupiter_prediction_positions", "List your open prediction market positions with P&L. Also shows pending orders and trade history.", {
603
+ include_orders: zod_1.z.boolean().optional().describe("Also fetch open orders (default: false)"),
604
+ include_history: zod_1.z.boolean().optional().describe("Also fetch trade history (default: false)"),
605
+ }, async (args) => {
606
+ try {
607
+ const wallet = (0, outsmart_1.getWallet)();
608
+ const pubkey = wallet.publicKey.toBase58();
609
+ const positions = await jupiterGet(`/prediction/v1/positions?ownerPubkey=${pubkey}`);
610
+ const result = { positions };
611
+ if (args.include_orders) {
612
+ result.orders = await jupiterGet(`/prediction/v1/orders?ownerPubkey=${pubkey}`);
613
+ }
614
+ if (args.include_history) {
615
+ result.history = await jupiterGet(`/prediction/v1/history?ownerPubkey=${pubkey}`);
616
+ }
617
+ return ok(result);
618
+ }
619
+ catch (e) {
620
+ return err(e.message);
621
+ }
622
+ });
623
+ // ---------------------------------------------------------------------------
624
+ // Tool: jupiter_prediction_claim
625
+ // ---------------------------------------------------------------------------
626
+ server.tool("jupiter_prediction_claim", "Claim winnings from a resolved prediction market position. Signs and submits the claim transaction.", {
627
+ position_pubkey: zod_1.z.string().describe("Position public key to claim (from jupiter_prediction_positions)"),
628
+ }, async (args) => {
629
+ try {
630
+ const wallet = (0, outsmart_1.getWallet)();
631
+ const response = await jupiterPost(`/prediction/v1/positions/${args.position_pubkey}/claim`, {
632
+ ownerPubkey: wallet.publicKey.toBase58(),
633
+ });
634
+ if (!response.transaction) {
635
+ return ok(response);
636
+ }
637
+ const signature = await signAndSendJupiterTx(response.transaction);
638
+ return ok({ signature, claimed: true });
639
+ }
640
+ catch (e) {
641
+ return err(e.message);
642
+ }
643
+ });
644
+ // ---------------------------------------------------------------------------
645
+ // Tool: jupiter_dca_create
646
+ // ---------------------------------------------------------------------------
647
+ server.tool("jupiter_dca_create", "Create a Jupiter Recurring DCA order. Automated dollar-cost averaging — Jupiter keeper bots execute swaps on schedule. 0.1% fee per swap.", {
648
+ input_mint: zod_1.z.string().describe("Token to spend (e.g. USDC mint for buying SOL with USDC)"),
649
+ output_mint: zod_1.z.string().describe("Token to receive (e.g. SOL mint)"),
650
+ total_amount: zod_1.z.number().positive().describe("Total amount to DCA (in input token's human-readable units, e.g. 100 for 100 USDC)"),
651
+ input_decimals: zod_1.z.number().int().min(0).max(18).describe("Decimals of the input token (6 for USDC, 9 for SOL)"),
652
+ number_of_orders: zod_1.z.number().int().min(2).describe("Number of DCA cycles (total_amount split evenly)"),
653
+ interval_seconds: zod_1.z.number().int().positive().describe("Seconds between each cycle (86400 = daily, 3600 = hourly)"),
654
+ min_price: zod_1.z.number().positive().optional().describe("Only execute if price is above this (optional)"),
655
+ max_price: zod_1.z.number().positive().optional().describe("Only execute if price is below this (optional)"),
656
+ }, async (args) => {
657
+ try {
658
+ const wallet = (0, outsmart_1.getWallet)();
659
+ // Convert human-readable amount to raw amount
660
+ const rawAmount = Math.round(args.total_amount * Math.pow(10, args.input_decimals));
661
+ const response = await jupiterPost("/recurring/v1/createOrder", {
662
+ user: wallet.publicKey.toBase58(),
663
+ inputMint: args.input_mint,
664
+ outputMint: args.output_mint,
665
+ params: {
666
+ time: {
667
+ inAmount: rawAmount,
668
+ numberOfOrders: args.number_of_orders,
669
+ interval: args.interval_seconds,
670
+ minPrice: args.min_price ?? null,
671
+ maxPrice: args.max_price ?? null,
672
+ startAt: null, // start immediately
673
+ },
674
+ },
675
+ });
676
+ if (!response.transaction) {
677
+ return ok(response);
678
+ }
679
+ // DCA supports Jupiter's /execute endpoint
680
+ const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(response.transaction, "base64"));
681
+ tx.sign([wallet]);
682
+ const signedBase64 = Buffer.from(tx.serialize()).toString("base64");
683
+ const executeResult = await jupiterPost("/recurring/v1/execute", {
684
+ signedTransaction: signedBase64,
685
+ requestId: response.requestId,
686
+ });
687
+ return ok({
688
+ ...executeResult,
689
+ requestId: response.requestId,
690
+ note: `DCA order created: ${args.total_amount} ${args.input_mint} split into ${args.number_of_orders} orders, every ${args.interval_seconds}s. Jupiter keepers will auto-execute.`,
691
+ });
692
+ }
693
+ catch (e) {
694
+ return err(e.message);
695
+ }
696
+ });
697
+ // ---------------------------------------------------------------------------
698
+ // Tool: jupiter_dca_list
699
+ // ---------------------------------------------------------------------------
700
+ // @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
701
+ server.tool("jupiter_dca_list", "List your active or historical Jupiter DCA orders.", {
702
+ status: zod_1.z.enum(["active", "history"]).optional().describe("Filter by status (default: active)"),
703
+ }, async (args) => {
704
+ try {
705
+ const wallet = (0, outsmart_1.getWallet)();
706
+ const status = args.status ?? "active";
707
+ const result = await jupiterGet(`/recurring/v1/getRecurringOrders?user=${wallet.publicKey.toBase58()}&orderStatus=${status}&recurringType=time`);
708
+ return ok(result);
709
+ }
710
+ catch (e) {
711
+ return err(e.message);
712
+ }
713
+ });
714
+ // ---------------------------------------------------------------------------
715
+ // Tool: jupiter_dca_cancel
716
+ // ---------------------------------------------------------------------------
717
+ server.tool("jupiter_dca_cancel", "Cancel an active Jupiter DCA order. Returns remaining funds to your wallet.", {
718
+ order: zod_1.z.string().describe("Order public key to cancel (from jupiter_dca_list)"),
719
+ }, async (args) => {
720
+ try {
721
+ const wallet = (0, outsmart_1.getWallet)();
722
+ const response = await jupiterPost("/recurring/v1/cancelOrder", {
723
+ order: args.order,
724
+ user: wallet.publicKey.toBase58(),
725
+ recurringType: "time",
726
+ });
727
+ if (!response.transaction) {
728
+ return ok(response);
729
+ }
730
+ const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(response.transaction, "base64"));
731
+ tx.sign([wallet]);
732
+ const signedBase64 = Buffer.from(tx.serialize()).toString("base64");
733
+ const executeResult = await jupiterPost("/recurring/v1/execute", {
734
+ signedTransaction: signedBase64,
735
+ requestId: response.requestId,
736
+ });
737
+ return ok({ ...executeResult, cancelled: true });
738
+ }
739
+ catch (e) {
740
+ return err(e.message);
741
+ }
742
+ });
743
+ // ===========================================================================
744
+ // PERCOLATOR PERPETUAL FUTURES TOOLS (9 tools)
745
+ // ===========================================================================
746
+ const percolator = new outsmart_1.PercolatorAdapter();
747
+ // ---------------------------------------------------------------------------
748
+ // Tool: percolator_create_market
749
+ // ---------------------------------------------------------------------------
750
+ // @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
751
+ server.tool("percolator_create_market", "Create a new Percolator perpetual futures market. Agent becomes admin/oracle authority. Returns slab address for all subsequent operations.", {
752
+ collateral_mint: zod_1.z.string().describe("Collateral token mint address (e.g. BONK, wSOL)"),
753
+ initial_price_e6: zod_1.z.string().describe("Initial oracle price in e6 format (1 USD = 1000000). Example: '150000' for $0.15"),
754
+ lp_collateral: zod_1.z.string().describe("Initial LP collateral in native token units (e.g. '1000000000' for 1B BONK lamports)"),
755
+ tier: zod_1.z.enum(["small", "medium", "large"]).optional().describe("Slab tier: small (256 slots, ~0.44 SOL), medium (1024, ~1.73 SOL), large (4096, ~6.91 SOL). Default: small"),
756
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
757
+ }, async (args) => {
758
+ try {
759
+ const result = await percolator.createMarket({
760
+ collateralMint: args.collateral_mint,
761
+ initialPriceE6: BigInt(args.initial_price_e6),
762
+ lpCollateral: BigInt(args.lp_collateral),
763
+ tier: args.tier,
764
+ network: args.network,
765
+ });
766
+ return ok(result);
767
+ }
768
+ catch (e) {
769
+ return err(e.message);
770
+ }
771
+ });
772
+ // ---------------------------------------------------------------------------
773
+ // Tool: percolator_trade
774
+ // ---------------------------------------------------------------------------
775
+ server.tool("percolator_trade", "Open, close, or modify a perpetual futures position on a Percolator market. Positive size = long, negative = short. Size is in i128 native token units.", {
776
+ slab: zod_1.z.string().describe("Slab (market) address"),
777
+ user_idx: zod_1.z.number().int().min(0).describe("Your user account index in the slab"),
778
+ lp_idx: zod_1.z.number().int().min(0).describe("LP account index to trade against"),
779
+ size: zod_1.z.string().describe("Trade size as i128 string. Positive = go long, negative = go short. Use '0' won't work — to close, use opposite size."),
780
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
781
+ }, async (args) => {
782
+ try {
783
+ const sig = await percolator.trade({
784
+ slabAddress: args.slab,
785
+ userIdx: args.user_idx,
786
+ lpIdx: args.lp_idx,
787
+ size: BigInt(args.size),
788
+ network: args.network,
789
+ });
790
+ return ok({ signature: sig });
791
+ }
792
+ catch (e) {
793
+ return err(e.message);
794
+ }
795
+ });
796
+ // ---------------------------------------------------------------------------
797
+ // Tool: percolator_deposit
798
+ // ---------------------------------------------------------------------------
799
+ server.tool("percolator_deposit", "Deposit collateral into a Percolator market account (user or LP).", {
800
+ slab: zod_1.z.string().describe("Slab (market) address"),
801
+ user_idx: zod_1.z.number().int().min(0).describe("Account index to deposit into"),
802
+ amount: zod_1.z.string().describe("Amount in native token units"),
803
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
804
+ }, async (args) => {
805
+ try {
806
+ const sig = await percolator.deposit(args.slab, args.user_idx, BigInt(args.amount), args.network);
807
+ return ok({ signature: sig });
808
+ }
809
+ catch (e) {
810
+ return err(e.message);
811
+ }
812
+ });
813
+ // ---------------------------------------------------------------------------
814
+ // Tool: percolator_withdraw
815
+ // ---------------------------------------------------------------------------
816
+ server.tool("percolator_withdraw", "Withdraw collateral from a Percolator market account. Only available when position is flat or has sufficient margin.", {
817
+ slab: zod_1.z.string().describe("Slab (market) address"),
818
+ user_idx: zod_1.z.number().int().min(0).describe("Account index to withdraw from"),
819
+ amount: zod_1.z.string().describe("Amount in native token units"),
820
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
821
+ }, async (args) => {
822
+ try {
823
+ const sig = await percolator.withdraw(args.slab, args.user_idx, BigInt(args.amount), args.network);
824
+ return ok({ signature: sig });
825
+ }
826
+ catch (e) {
827
+ return err(e.message);
828
+ }
829
+ });
830
+ // ---------------------------------------------------------------------------
831
+ // Tool: percolator_market_state
832
+ // ---------------------------------------------------------------------------
833
+ server.tool("percolator_market_state", "Read the full state of a Percolator perpetual futures market: header, config, engine, risk params, and all accounts.", {
834
+ slab: zod_1.z.string().describe("Slab (market) address"),
835
+ }, async (args) => {
836
+ try {
837
+ const state = await percolator.getMarketState(args.slab);
838
+ // Serialize BigInt values for JSON output
839
+ return ok(JSON.parse(JSON.stringify(state, (_key, value) => typeof value === "bigint" ? value.toString() : value)));
840
+ }
841
+ catch (e) {
842
+ return err(e.message);
843
+ }
844
+ });
845
+ // ---------------------------------------------------------------------------
846
+ // Tool: percolator_list_markets
847
+ // ---------------------------------------------------------------------------
848
+ server.tool("percolator_list_markets", "Discover all Percolator perpetual futures markets on-chain across all program tiers.", {
849
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
850
+ }, async (args) => {
851
+ try {
852
+ const markets = await percolator.discoverMarkets(args.network);
853
+ return ok(JSON.parse(JSON.stringify(markets.map(m => ({
854
+ slab: m.slabAddress.toBase58(),
855
+ program: m.programId.toBase58(),
856
+ admin: m.header.admin.toBase58(),
857
+ collateralMint: m.config.collateralMint.toBase58(),
858
+ oraclePrice: m.config.authorityPriceE6.toString(),
859
+ vault: m.engine.vault.toString(),
860
+ totalOI: m.engine.totalOpenInterest.toString(),
861
+ numAccounts: m.engine.numUsedAccounts,
862
+ maxLeverage: Number(10000n / (m.params.initialMarginBps || 1n)),
863
+ tradingFeeBps: m.params.tradingFeeBps.toString(),
864
+ paused: m.header.paused,
865
+ resolved: m.header.resolved,
866
+ })), (_key, value) => typeof value === "bigint" ? value.toString() : value)));
867
+ }
868
+ catch (e) {
869
+ return err(e.message);
870
+ }
871
+ });
872
+ // ---------------------------------------------------------------------------
873
+ // Tool: percolator_push_price
874
+ // ---------------------------------------------------------------------------
875
+ server.tool("percolator_push_price", "Push a new oracle price to a Percolator market (admin/oracle authority only). Price in e6 format.", {
876
+ slab: zod_1.z.string().describe("Slab (market) address"),
877
+ price_e6: zod_1.z.string().describe("Oracle price in e6 format (1 USD = 1000000)"),
878
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
879
+ }, async (args) => {
880
+ try {
881
+ const sig = await percolator.pushOraclePrice(args.slab, BigInt(args.price_e6), args.network);
882
+ return ok({ signature: sig });
883
+ }
884
+ catch (e) {
885
+ return err(e.message);
886
+ }
887
+ });
888
+ // ---------------------------------------------------------------------------
889
+ // Tool: percolator_crank
890
+ // ---------------------------------------------------------------------------
891
+ server.tool("percolator_crank", "Run the permissionless keeper crank on a Percolator market. Updates funding rates and processes maintenance.", {
892
+ slab: zod_1.z.string().describe("Slab (market) address"),
893
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
894
+ }, async (args) => {
895
+ try {
896
+ const sig = await percolator.crank(args.slab, args.network);
897
+ return ok({ signature: sig });
898
+ }
899
+ catch (e) {
900
+ return err(e.message);
901
+ }
902
+ });
903
+ // ---------------------------------------------------------------------------
904
+ // Tool: percolator_insurance_lp
905
+ // ---------------------------------------------------------------------------
906
+ // @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
907
+ server.tool("percolator_insurance_lp", "Manage Percolator insurance fund: create mint, deposit, or withdraw insurance LP tokens.", {
908
+ slab: zod_1.z.string().describe("Slab (market) address"),
909
+ action: zod_1.z.enum(["create_mint", "deposit", "withdraw"]).describe("Action: create_mint (one-time), deposit, or withdraw"),
910
+ amount: zod_1.z.string().optional().describe("Amount in native units (required for deposit/withdraw)"),
911
+ network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
912
+ }, async (args) => {
913
+ try {
914
+ let sig;
915
+ switch (args.action) {
916
+ case "create_mint":
917
+ sig = await percolator.createInsuranceMint(args.slab, args.network);
918
+ break;
919
+ case "deposit":
920
+ if (!args.amount)
921
+ return err("amount is required for deposit");
922
+ sig = await percolator.depositInsuranceLP(args.slab, BigInt(args.amount), args.network);
923
+ break;
924
+ case "withdraw":
925
+ if (!args.amount)
926
+ return err("amount is required for withdraw");
927
+ sig = await percolator.withdrawInsuranceLP(args.slab, BigInt(args.amount), args.network);
928
+ break;
929
+ }
930
+ return ok({ signature: sig });
931
+ }
932
+ catch (e) {
933
+ return err(e.message);
934
+ }
935
+ });
936
+ // ---------------------------------------------------------------------------
442
937
  // Start server
443
938
  // ---------------------------------------------------------------------------
444
939
  async function main() {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "outsmart-agent",
3
- "version": "1.0.0-alpha.3",
3
+ "version": "1.0.0-alpha.5",
4
4
  "description": "MCP server + AI skills for Solana trading — wraps the outsmart CLI library for AI agent use.",
5
5
  "engines": {
6
6
  "node": ">=20.0.0"
@@ -20,11 +20,11 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "build": "npm run clean && npm run build:ts && npm run build:chmod",
23
- "build:ts": "tsc -p tsconfig.build.json",
23
+ "build:ts": "NODE_OPTIONS='--max-old-space-size=8192' tsc -p tsconfig.build.json",
24
24
  "build:chmod": "chmod +x dist/mcp/server.js || true",
25
25
  "clean": "rm -rf dist/",
26
26
  "dev": "ts-node src/mcp/server.ts",
27
- "typecheck": "tsc --noEmit",
27
+ "typecheck": "NODE_OPTIONS='--max-old-space-size=8192' tsc --noEmit",
28
28
  "prepublishOnly": "npm run build"
29
29
  },
30
30
  "keywords": [
@@ -48,7 +48,7 @@
48
48
  "@modelcontextprotocol/sdk": "^1.12.1",
49
49
  "@solana/spl-token": "^0.4.0",
50
50
  "@solana/web3.js": "^1.95.0",
51
- "outsmart": "^2.0.0-alpha.5",
51
+ "outsmart": "^2.0.0-alpha.9",
52
52
  "zod": "^3.25.0"
53
53
  },
54
54
  "devDependencies": {
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-dca-grid
3
3
  description: Dollar-cost average and grid trade on Solana. Use when user says "DCA", "dollar cost average", "grid", "accumulate", "buy the dip", "range trading", "recurring", or mentions systematic buying strategies.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_dca_create, mcp__outsmart-agent__jupiter_dca_list, mcp__outsmart-agent__jupiter_dca_cancel
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata:
@@ -15,17 +15,27 @@ Two ways to take emotion out of trading. Jupiter's DCA runs on autopilot. DLMM g
15
15
 
16
16
  ## DCA — Dollar-Cost Averaging
17
17
 
18
- ### Jupiter Recurring (Recommended — but not yet MCP-executable)
18
+ ### Jupiter Recurring (Recommended — Fully MCP-Executable)
19
19
 
20
- **Note:** Jupiter Recurring API is NOT yet exposed as MCP tools. Creating and cancelling orders requires signed transactions. The agent can check order status via WebFetch but can't create orders autonomously yet. Use the Jupiter UI or CLI to set up recurring orders, then the agent can monitor them.
20
+ Jupiter DCA is fully autonomous via MCP tools. Create orders, monitor them, cancel if needed all from the agent.
21
21
 
22
- - `POST /recurring/v1/createOrder` **not MCP-executable** (needs signing)
23
- - `GET /recurring/v1/getRecurringOrders` — can check via WebFetch
24
- - `POST /recurring/v1/cancelOrder` **not MCP-executable** (needs signing)
22
+ | Tool | What It Does |
23
+ |------|-------------|
24
+ | `jupiter_dca_create` | Create a recurring DCA order (signs + submits tx) |
25
+ | `jupiter_dca_list` | List your active or historical DCA orders |
26
+ | `jupiter_dca_cancel` | Cancel an active order, returns remaining funds |
25
27
 
26
- Best for: accumulating blue chips (SOL, JUP, JTO) without thinking about it. Set it up manually, let keepers run it.
28
+ Jupiter keepers auto-execute each swap on your schedule. 0.1% fee per swap. Min 100 USDC equivalent.
27
29
 
28
- ### Manual DCA (Agent-Controlled)
30
+ Best for: accumulating blue chips (SOL, JUP, JTO) without thinking about it. Set and forget.
31
+
32
+ ```
33
+ 1. jupiter_dca_create(input_mint="USDC", output_mint="SOL", total_amount=500, number_of_orders=10, interval_seconds=21600)
34
+ 2. jupiter_dca_list(status="active") → check progress
35
+ 3. jupiter_dca_cancel(order="ORDER_PUBKEY") → cancel if needed
36
+ ```
37
+
38
+ ### Manual DCA (Alternative — Agent-Controlled)
29
39
 
30
40
  Execute buys yourself on a schedule via `solana_buy`. More control — you can add conditions (only buy if price is below X, skip if gas is high, etc). Downside: agent needs to stay online.
31
41
 
@@ -41,8 +51,8 @@ Every 6 hours:
41
51
  - Fixed amount per buy: 1-3% of portfolio
42
52
  - Fixed interval — don't deviate, that defeats the purpose
43
53
  - Stop if: project dies, exploit happens, team exits
44
- - Prefer Jupiter Recurring for set-and-forget
45
- - Use manual only when you need conditional logic
54
+ - Prefer `jupiter_dca_create` for set-and-forget — keepers handle execution
55
+ - Use manual `solana_buy` only when you need conditional logic (price thresholds, etc.)
46
56
 
47
57
  ## Grid Trading with DLMM
48
58
 
@@ -84,7 +94,7 @@ Use one-sided DLMM positions as a grid of buy/sell orders. When price crosses a
84
94
  ## Combining Both
85
95
 
86
96
  The strongest setup:
87
- 1. **Jupiter Recurring DCA** accumulates a token on autopilot
97
+ 1. **`jupiter_dca_create`** accumulates a token on autopilot
88
98
  2. **DLMM grid** earns fees on the same pair
89
99
  3. **Grid fees** fund more DCA buys
90
100
 
@@ -93,7 +103,7 @@ Self-reinforcing loop: DCA builds position → grid earns fees → fees fund mor
93
103
  ## Survival Mode
94
104
 
95
105
  - **Normal:** Full DCA + active grids
96
- - **Low Compute:** Keep Jupiter Recurring (it's automated). Wider grids, fewer rebalances.
106
+ - **Low Compute:** Keep Jupiter DCA running (keepers handle it). Wider grids, fewer rebalances.
97
107
  - **Critical:** Cancel all DCA. Remove all grids. Liquidate. Survive.
98
108
 
99
109
  ## Related Skills
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-devving-coins
3
3
  description: Launch tokens on Solana launchpads. Use when user says "dev a coin", "devving", "launch token", "create token", "bonding curve", "pump fun", "pumpfun", "launchlab", "jupiter studio", "DBC", "dynamic bonding curve", "launch a meme", "deploy token", or mentions creating/launching a new token on Solana.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-dex-trading
3
3
  description: Execute trades on Solana DEXes. Use when user says "buy token", "sell token", "swap", "add liquidity", "remove liquidity", "claim fees", "LP", "DEX", "pool", "Solana trade", "check price", "wallet balance", or mentions trading tokens on Solana.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__solana_wallet_balance
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, mcp__outsmart-agent__jupiter_prediction_events, mcp__outsmart-agent__jupiter_prediction_market, mcp__outsmart-agent__jupiter_prediction_order, mcp__outsmart-agent__jupiter_prediction_positions, mcp__outsmart-agent__jupiter_prediction_claim, mcp__outsmart-agent__jupiter_dca_create, mcp__outsmart-agent__jupiter_dca_list, mcp__outsmart-agent__jupiter_dca_cancel
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata:
@@ -11,9 +11,9 @@ metadata:
11
11
 
12
12
  # Solana DEX Trading
13
13
 
14
- This is your tool reference. 10 MCP tools, 18 DEX adapters, and the patterns for using them.
14
+ This is your tool reference. 23 MCP tools (14 DEX + 9 Jupiter), 18 DEX adapters, and the patterns for using them.
15
15
 
16
- ## Tools at a Glance
16
+ ## DEX Tools at a Glance
17
17
 
18
18
  | Tool | What It Does | Key Params |
19
19
  |------|-------------|------------|
@@ -32,6 +32,20 @@ This is your tool reference. 10 MCP tools, 18 DEX adapters, and the patterns for
32
32
  | `solana_list_dexes` | All 18 adapters + capabilities | |
33
33
  | `solana_wallet_balance` | SOL and token balances | |
34
34
 
35
+ ## Jupiter Tools
36
+
37
+ | Tool | What It Does | Key Params |
38
+ |------|-------------|------------|
39
+ | `jupiter_shield` | Token security warnings | `mints` |
40
+ | `jupiter_prediction_events` | Browse/search prediction markets | `category`, `status`, `query` |
41
+ | `jupiter_prediction_market` | Market details + orderbook | `market_id` |
42
+ | `jupiter_prediction_order` | Place prediction market orders | `market_id`, `side`, `outcome`, `amount` |
43
+ | `jupiter_prediction_positions` | Your positions + trade history | |
44
+ | `jupiter_prediction_claim` | Claim resolved market winnings | `market_id` |
45
+ | `jupiter_dca_create` | Create recurring DCA order | `input_mint`, `output_mint`, `total_amount`, `number_of_orders`, `interval_seconds` |
46
+ | `jupiter_dca_list` | List active/historical DCA orders | `status` |
47
+ | `jupiter_dca_cancel` | Cancel a DCA order | `order` |
48
+
35
49
  ## Picking the Right DEX
36
50
 
37
51
  **If you just want the best price**, use `jupiter-ultra`. It routes across everything.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-lp-sniping
3
3
  description: Buy tokens at or near LP creation on Solana. Use when user says "snipe", "sniping", "bonding curve", "graduation", "migration", "new pool", "LP created", "snipe LP", "bloom bot", "set up snipe", "pump fun", "launchlab", or mentions buying a token the instant its LP pool goes live.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata:
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: outsmart-percolator-perps
3
+ description: Trade and create perpetual futures markets on Solana via Percolator. Use when user says "perp", "perpetual", "futures", "leverage", "long", "short", "margin", "liquidation", "percolator", "create perp market", "slab", "funding rate", or mentions leveraged trading on Solana.
4
+ allowed-tools: mcp__outsmart-agent__percolator_create_market, mcp__outsmart-agent__percolator_trade, mcp__outsmart-agent__percolator_deposit, mcp__outsmart-agent__percolator_withdraw, mcp__outsmart-agent__percolator_market_state, mcp__outsmart-agent__percolator_list_markets, mcp__outsmart-agent__percolator_push_price, mcp__outsmart-agent__percolator_crank, mcp__outsmart-agent__percolator_insurance_lp, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, WebFetch
5
+ model: opus
6
+ license: ISC
7
+ metadata:
8
+ author: outsmartchad
9
+ version: '1.0.0'
10
+ ---
11
+
12
+ # Percolator: Permissionless Perpetual Futures on Solana
13
+
14
+ Percolator is pump.fun for perps. Toly (Anatoly Yakovenko) built it. Any SPL token on Solana can have a perpetual futures market, and you can deploy one in a single transaction. No governance vote, no listing fee, no waiting. You just create it.
15
+
16
+ Every market lives in a single on-chain account called a **slab**. A virtual AMM (vAMM) provides automated initial liquidity so the market is tradeable from block one, no real deposits needed to bootstrap. Markets are coin-margined: if you're trading BONK perps, your collateral is BONK. This is critical to understand because your PnL is denominated in the same token you're speculating on.
17
+
18
+ **Currently targeting devnet.** The mainnet program exists, but run everything on devnet first. Test your market creation flow, test your trading logic, test your crank. Only move to mainnet when you're confident the pipeline works end to end.
19
+
20
+ ---
21
+
22
+ ## MCP Tools Reference
23
+
24
+ | Tool | What It Does | Key Params |
25
+ |---|---|---|
26
+ | `percolator_create_market` | Deploy a new perp market (slab) for any SPL token | `token_mint`, `leverage_max`, `fee_bps`, `slab_size`, `vamm_spread` |
27
+ | `percolator_trade` | Open or close a position. Positive size = long, negative = short | `slab_address`, `size`, `price_limit` |
28
+ | `percolator_deposit` | Deposit collateral into a market | `slab_address`, `amount` |
29
+ | `percolator_withdraw` | Withdraw collateral and realized profit | `slab_address`, `amount` |
30
+ | `percolator_market_state` | Read market data: OI, funding rate, positions, insurance health | `slab_address` |
31
+ | `percolator_list_markets` | List all available perp markets | `token_mint` (optional filter) |
32
+ | `percolator_push_price` | Push an oracle price update to the market | `slab_address`, `price` |
33
+ | `percolator_crank` | Turn the crank: process funding, check liquidations | `slab_address` |
34
+ | `percolator_insurance_lp` | Deposit into / withdraw from the insurance fund | `slab_address`, `amount`, `action` |
35
+
36
+ ---
37
+
38
+ ## Two Roles: Market Creator vs Trader
39
+
40
+ This is where Percolator gets interesting. You're not just a trader. You can be the exchange.
41
+
42
+ ### Market Creator (the alpha)
43
+
44
+ You deploy the slab. You set the leverage cap, the fee structure, the vAMM spread. You push the oracle prices. Every single trade on your market generates fees, and a portion flows to the insurance fund which you can LP into.
45
+
46
+ The play: find a token that's trending, has volume, but doesn't have a perp market yet. Create one. You're the first mover. When leveraged degens show up wanting to go 10x long on the latest memecoin, they're trading on YOUR market and you're earning from every position open and close.
47
+
48
+ Most tokens on Solana have zero perp markets. That's the opportunity.
49
+
50
+ ### Trader
51
+
52
+ Standard perp trading. Find an existing market, deposit collateral, go long or short with leverage. Nothing exotic here if you've used any perp DEX before. The difference is coin-margining and the fact that markets can exist for anything.
53
+
54
+ ---
55
+
56
+ ## Creating a Market -- Full Workflow
57
+
58
+ ```
59
+ 1. Pick a token with volume
60
+ -> solana_token_info to check liquidity, volume, holder count
61
+ -> No point creating a perp for a dead token
62
+
63
+ 2. percolator_create_market
64
+ -> Deploys the slab, initializes vAMM, sets all parameters
65
+ -> Choose slab size based on expected activity (start Small, upgrade later)
66
+
67
+ 3. percolator_push_price
68
+ -> Seed the initial oracle price
69
+ -> Pull from DexScreener or Jupiter spot price
70
+
71
+ 4. percolator_crank
72
+ -> First crank to initialize the engine
73
+ -> Market won't function without this
74
+
75
+ 5. Share the slab address -- market is live
76
+ -> Anyone can now trade on it
77
+
78
+ 6. Run crank every ~30 seconds to keep market healthy
79
+ -> This is your keeper obligation as market creator
80
+ -> Stale cranks = stuck positions = angry traders
81
+ ```
82
+
83
+ As market creator, you ARE the oracle operator. You pull prices from DexScreener or Jupiter's spot price and push them to the slab via `percolator_push_price`. No Pyth dependency. This gives you flexibility but also responsibility -- push accurate prices or your market becomes untradeable.
84
+
85
+ ---
86
+
87
+ ## Trading -- Full Workflow
88
+
89
+ ```
90
+ 1. percolator_list_markets
91
+ -> Find what markets exist, optionally filter by token
92
+
93
+ 2. percolator_market_state
94
+ -> Check open interest, funding rate direction, insurance fund health
95
+ -> A market with depleted insurance is risky -- bad debt won't be covered
96
+
97
+ 3. percolator_deposit
98
+ -> Deposit collateral (the token itself, remember: coin-margined)
99
+
100
+ 4. percolator_trade
101
+ -> Positive size = long, negative size = short
102
+ -> Set price_limit to avoid slippage against the vAMM
103
+
104
+ 5. percolator_market_state
105
+ -> Monitor your position PnL, check if funding is eating you
106
+
107
+ 6. percolator_trade
108
+ -> Close by trading the opposite direction with the same size
109
+
110
+ 7. percolator_withdraw
111
+ -> Pull out your collateral + realized profit
112
+ -> Note: profits have a warmup delay before they're withdrawable
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Key Concepts
118
+
119
+ **Slab tiers** determine how many accounts (positions) a market can hold:
120
+
121
+ | Tier | Max Accounts | Rent Cost |
122
+ |---|---|---|
123
+ | Small | 256 | ~0.44 SOL |
124
+ | Medium | 1024 | ~1.73 SOL |
125
+ | Large | 4096 | ~6.87 SOL |
126
+
127
+ Start Small. You can always upgrade. Don't burn SOL on a Large slab for a market that might see 3 traders.
128
+
129
+ **Coin-margined**: Your collateral IS the token. Trading BONK perps? Collateral is BONK. This means your collateral value fluctuates with the spot price. If you're long and the token dumps, you get hit twice: position loses AND collateral value drops. Understand this before sizing positions.
130
+
131
+ **vAMM**: The virtual AMM provides liquidity without real deposits. It's a pricing curve that the protocol uses to match trades. The spread you set during market creation determines how tight or wide the market is. Wider spread = more protection for you as creator against adverse selection, but worse execution for traders.
132
+
133
+ **Admin-oracle mode**: You push prices yourself from external sources (DexScreener, Jupiter). No Pyth oracle feed needed. This is what makes permissionless creation possible -- you don't need an oracle listing. The tradeoff is you must keep pushing prices or the market goes stale.
134
+
135
+ **Warmup period**: Realized profits aren't immediately withdrawable. There's a time delay. This prevents flash-loan-style exploits and gives the insurance fund time to process.
136
+
137
+ **Funding rate**: Standard perp funding. When longs outweigh shorts, longs pay shorts. When shorts outweigh longs, shorts pay longs. This keeps the perp price anchored to the oracle price. Check funding before opening a position -- you don't want to be on the paying side of a heavily skewed market.
138
+
139
+ **Crank**: The crank processes funding payments and checks for liquidatable positions. It must run periodically. If you created the market, running the crank is your job. If nobody cranks, the market stalls.
140
+
141
+ **Insurance fund**: Accumulates a portion of trading fees. Covers bad debt when a liquidation doesn't fully cover the position's losses. You can LP into it via `percolator_insurance_lp` and earn a share of the fees.
142
+
143
+ ---
144
+
145
+ ## Risk Management
146
+
147
+ These aren't suggestions. Follow them.
148
+
149
+ - **Max 10x leverage** for any market you create. Higher leverage means faster liquidations and more bad debt risk for your insurance fund. 10x is already aggressive for memecoins.
150
+ - **Never allocate more than 5% of portfolio** to a single perp position. Coin-margined perps on volatile tokens can move fast. Size accordingly.
151
+ - **Monitor liquidation price** after opening any position. Leave at least a 20% margin buffer above/below your liquidation price. Thin markets gap.
152
+ - **Keep the crank running** if you created the market. A stale crank means funding doesn't accrue, liquidations don't process, and positions get stuck. Set your crank interval to ~30 seconds.
153
+ - **Wide vAMM spread as creator**: Start with a wider spread and tighten as volume proves the market. A tight spread on a low-liquidity market is how you get adversely selected by informed traders.
154
+ - **Check insurance fund health** before trading on someone else's market. If the fund is near zero and there's high OI, one liquidation cascade could cause socialized losses.
155
+
156
+ ---
157
+
158
+ ## Revenue Strategy for Agents
159
+
160
+ This is where agent-native market making gets real.
161
+
162
+ **Create perp markets for trending memecoins.** When a token starts pumping and Twitter/CT is talking about it, there's probably no perp market for it yet. Create one. The degens who want 5x long exposure will find it. You earn fees on every trade.
163
+
164
+ **First-mover advantage.** There's only one slab needed per token. If you deploy the BONK perp first, that's the BONK perp market. Volume concentrates. Late entrants split liquidity.
165
+
166
+ **Insurance fund LP.** Find popular markets with real volume and deposit into their insurance fund via `percolator_insurance_lp`. You earn a share of trading fees proportional to your deposit. This is passive yield on top of a functioning market.
167
+
168
+ **Spot + perp combo.** Buy a token on spot (use dex-trading skill). Then create a perp market for it. Now you hold the spot position AND earn fees from leveraged volume. If the token moons, you win on spot. The perp market earns regardless of direction because traders pay fees on both sides.
169
+
170
+ ---
171
+
172
+ ## Survival Mode Integration
173
+
174
+ Percolator operations should scale with available resources.
175
+
176
+ **Normal mode**: Full operation. Create markets for trending tokens. Active trading on existing markets. Run keeper/crank on all your markets at 30-second intervals. LP into insurance funds of high-volume markets.
177
+
178
+ **Low Compute mode**: Stop creating new markets (saves SOL rent). Reduce position sizes by 50%. Widen crank interval to 60-90 seconds. Only maintain keeper on your most active markets. No new insurance LP deposits.
179
+
180
+ **Critical mode**: Close ALL open perp positions immediately. Withdraw ALL collateral from all markets. Stop all keeper/crank operations. Preserve capital. Re-enter when resources recover.
181
+
182
+ The transition between modes should be automatic based on wallet balance and compute availability. Don't wait until you're out of SOL to start unwinding.
183
+
184
+ ---
185
+
186
+ ## Related Skills
187
+
188
+ - **dex-trading** -- Spot trading on Jupiter/Raydium. Use alongside perps for hedging or the spot+perp combo strategy.
189
+ - **lp-farming** -- LP strategies on Solana DEXes. Different risk profile than perp market creation but complementary.
190
+ - **survival** -- Resource management and mode transitions. Governs when to scale perp operations up or down.
191
+ - **trenching** -- Memecoin sniping and momentum trading. Feed trending token signals into perp market creation decisions.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-prediction-markets
3
3
  description: Trade prediction markets on Solana via Jupiter (which integrates Polymarket) and MetaDAO Futarchy. Use when user says "prediction", "prediction market", "bet", "forecast", "Polymarket", "Jupiter markets", "binary outcome", "will X happen", "probability", "odds", "futarchy", "decision market", or mentions betting on real-world events.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, WebFetch
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, mcp__outsmart-agent__jupiter_prediction_events, mcp__outsmart-agent__jupiter_prediction_market, mcp__outsmart-agent__jupiter_prediction_order, mcp__outsmart-agent__jupiter_prediction_positions, mcp__outsmart-agent__jupiter_prediction_claim, WebFetch
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata:
@@ -21,23 +21,33 @@ Bet on real-world outcomes. This is where AI agents have a genuine edge — you'
21
21
 
22
22
  **MetaDAO Futarchy** — Different game. Governance markets — "will this proposal make the token go up?" Two conditional markets (pass vs fail), the winning market determines the governance outcome. Outsmart has a `futarchy-amm` adapter for direct trading.
23
23
 
24
- ## Jupiter Prediction API
24
+ ## MCP Tools
25
25
 
26
- **Note:** These endpoints are NOT yet exposed as MCP tools. The agent can browse events via WebFetch (GET requests), but placing orders and managing positions requires signed transactions that aren't wired up yet. For now, the agent can research and recommend bets, but execution is manual or via the Jupiter UI.
26
+ All Jupiter Prediction operations are fully MCP-executable. The agent can browse, bet, and claim autonomously.
27
27
 
28
- | Endpoint | Method | Agent Can Call? | What |
29
- |----------|--------|----------------|------|
30
- | `/events` | GET | Yes (WebFetch) | List events (filter by category, status) |
31
- | `/events/search` | GET | Yes (WebFetch) | Search by keyword |
32
- | `/markets/{id}` | GET | Yes (WebFetch) | Market details, pricing, orderbook |
33
- | `/orderbook/{id}` | GET | Yes (WebFetch) | Bid/ask depth |
34
- | `/orders` | POST | **No** | Buy YES/NO contracts (needs signing) |
35
- | `/positions` | GET | **No** | Your holdings + P&L (needs auth) |
36
- | `/positions/{id}/claim` | POST | **No** | Claim winning payout (needs signing) |
28
+ | Tool | What It Does |
29
+ |------|-------------|
30
+ | `jupiter_prediction_events` | Browse/search events by category, status, or keyword |
31
+ | `jupiter_prediction_market` | Get market details, pricing, and orderbook depth |
32
+ | `jupiter_prediction_order` | Place buy/sell orders on YES/NO contracts (signs + submits tx) |
33
+ | `jupiter_prediction_positions` | List your positions, open orders, and trade history |
34
+ | `jupiter_prediction_claim` | Claim winnings from resolved markets |
35
+ | `jupiter_shield` | Check token security warnings (useful for market research) |
37
36
 
38
37
  Fees scale with uncertainty — contracts near $0.50 cost more to trade. No fees on claiming payouts.
39
38
 
40
- **Futarchy markets ARE executable**use `solana_buy(dex="futarchy-amm", pool=MARKET_POOL)` to trade governance proposals directly.
39
+ **Futarchy markets** use a different path — `solana_buy(dex="futarchy-amm", pool=MARKET_POOL)` to trade governance proposals directly.
40
+
41
+ ### Workflow
42
+
43
+ ```
44
+ 1. jupiter_prediction_events(category="crypto") → find interesting markets
45
+ 2. jupiter_prediction_market(market_id) → check pricing, orderbook depth
46
+ 3. Research the question (WebFetch, solana_token_info, etc.)
47
+ 4. jupiter_prediction_order(market_id, side="buy", outcome="yes", amount=10) → bet
48
+ 5. jupiter_prediction_positions() → track your positions
49
+ 6. jupiter_prediction_claim(market_id) → collect when market resolves
50
+ ```
41
51
 
42
52
  ## The Only Rule: Edge
43
53
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: outsmart-trenching
3
3
  description: Trade memecoins on Solana like a degen. Use when user says "memecoin", "trench", "trenching", "degen", "ape", "GMGN", "Axiom", "pump", "moon", "100x", "gem", "alpha", "CT", "crypto twitter", "smart money", "whale", "fresh wallet", "dev wallet", "rug", "honeypot", "insider", "sniper", "copy trade", or mentions memecoin trading on Solana.
4
- allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
4
+ allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
5
5
  model: opus
6
6
  license: ISC
7
7
  metadata: