@catalyst-team/poly-mcp 0.1.1 → 0.1.2
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 +240 -21
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -5
- package/dist/index.js.map +1 -1
- package/dist/sdk-instance.d.ts +27 -0
- package/dist/sdk-instance.d.ts.map +1 -0
- package/dist/sdk-instance.js +64 -0
- package/dist/sdk-instance.js.map +1 -0
- package/dist/server.d.ts +13 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +29 -27
- package/dist/server.js.map +1 -1
- package/dist/tools/guide.d.ts.map +1 -1
- package/dist/tools/guide.js +159 -1
- package/dist/tools/guide.js.map +1 -1
- package/dist/tools/index.d.ts +8 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +20 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insider-detection.d.ts +175 -0
- package/dist/tools/insider-detection.d.ts.map +1 -0
- package/dist/tools/insider-detection.js +654 -0
- package/dist/tools/insider-detection.js.map +1 -0
- package/dist/tools/insider-signals.d.ts +56 -0
- package/dist/tools/insider-signals.d.ts.map +1 -0
- package/dist/tools/insider-signals.js +170 -0
- package/dist/tools/insider-signals.js.map +1 -0
- package/dist/tools/market.d.ts +25 -1
- package/dist/tools/market.d.ts.map +1 -1
- package/dist/tools/market.js +504 -12
- package/dist/tools/market.js.map +1 -1
- package/dist/tools/onchain.d.ts +240 -0
- package/dist/tools/onchain.d.ts.map +1 -0
- package/dist/tools/onchain.js +610 -0
- package/dist/tools/onchain.js.map +1 -0
- package/dist/tools/order.d.ts.map +1 -1
- package/dist/tools/order.js +13 -6
- package/dist/tools/order.js.map +1 -1
- package/dist/tools/trade.d.ts +15 -0
- package/dist/tools/trade.d.ts.map +1 -1
- package/dist/tools/trade.js +216 -39
- package/dist/tools/trade.js.map +1 -1
- package/dist/tools/trader.d.ts +4 -1
- package/dist/tools/trader.d.ts.map +1 -1
- package/dist/tools/trader.js +316 -4
- package/dist/tools/trader.js.map +1 -1
- package/dist/tools/wallet-classification.d.ts +166 -0
- package/dist/tools/wallet-classification.d.ts.map +1 -0
- package/dist/tools/wallet-classification.js +455 -0
- package/dist/tools/wallet-classification.js.map +1 -0
- package/dist/tools/wallet.d.ts +56 -7
- package/dist/tools/wallet.d.ts.map +1 -1
- package/dist/tools/wallet.js +141 -20
- package/dist/tools/wallet.js.map +1 -1
- package/dist/types.d.ts +269 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/wallet-manager.d.ts +67 -0
- package/dist/wallet-manager.d.ts.map +1 -0
- package/dist/wallet-manager.js +180 -0
- package/dist/wallet-manager.js.map +1 -0
- package/docs/01-mcp.md +554 -32
- package/docs/02-wallet-deep-research.md +344 -0
- package/docs/e2e-02/00-gap-analysis.md +211 -0
- package/docs/e2e-02/01-test-scenarios.md +530 -0
- package/docs/e2e-02/02-implementation-plan.md +190 -0
- package/docs/e2e-02/README.md +102 -0
- package/docs/reports/simonbanza-strategy-analysis-2025-12-25.md +420 -0
- package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
- package/docs/reports/smart-money-trading-strategies-2025-12-25.md +440 -0
- package/docs/reports/weekly/01-v2.5.md +352 -0
- package/docs/reports/weekly/01.md +402 -0
- package/docs/reports/weekly/02-deep.md +558 -0
- package/docs/reports/weekly/02.md +505 -0
- package/docs/reports/weekly/03.md +437 -0
- package/docs/reports/weekly/04.md +418 -0
- package/docs/reports/weekly/05.md +485 -0
- package/docs/reports/weekly/06.md +436 -0
- package/docs/reports/weekly/07.md +381 -0
- package/docs/reports/weekly/08.md +502 -0
- package/docs/reports/weekly/09.md +441 -0
- package/docs/reports/weekly/10.md +511 -0
- package/docs/reports/weekly/README.md +188 -0
- package/docs/reports/weekly/prompt-v2.5.md +1019 -0
- package/docs/reports/weekly/prompt-v3.md +432 -0
- package/docs/reports/weekly/prompt.md +841 -0
- package/package.json +3 -2
- package/src/errors.ts +13 -2
- package/src/index.ts +286 -1
- package/src/sdk-instance.ts +78 -0
- package/src/server.ts +30 -28
- package/src/tools/guide.ts +160 -1
- package/src/tools/index.ts +65 -0
- package/src/tools/insider-detection.ts +899 -0
- package/src/tools/insider-signals.ts +213 -0
- package/src/tools/market.ts +569 -12
- package/src/tools/onchain.ts +738 -0
- package/src/tools/order.ts +25 -12
- package/src/tools/trade.ts +265 -53
- package/src/tools/trader.ts +350 -4
- package/src/tools/wallet-classification.ts +587 -0
- package/src/tools/wallet.ts +172 -23
- package/src/types.ts +294 -11
- package/src/wallet-manager.ts +209 -0
package/docs/01-mcp.md
CHANGED
|
@@ -195,9 +195,12 @@ GET https://data-api.polymarket.com/trades?market={conditionId}
|
|
|
195
195
|
| Tool | 用户问题 | 返回 |
|
|
196
196
|
|------|----------|------|
|
|
197
197
|
| `get_trader_positions` | "他持有什么仓位?" | 持仓列表 + PnL |
|
|
198
|
-
| `
|
|
198
|
+
| `get_trader_closed_positions` | "他已平仓位怎么样?" | 已结算持仓 + 已实现 PnL |
|
|
199
|
+
| `get_trader_trades` | "他最近交易了什么?" | 仅交易记录 (BUY/SELL) |
|
|
200
|
+
| `get_trader_activity` | "他完整活动历史?" | 全部活动 (TRADE/SPLIT/MERGE/REDEEM...) |
|
|
199
201
|
| `get_trader_profile` | "他是什么水平?" | 综合分析 |
|
|
200
202
|
| `get_leaderboard` | "谁是顶级交易者?" | 排行榜 |
|
|
203
|
+
| `get_account_value` | "他账户值多少钱?" | 账户总价值 |
|
|
201
204
|
|
|
202
205
|
### 4.1 `get_trader_positions`
|
|
203
206
|
|
|
@@ -269,7 +272,84 @@ GET https://data-api.polymarket.com/trades?market={conditionId}
|
|
|
269
272
|
}
|
|
270
273
|
```
|
|
271
274
|
|
|
272
|
-
### 4.2 `
|
|
275
|
+
### 4.2 `get_trader_closed_positions`
|
|
276
|
+
|
|
277
|
+
**用户场景**: "他已经平掉的仓位表现如何?"
|
|
278
|
+
|
|
279
|
+
**MCP Tool Definition**:
|
|
280
|
+
```json
|
|
281
|
+
{
|
|
282
|
+
"name": "get_trader_closed_positions",
|
|
283
|
+
"description": "Get closed/settled positions for a trader with realized PnL",
|
|
284
|
+
"inputSchema": {
|
|
285
|
+
"type": "object",
|
|
286
|
+
"properties": {
|
|
287
|
+
"address": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"description": "Trader wallet address (0x...)"
|
|
290
|
+
},
|
|
291
|
+
"limit": {
|
|
292
|
+
"type": "number",
|
|
293
|
+
"description": "Maximum positions to return (max 50)",
|
|
294
|
+
"default": 20
|
|
295
|
+
},
|
|
296
|
+
"sortBy": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"enum": ["REALIZEDPNL", "TIMESTAMP", "TITLE"],
|
|
299
|
+
"description": "Sort by field",
|
|
300
|
+
"default": "REALIZEDPNL"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"required": ["address"]
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Input**:
|
|
309
|
+
```json
|
|
310
|
+
{
|
|
311
|
+
"address": "0xc2e7800b...",
|
|
312
|
+
"limit": 10,
|
|
313
|
+
"sortBy": "REALIZEDPNL"
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Output**:
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"trader": {
|
|
321
|
+
"address": "0xc2e7800b...",
|
|
322
|
+
"displayName": "beachboy4"
|
|
323
|
+
},
|
|
324
|
+
"closedPositions": [
|
|
325
|
+
{
|
|
326
|
+
"market": {
|
|
327
|
+
"conditionId": "0x39e493c3...",
|
|
328
|
+
"title": "Spread: Grizzlies (-12.5)",
|
|
329
|
+
"slug": "nba-was-mem-2025-12-20"
|
|
330
|
+
},
|
|
331
|
+
"holding": {
|
|
332
|
+
"outcome": "Wizards",
|
|
333
|
+
"avgPrice": 0.52,
|
|
334
|
+
"settlementPrice": 1.00
|
|
335
|
+
},
|
|
336
|
+
"pnl": {
|
|
337
|
+
"realized": 646022.34,
|
|
338
|
+
"totalBought": 700803.12
|
|
339
|
+
},
|
|
340
|
+
"settledAt": "2025-12-21T00:00:00Z"
|
|
341
|
+
}
|
|
342
|
+
],
|
|
343
|
+
"summary": {
|
|
344
|
+
"totalClosed": 10,
|
|
345
|
+
"totalRealizedPnl": 802943.86,
|
|
346
|
+
"winningPositions": 8,
|
|
347
|
+
"losingPositions": 2
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### 4.3 `get_trader_trades`
|
|
273
353
|
|
|
274
354
|
**用户场景**: "他最近买了什么?卖了什么?"
|
|
275
355
|
|
|
@@ -345,7 +425,103 @@ GET https://data-api.polymarket.com/trades?market={conditionId}
|
|
|
345
425
|
}
|
|
346
426
|
```
|
|
347
427
|
|
|
348
|
-
### 4.
|
|
428
|
+
### 4.4 `get_trader_activity`
|
|
429
|
+
|
|
430
|
+
**用户场景**: "他的完整活动历史是什么?有没有 SPLIT/MERGE 操作(可能是 Bot)?"
|
|
431
|
+
|
|
432
|
+
**MCP Tool Definition**:
|
|
433
|
+
```json
|
|
434
|
+
{
|
|
435
|
+
"name": "get_trader_activity",
|
|
436
|
+
"description": "Get complete activity history for a trader including TRADE, SPLIT, MERGE, REDEEM, REWARD, CONVERSION",
|
|
437
|
+
"inputSchema": {
|
|
438
|
+
"type": "object",
|
|
439
|
+
"properties": {
|
|
440
|
+
"address": {
|
|
441
|
+
"type": "string",
|
|
442
|
+
"description": "Trader wallet address (0x...)"
|
|
443
|
+
},
|
|
444
|
+
"limit": {
|
|
445
|
+
"type": "number",
|
|
446
|
+
"description": "Maximum number of activities to return",
|
|
447
|
+
"default": 50
|
|
448
|
+
},
|
|
449
|
+
"type": {
|
|
450
|
+
"type": "string",
|
|
451
|
+
"enum": ["TRADE", "SPLIT", "MERGE", "REDEEM", "REWARD", "CONVERSION"],
|
|
452
|
+
"description": "Filter by activity type"
|
|
453
|
+
},
|
|
454
|
+
"market": {
|
|
455
|
+
"type": "string",
|
|
456
|
+
"description": "Filter by market conditionId"
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
"required": ["address"]
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
**Input 示例 1** - 获取全部活动:
|
|
465
|
+
```json
|
|
466
|
+
{
|
|
467
|
+
"address": "0xc2e7800b...",
|
|
468
|
+
"limit": 100
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
**Input 示例 2** - 检测 Bot(过滤 SPLIT/MERGE):
|
|
473
|
+
```json
|
|
474
|
+
{
|
|
475
|
+
"address": "0xc2e7800b...",
|
|
476
|
+
"type": "SPLIT"
|
|
477
|
+
}
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
**Input 示例 3** - 分析特定市场的活动:
|
|
481
|
+
```json
|
|
482
|
+
{
|
|
483
|
+
"address": "0xc2e7800b...",
|
|
484
|
+
"market": "0x39e493c3...",
|
|
485
|
+
"limit": 100
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
**Output**:
|
|
490
|
+
```json
|
|
491
|
+
{
|
|
492
|
+
"trader": {
|
|
493
|
+
"address": "0xc2e7800b...",
|
|
494
|
+
"displayName": null
|
|
495
|
+
},
|
|
496
|
+
"activities": [
|
|
497
|
+
{
|
|
498
|
+
"type": "SPLIT",
|
|
499
|
+
"market": {
|
|
500
|
+
"conditionId": "0x39e493c3...",
|
|
501
|
+
"title": "Trump 2024"
|
|
502
|
+
},
|
|
503
|
+
"size": 1000,
|
|
504
|
+
"usdcValue": 1000,
|
|
505
|
+
"timestamp": "2025-12-20T15:30:45Z",
|
|
506
|
+
"txHash": "0x5fd43582..."
|
|
507
|
+
}
|
|
508
|
+
],
|
|
509
|
+
"summary": {
|
|
510
|
+
"total": 50,
|
|
511
|
+
"byType": {
|
|
512
|
+
"TRADE": 40,
|
|
513
|
+
"SPLIT": 5,
|
|
514
|
+
"MERGE": 3,
|
|
515
|
+
"REDEEM": 2
|
|
516
|
+
},
|
|
517
|
+
"totalVolume": 50000
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**Note**: 如果 `byType` 中有大量 SPLIT/MERGE,可能是套利 Bot 或做市商。
|
|
523
|
+
|
|
524
|
+
### 4.5 `get_trader_profile`
|
|
349
525
|
|
|
350
526
|
**用户场景**: "这个人厉害吗?值得跟单吗?"
|
|
351
527
|
|
|
@@ -407,7 +583,7 @@ GET https://data-api.polymarket.com/trades?market={conditionId}
|
|
|
407
583
|
}
|
|
408
584
|
```
|
|
409
585
|
|
|
410
|
-
### 4.
|
|
586
|
+
### 4.6 `get_leaderboard`
|
|
411
587
|
|
|
412
588
|
**用户场景**: "谁是最赚钱的交易者?"
|
|
413
589
|
|
|
@@ -463,6 +639,49 @@ GET https://data-api.polymarket.com/trades?market={conditionId}
|
|
|
463
639
|
}
|
|
464
640
|
```
|
|
465
641
|
|
|
642
|
+
### 4.7 `get_account_value`
|
|
643
|
+
|
|
644
|
+
**用户场景**: "这个钱包账户值多少钱?"
|
|
645
|
+
|
|
646
|
+
**MCP Tool Definition**:
|
|
647
|
+
```json
|
|
648
|
+
{
|
|
649
|
+
"name": "get_account_value",
|
|
650
|
+
"description": "Get total value of a user's positions",
|
|
651
|
+
"inputSchema": {
|
|
652
|
+
"type": "object",
|
|
653
|
+
"properties": {
|
|
654
|
+
"address": {
|
|
655
|
+
"type": "string",
|
|
656
|
+
"description": "User wallet address (0x...)"
|
|
657
|
+
},
|
|
658
|
+
"market": {
|
|
659
|
+
"type": "array",
|
|
660
|
+
"items": { "type": "string" },
|
|
661
|
+
"description": "Optional: filter by specific market conditionIds"
|
|
662
|
+
}
|
|
663
|
+
},
|
|
664
|
+
"required": ["address"]
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
**Input**:
|
|
670
|
+
```json
|
|
671
|
+
{
|
|
672
|
+
"address": "0xc2e7800b..."
|
|
673
|
+
}
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**Output**:
|
|
677
|
+
```json
|
|
678
|
+
{
|
|
679
|
+
"address": "0xc2e7800b...",
|
|
680
|
+
"value": 1346825.46,
|
|
681
|
+
"currency": "USDC"
|
|
682
|
+
}
|
|
683
|
+
```
|
|
684
|
+
|
|
466
685
|
---
|
|
467
686
|
|
|
468
687
|
## 5. Market Tools(市场查询)
|
|
@@ -1834,6 +2053,301 @@ export function registerTraderTools(server: Server, sdk: PolymarketSDK) {
|
|
|
1834
2053
|
|
|
1835
2054
|
---
|
|
1836
2055
|
|
|
2056
|
+
## 9. On-Chain Tools(链上数据 - Subgraph)
|
|
2057
|
+
|
|
2058
|
+
> 基于 Goldsky 托管的 Polymarket Subgraph,提供链上数据查询
|
|
2059
|
+
|
|
2060
|
+
### 工具列表
|
|
2061
|
+
|
|
2062
|
+
| Tool | 用户问题 | 数据来源 |
|
|
2063
|
+
|------|----------|----------|
|
|
2064
|
+
| `get_market_open_interest` | "这个市场有多少 OI?" | OI Subgraph |
|
|
2065
|
+
| `get_global_open_interest` | "Polymarket 总 OI 是多少?" | OI Subgraph |
|
|
2066
|
+
| `get_condition_status` | "这个市场结算了吗?" | PnL Subgraph |
|
|
2067
|
+
| `get_onchain_activity` | "这个用户链上做了什么?" | Activity Subgraph |
|
|
2068
|
+
| `get_order_fills` | "最近有什么成交?" | Orderbook Subgraph |
|
|
2069
|
+
|
|
2070
|
+
### 9.1 `get_market_open_interest`
|
|
2071
|
+
|
|
2072
|
+
**用户场景**: "0xfa48a993 这个市场有多少资金在里面?"
|
|
2073
|
+
|
|
2074
|
+
**MCP Tool Definition**:
|
|
2075
|
+
```json
|
|
2076
|
+
{
|
|
2077
|
+
"name": "get_market_open_interest",
|
|
2078
|
+
"description": "Get open interest for a specific market from on-chain data",
|
|
2079
|
+
"inputSchema": {
|
|
2080
|
+
"type": "object",
|
|
2081
|
+
"properties": {
|
|
2082
|
+
"conditionId": {
|
|
2083
|
+
"type": "string",
|
|
2084
|
+
"description": "Market condition ID (0x...)"
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
"required": ["conditionId"]
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
```
|
|
2091
|
+
|
|
2092
|
+
**Input**:
|
|
2093
|
+
```json
|
|
2094
|
+
{
|
|
2095
|
+
"conditionId": "0xfa48a993..."
|
|
2096
|
+
}
|
|
2097
|
+
```
|
|
2098
|
+
|
|
2099
|
+
**Output** (基于真实 Subgraph):
|
|
2100
|
+
```json
|
|
2101
|
+
{
|
|
2102
|
+
"market": {
|
|
2103
|
+
"conditionId": "0xfa48a993...",
|
|
2104
|
+
"question": "US recession in 2025?"
|
|
2105
|
+
},
|
|
2106
|
+
"openInterest": {
|
|
2107
|
+
"raw": "11010561190000",
|
|
2108
|
+
"formatted": "11,010,561.19",
|
|
2109
|
+
"currency": "USDC"
|
|
2110
|
+
},
|
|
2111
|
+
"rank": 15,
|
|
2112
|
+
"percentOfTotal": 3.31
|
|
2113
|
+
}
|
|
2114
|
+
```
|
|
2115
|
+
|
|
2116
|
+
### 9.2 `get_global_open_interest`
|
|
2117
|
+
|
|
2118
|
+
**用户场景**: "Polymarket 现在总共有多少资金?"
|
|
2119
|
+
|
|
2120
|
+
**MCP Tool Definition**:
|
|
2121
|
+
```json
|
|
2122
|
+
{
|
|
2123
|
+
"name": "get_global_open_interest",
|
|
2124
|
+
"description": "Get total open interest across all Polymarket markets",
|
|
2125
|
+
"inputSchema": {
|
|
2126
|
+
"type": "object",
|
|
2127
|
+
"properties": {}
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
```
|
|
2131
|
+
|
|
2132
|
+
**Output** (基于真实 Subgraph - 已验证):
|
|
2133
|
+
```json
|
|
2134
|
+
{
|
|
2135
|
+
"globalOpenInterest": {
|
|
2136
|
+
"raw": "332425854000000",
|
|
2137
|
+
"formatted": "332,425,854",
|
|
2138
|
+
"currency": "USDC"
|
|
2139
|
+
},
|
|
2140
|
+
"topMarkets": [
|
|
2141
|
+
{
|
|
2142
|
+
"conditionId": "0xc6485bb7...",
|
|
2143
|
+
"openInterest": "71,147,696",
|
|
2144
|
+
"percentOfTotal": 21.41
|
|
2145
|
+
},
|
|
2146
|
+
{
|
|
2147
|
+
"conditionId": "0x95534417...",
|
|
2148
|
+
"openInterest": "60,486,105",
|
|
2149
|
+
"percentOfTotal": 18.20
|
|
2150
|
+
}
|
|
2151
|
+
]
|
|
2152
|
+
}
|
|
2153
|
+
```
|
|
2154
|
+
|
|
2155
|
+
### 9.3 `get_condition_status`
|
|
2156
|
+
|
|
2157
|
+
**用户场景**: "这个市场结算了吗?谁赢了?"
|
|
2158
|
+
|
|
2159
|
+
**MCP Tool Definition**:
|
|
2160
|
+
```json
|
|
2161
|
+
{
|
|
2162
|
+
"name": "get_condition_status",
|
|
2163
|
+
"description": "Check if a market condition is resolved and get payout information",
|
|
2164
|
+
"inputSchema": {
|
|
2165
|
+
"type": "object",
|
|
2166
|
+
"properties": {
|
|
2167
|
+
"conditionId": {
|
|
2168
|
+
"type": "string",
|
|
2169
|
+
"description": "Market condition ID (0x...)"
|
|
2170
|
+
}
|
|
2171
|
+
},
|
|
2172
|
+
"required": ["conditionId"]
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
```
|
|
2176
|
+
|
|
2177
|
+
**Input**:
|
|
2178
|
+
```json
|
|
2179
|
+
{
|
|
2180
|
+
"conditionId": "0xfa48a993..."
|
|
2181
|
+
}
|
|
2182
|
+
```
|
|
2183
|
+
|
|
2184
|
+
**Output** (基于真实 Subgraph):
|
|
2185
|
+
```json
|
|
2186
|
+
{
|
|
2187
|
+
"conditionId": "0xfa48a993...",
|
|
2188
|
+
"resolved": true,
|
|
2189
|
+
"payout": {
|
|
2190
|
+
"numerators": ["1", "0"],
|
|
2191
|
+
"denominator": "1",
|
|
2192
|
+
"winningOutcome": "Yes",
|
|
2193
|
+
"winningIndex": 0
|
|
2194
|
+
},
|
|
2195
|
+
"positionIds": [
|
|
2196
|
+
"10417...yes_token_id",
|
|
2197
|
+
"44528...no_token_id"
|
|
2198
|
+
]
|
|
2199
|
+
}
|
|
2200
|
+
```
|
|
2201
|
+
|
|
2202
|
+
**未结算市场**:
|
|
2203
|
+
```json
|
|
2204
|
+
{
|
|
2205
|
+
"conditionId": "0x00000977...",
|
|
2206
|
+
"resolved": false,
|
|
2207
|
+
"payout": null,
|
|
2208
|
+
"positionIds": ["44554...", "56914..."]
|
|
2209
|
+
}
|
|
2210
|
+
```
|
|
2211
|
+
|
|
2212
|
+
### 9.4 `get_onchain_activity`
|
|
2213
|
+
|
|
2214
|
+
**用户场景**: "这个用户在链上做过什么操作?"
|
|
2215
|
+
|
|
2216
|
+
**MCP Tool Definition**:
|
|
2217
|
+
```json
|
|
2218
|
+
{
|
|
2219
|
+
"name": "get_onchain_activity",
|
|
2220
|
+
"description": "Get user's on-chain CTF activity (splits, merges, redemptions)",
|
|
2221
|
+
"inputSchema": {
|
|
2222
|
+
"type": "object",
|
|
2223
|
+
"properties": {
|
|
2224
|
+
"address": {
|
|
2225
|
+
"type": "string",
|
|
2226
|
+
"description": "User wallet address (0x...)"
|
|
2227
|
+
},
|
|
2228
|
+
"limit": {
|
|
2229
|
+
"type": "number",
|
|
2230
|
+
"description": "Maximum events per type",
|
|
2231
|
+
"default": 20
|
|
2232
|
+
}
|
|
2233
|
+
},
|
|
2234
|
+
"required": ["address"]
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2237
|
+
```
|
|
2238
|
+
|
|
2239
|
+
**Input**:
|
|
2240
|
+
```json
|
|
2241
|
+
{
|
|
2242
|
+
"address": "0xc2e7800b...",
|
|
2243
|
+
"limit": 10
|
|
2244
|
+
}
|
|
2245
|
+
```
|
|
2246
|
+
|
|
2247
|
+
**Output** (基于真实 Subgraph):
|
|
2248
|
+
```json
|
|
2249
|
+
{
|
|
2250
|
+
"address": "0xc2e7800b...",
|
|
2251
|
+
"activity": {
|
|
2252
|
+
"splits": [
|
|
2253
|
+
{
|
|
2254
|
+
"id": "0xbff75087...",
|
|
2255
|
+
"timestamp": "2025-12-20T15:30:00Z",
|
|
2256
|
+
"condition": "0x2506d9db...",
|
|
2257
|
+
"amount": "5000000"
|
|
2258
|
+
}
|
|
2259
|
+
],
|
|
2260
|
+
"merges": [],
|
|
2261
|
+
"redemptions": [
|
|
2262
|
+
{
|
|
2263
|
+
"id": "0xff097248...",
|
|
2264
|
+
"timestamp": "2025-12-20T15:35:00Z",
|
|
2265
|
+
"condition": "0x76f39bb0...",
|
|
2266
|
+
"payout": "10000000"
|
|
2267
|
+
}
|
|
2268
|
+
]
|
|
2269
|
+
},
|
|
2270
|
+
"summary": {
|
|
2271
|
+
"totalSplits": 5,
|
|
2272
|
+
"totalMerges": 0,
|
|
2273
|
+
"totalRedemptions": 12,
|
|
2274
|
+
"totalPayoutReceived": "50000000"
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2277
|
+
```
|
|
2278
|
+
|
|
2279
|
+
### 9.5 `get_order_fills`
|
|
2280
|
+
|
|
2281
|
+
**用户场景**: "最近有什么大单成交?" / "这个用户成交了什么?"
|
|
2282
|
+
|
|
2283
|
+
**MCP Tool Definition**:
|
|
2284
|
+
```json
|
|
2285
|
+
{
|
|
2286
|
+
"name": "get_order_fills",
|
|
2287
|
+
"description": "Get recent order fill events from on-chain data",
|
|
2288
|
+
"inputSchema": {
|
|
2289
|
+
"type": "object",
|
|
2290
|
+
"properties": {
|
|
2291
|
+
"maker": {
|
|
2292
|
+
"type": "string",
|
|
2293
|
+
"description": "Filter by maker address (optional)"
|
|
2294
|
+
},
|
|
2295
|
+
"taker": {
|
|
2296
|
+
"type": "string",
|
|
2297
|
+
"description": "Filter by taker address (optional)"
|
|
2298
|
+
},
|
|
2299
|
+
"limit": {
|
|
2300
|
+
"type": "number",
|
|
2301
|
+
"description": "Maximum number of fills",
|
|
2302
|
+
"default": 20
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
```
|
|
2308
|
+
|
|
2309
|
+
**Input (最近成交)**:
|
|
2310
|
+
```json
|
|
2311
|
+
{
|
|
2312
|
+
"limit": 10
|
|
2313
|
+
}
|
|
2314
|
+
```
|
|
2315
|
+
|
|
2316
|
+
**Input (特定用户)**:
|
|
2317
|
+
```json
|
|
2318
|
+
{
|
|
2319
|
+
"maker": "0xbbaa9ffc...",
|
|
2320
|
+
"limit": 10
|
|
2321
|
+
}
|
|
2322
|
+
```
|
|
2323
|
+
|
|
2324
|
+
**Output** (基于真实 Subgraph - 已验证):
|
|
2325
|
+
```json
|
|
2326
|
+
{
|
|
2327
|
+
"fills": [
|
|
2328
|
+
{
|
|
2329
|
+
"id": "0xf4dd79c7...",
|
|
2330
|
+
"orderHash": "0x25e7d399...",
|
|
2331
|
+
"maker": "0xd0d6053c...",
|
|
2332
|
+
"taker": "0x4bfb41d5...",
|
|
2333
|
+
"makerAssetId": "59975245897...",
|
|
2334
|
+
"takerAssetId": "0",
|
|
2335
|
+
"makerAmountFilled": "13600000",
|
|
2336
|
+
"takerAmountFilled": "8024000",
|
|
2337
|
+
"fee": "0",
|
|
2338
|
+
"timestamp": "2025-12-20T16:00:00Z",
|
|
2339
|
+
"txHash": "0xf4dd79c7..."
|
|
2340
|
+
}
|
|
2341
|
+
],
|
|
2342
|
+
"summary": {
|
|
2343
|
+
"totalFills": 10,
|
|
2344
|
+
"totalVolume": "135000000"
|
|
2345
|
+
}
|
|
2346
|
+
}
|
|
2347
|
+
```
|
|
2348
|
+
|
|
2349
|
+
---
|
|
2350
|
+
|
|
1837
2351
|
## 10. 配置与认证
|
|
1838
2352
|
|
|
1839
2353
|
### 10.1 环境变量
|
|
@@ -2022,34 +2536,42 @@ echo '{"method":"tools/call","params":{"name":"get_trader_positions","arguments"
|
|
|
2022
2536
|
| # | Tool | 类别 | 优先级 | 需要私钥 |
|
|
2023
2537
|
|---|------|------|--------|----------|
|
|
2024
2538
|
| 1 | `get_trader_positions` | Trader | P0 | ❌ |
|
|
2025
|
-
| 2 | `
|
|
2026
|
-
| 3 | `
|
|
2027
|
-
| 4 | `
|
|
2028
|
-
| 5 | `
|
|
2029
|
-
| 6 | `
|
|
2030
|
-
| 7 | `
|
|
2031
|
-
|
|
|
2032
|
-
|
|
|
2033
|
-
|
|
|
2034
|
-
|
|
|
2035
|
-
|
|
|
2036
|
-
|
|
|
2037
|
-
|
|
|
2038
|
-
|
|
|
2039
|
-
|
|
|
2040
|
-
|
|
|
2041
|
-
|
|
|
2042
|
-
|
|
|
2043
|
-
|
|
|
2044
|
-
|
|
|
2045
|
-
|
|
|
2046
|
-
|
|
|
2047
|
-
|
|
|
2048
|
-
|
|
|
2049
|
-
|
|
|
2050
|
-
|
|
|
2051
|
-
|
|
2052
|
-
|
|
2539
|
+
| 2 | `get_trader_closed_positions` | Trader | P1 | ❌ |
|
|
2540
|
+
| 3 | `get_trader_trades` | Trader | P1 | ❌ |
|
|
2541
|
+
| 4 | `get_trader_activity` | Trader | P1 | ❌ |
|
|
2542
|
+
| 5 | `get_trader_profile` | Trader | P1 | ❌ |
|
|
2543
|
+
| 6 | `get_leaderboard` | Trader | P1 | ❌ |
|
|
2544
|
+
| 7 | `get_account_value` | Trader | P1 | ❌ |
|
|
2545
|
+
| 7 | `get_market` | Market | P0 | ❌ |
|
|
2546
|
+
| 8 | `search_markets` | Market | P1 | ❌ |
|
|
2547
|
+
| 9 | `get_trending_markets` | Market | P3 | ❌ |
|
|
2548
|
+
| 10 | `get_market_trades` | Market | P1 | ❌ |
|
|
2549
|
+
| 11 | `get_orderbook` | Order | P0 | ❌ |
|
|
2550
|
+
| 12 | `get_best_prices` | Order | P1 | ❌ |
|
|
2551
|
+
| 13 | `estimate_execution` | Order | P3 | ❌ |
|
|
2552
|
+
| 14 | `place_limit_order` | Trade | P2 | ✅ |
|
|
2553
|
+
| 15 | `place_market_order` | Trade | P2 | ✅ |
|
|
2554
|
+
| 16 | `cancel_order` | Trade | P2 | ✅ |
|
|
2555
|
+
| 17 | `get_my_orders` | Trade | P2 | ✅ |
|
|
2556
|
+
| 18 | `get_supported_deposit_assets` | Wallet | P1 | ❌ |
|
|
2557
|
+
| 19 | `get_deposit_addresses` | Wallet | P1 | ✅ |
|
|
2558
|
+
| 20 | `deposit_usdc` | Wallet | P2 | ✅ |
|
|
2559
|
+
| 21 | `check_allowances` | Wallet | P1 | ✅ |
|
|
2560
|
+
| 22 | `approve_trading` | Wallet | P2 | ✅ |
|
|
2561
|
+
| 23 | `swap` | Wallet | P2 | ✅ |
|
|
2562
|
+
| 24 | `swap_and_deposit` | Wallet | P2 | ✅ |
|
|
2563
|
+
| 25 | `get_token_balances` | Wallet | P1 | ✅ |
|
|
2564
|
+
| 26 | `get_wallet_balances` | Wallet | P1 | ❌ |
|
|
2565
|
+
| 27 | `get_swap_quote` | Wallet | P1 | ❌ |
|
|
2566
|
+
| 28 | `get_available_pools` | Wallet | P1 | ❌ |
|
|
2567
|
+
| 29 | `get_usage_guide` | Guide | P0 | ❌ |
|
|
2568
|
+
| 30 | `get_market_open_interest` | On-Chain | P1 | ❌ |
|
|
2569
|
+
| 31 | `get_global_open_interest` | On-Chain | P1 | ❌ |
|
|
2570
|
+
| 32 | `get_condition_status` | On-Chain | P1 | ❌ |
|
|
2571
|
+
| 33 | `get_onchain_activity` | On-Chain | P1 | ❌ |
|
|
2572
|
+
| 34 | `get_order_fills` | On-Chain | P1 | ❌ |
|
|
2573
|
+
|
|
2574
|
+
**Total: 34 Tools**
|
|
2053
2575
|
|
|
2054
2576
|
---
|
|
2055
2577
|
|