@catalyst-team/poly-mcp 0.1.0 → 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.
Files changed (114) hide show
  1. package/README.md +384 -221
  2. package/dist/errors.d.ts +11 -0
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +13 -2
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +98 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/sdk-instance.d.ts +27 -0
  10. package/dist/sdk-instance.d.ts.map +1 -0
  11. package/dist/sdk-instance.js +64 -0
  12. package/dist/sdk-instance.js.map +1 -0
  13. package/dist/server.d.ts +13 -1
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +29 -27
  16. package/dist/server.js.map +1 -1
  17. package/dist/tools/guide.d.ts.map +1 -1
  18. package/dist/tools/guide.js +159 -1
  19. package/dist/tools/guide.js.map +1 -1
  20. package/dist/tools/index.d.ts +8 -4
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +20 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/insider-detection.d.ts +175 -0
  25. package/dist/tools/insider-detection.d.ts.map +1 -0
  26. package/dist/tools/insider-detection.js +654 -0
  27. package/dist/tools/insider-detection.js.map +1 -0
  28. package/dist/tools/insider-signals.d.ts +56 -0
  29. package/dist/tools/insider-signals.d.ts.map +1 -0
  30. package/dist/tools/insider-signals.js +170 -0
  31. package/dist/tools/insider-signals.js.map +1 -0
  32. package/dist/tools/market.d.ts +25 -1
  33. package/dist/tools/market.d.ts.map +1 -1
  34. package/dist/tools/market.js +504 -12
  35. package/dist/tools/market.js.map +1 -1
  36. package/dist/tools/onchain.d.ts +240 -0
  37. package/dist/tools/onchain.d.ts.map +1 -0
  38. package/dist/tools/onchain.js +610 -0
  39. package/dist/tools/onchain.js.map +1 -0
  40. package/dist/tools/order.d.ts.map +1 -1
  41. package/dist/tools/order.js +13 -6
  42. package/dist/tools/order.js.map +1 -1
  43. package/dist/tools/trade.d.ts +15 -0
  44. package/dist/tools/trade.d.ts.map +1 -1
  45. package/dist/tools/trade.js +216 -39
  46. package/dist/tools/trade.js.map +1 -1
  47. package/dist/tools/trader.d.ts +4 -1
  48. package/dist/tools/trader.d.ts.map +1 -1
  49. package/dist/tools/trader.js +316 -4
  50. package/dist/tools/trader.js.map +1 -1
  51. package/dist/tools/wallet-classification.d.ts +166 -0
  52. package/dist/tools/wallet-classification.d.ts.map +1 -0
  53. package/dist/tools/wallet-classification.js +455 -0
  54. package/dist/tools/wallet-classification.js.map +1 -0
  55. package/dist/tools/wallet.d.ts +56 -7
  56. package/dist/tools/wallet.d.ts.map +1 -1
  57. package/dist/tools/wallet.js +141 -20
  58. package/dist/tools/wallet.js.map +1 -1
  59. package/dist/types.d.ts +269 -10
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/wallet-manager.d.ts +67 -0
  62. package/dist/wallet-manager.d.ts.map +1 -0
  63. package/dist/wallet-manager.js +180 -0
  64. package/dist/wallet-manager.js.map +1 -0
  65. package/docs/01-mcp.md +554 -32
  66. package/docs/02-wallet-deep-research.md +344 -0
  67. package/docs/e2e/01-trader-tools.md +159 -0
  68. package/docs/e2e/02-market-tools.md +180 -0
  69. package/docs/e2e/03-order-tools.md +166 -0
  70. package/docs/e2e/04-wallet-tools.md +224 -0
  71. package/docs/e2e/05-trading-tools.md +327 -0
  72. package/docs/e2e/06-integration-scenarios.md +481 -0
  73. package/docs/e2e/coordinator.md +376 -0
  74. package/docs/e2e-02/00-gap-analysis.md +211 -0
  75. package/docs/e2e-02/01-test-scenarios.md +530 -0
  76. package/docs/e2e-02/02-implementation-plan.md +190 -0
  77. package/docs/e2e-02/README.md +102 -0
  78. package/docs/reports/simonbanza-strategy-analysis-2025-12-25.md +420 -0
  79. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
  80. package/docs/reports/smart-money-trading-strategies-2025-12-25.md +440 -0
  81. package/docs/reports/weekly/01-v2.5.md +352 -0
  82. package/docs/reports/weekly/01.md +402 -0
  83. package/docs/reports/weekly/02-deep.md +558 -0
  84. package/docs/reports/weekly/02.md +505 -0
  85. package/docs/reports/weekly/03.md +437 -0
  86. package/docs/reports/weekly/04.md +418 -0
  87. package/docs/reports/weekly/05.md +485 -0
  88. package/docs/reports/weekly/06.md +436 -0
  89. package/docs/reports/weekly/07.md +381 -0
  90. package/docs/reports/weekly/08.md +502 -0
  91. package/docs/reports/weekly/09.md +441 -0
  92. package/docs/reports/weekly/10.md +511 -0
  93. package/docs/reports/weekly/README.md +188 -0
  94. package/docs/reports/weekly/prompt-v2.5.md +1019 -0
  95. package/docs/reports/weekly/prompt-v3.md +432 -0
  96. package/docs/reports/weekly/prompt.md +841 -0
  97. package/package.json +3 -2
  98. package/src/errors.ts +13 -2
  99. package/src/index.ts +286 -1
  100. package/src/sdk-instance.ts +78 -0
  101. package/src/server.ts +30 -28
  102. package/src/tools/guide.ts +160 -1
  103. package/src/tools/index.ts +65 -0
  104. package/src/tools/insider-detection.ts +899 -0
  105. package/src/tools/insider-signals.ts +213 -0
  106. package/src/tools/market.ts +569 -12
  107. package/src/tools/onchain.ts +738 -0
  108. package/src/tools/order.ts +25 -12
  109. package/src/tools/trade.ts +265 -53
  110. package/src/tools/trader.ts +350 -4
  111. package/src/tools/wallet-classification.ts +587 -0
  112. package/src/tools/wallet.ts +172 -23
  113. package/src/types.ts +294 -11
  114. package/src/wallet-manager.ts +209 -0
package/README.md CHANGED
@@ -1,49 +1,155 @@
1
1
  # @catalyst-team/poly-mcp
2
2
 
3
- A Model Context Protocol (MCP) server that exposes Polymarket functionality to AI agents.
3
+ AI Agent 接入 Polymarket 预测市场的 MCP Server。
4
4
 
5
- ## Installation
5
+ ## 🎯 你可以做什么
6
6
 
7
- ### From npm (after publishing)
7
+ ### 1. 聪明钱分析 (Smart Money Analysis)
8
+ ```
9
+ get_leaderboard → 获取 Top 10 聪明钱地址
10
+
11
+ get_trader_positions(address) → 查看每个钱包持仓
12
+
13
+ get_trader_profile(address) → 分析盈利模式
14
+ ```
15
+ **示例问题**: "Top 10 聪明钱主要在哪些市场有持仓?"
8
16
 
9
- ```bash
10
- npm install -g @catalyst-team/poly-mcp
11
- # or
12
- pnpm add -g @catalyst-team/poly-mcp
17
+ ### 2. 内幕检测 (Insider Detection) 🆕
13
18
  ```
19
+ get_political_markets → 获取政治市场列表
20
+
21
+ scan_insider_wallets(conditionId) → 扫描市场内的可疑钱包
22
+
23
+ analyze_wallet_insider(address) → 深度分析钱包内幕特征
24
+
25
+ classify_wallet(address, tags) → 对钱包打标签分类
26
+ ```
27
+ **示例问题**: "委内瑞拉相关市场有没有内幕钱包?帮我分析下"
14
28
 
15
- ### From source
29
+ ### 3. 交易者深度分析 (Trader Deep Dive)
30
+ ```
31
+ get_trader_positions(address) → 持仓分析
32
+
33
+ 按 eventSlug 分组 → 识别对冲 vs 单边策略
34
+
35
+ get_trader_trades(address) → 入场时机分析
36
+
37
+ 判断策略类型: 对冲型/方向型/套利型/做市型
38
+ ```
39
+ **示例问题**: "这个交易者是什么策略类型?他的盈利主要来自哪里?"
16
40
 
17
- ```bash
18
- # Build the packages
19
- pnpm -F @catalyst-team/poly-sdk build
20
- pnpm -F @catalyst-team/poly-mcp build
41
+ ### 4. 跟单交易 (Copy Trading)
42
+ ```
43
+ get_leaderboard 选择跟单目标
44
+
45
+ get_trader_trades(address) → 监控新交易
46
+
47
+ get_market + get_orderbook → 评估当前价格
48
+
49
+ place_limit_order → 跟进交易
21
50
  ```
51
+ **示例问题**: "排名第一的交易者最近买了什么?我应该跟吗?"
22
52
 
23
- ## Publishing
53
+ ### 5. 钱包追踪 (Wallet Tracking)
54
+ ```
55
+ get_trader_trades(address) → 查看今日交易
56
+
57
+ get_trader_positions(address) → 当前持仓
58
+
59
+ get_market(conditionId) → 深入分析相关市场
60
+ ```
61
+ **示例问题**: "这个钱包今天有哪些交易?表现如何?"
24
62
 
25
- ```bash
26
- # 1. Build both packages
27
- pnpm -F @catalyst-team/poly-sdk build
28
- pnpm -F @catalyst-team/poly-mcp build
63
+ ### 6. 热门市场发现 (Market Discovery)
64
+ ```
65
+ search_markets(query, sortBy: 'volume') → 热门市场
66
+
67
+ get_orderbook(conditionId) → 分析流动性
68
+
69
+ get_leaderboard → 查看哪些聪明钱参与
70
+ ```
71
+ **示例问题**: "最近24小时哪些市场交易量最大?聪明钱在买入什么?"
72
+
73
+ ### 7. 套利检测 (Arbitrage Detection) 🆕
74
+ ```
75
+ detect_arbitrage(conditionId) → 检测套利机会
76
+
77
+ get_realtime_spread(conditionId) → 获取实时价差
78
+
79
+ ctf_split / ctf_merge → 执行套利操作
80
+ ```
81
+ **示例问题**: "这个市场有套利机会吗?"
82
+
83
+ ### 8. 短期加密市场 (Crypto Short-Term) 🆕
84
+ ```
85
+ scan_crypto_short_term_markets(coin: 'BTC') → 扫描即将结束的市场
86
+
87
+ get_klines(conditionId, interval: '5s') → 获取高频K线
88
+
89
+ detect_market_signals(conditionId) → 检测市场信号
90
+ ```
91
+ **示例问题**: "找出即将在15分钟内结束的BTC市场"
92
+
93
+ ### 9. 充值与授权 (Deposit & Auth)
94
+ ```
95
+ check_allowances() → 检查授权状态
96
+
97
+ approve_trading() → 一键授权所有合约
98
+
99
+ swap("MATIC", "USDC", "100") → 换币
100
+
101
+ deposit_usdc(100) → 充值到交易账户
102
+ ```
103
+ **示例问题**: "我的钱包准备好交易了吗?帮我检查授权状态"
29
104
 
30
- # 2. Publish poly-sdk first (poly-mcp depends on it)
31
- pnpm -F @catalyst-team/poly-sdk publish --access public
105
+ ### 10. 执行交易 (Trading)
106
+ ```
107
+ get_market(identifier) → 获取市场信息
108
+
109
+ get_orderbook(conditionId) → 查看盘口深度
110
+
111
+ estimate_execution(conditionId, "Yes", "BUY", 100) → 预估成交
112
+
113
+ place_limit_order(conditionId, "Yes", "BUY", 0.55, 100) → 下单
114
+ ```
115
+ **示例问题**: "帮我在这个市场买入 100 USDC 的 Yes"
116
+
117
+ ### 11. 链上操作 (CTF Operations) 🆕
118
+ ```
119
+ check_ctf_ready("100") → 检查是否准备好
120
+
121
+ ctf_split(conditionId, "100") → 拆分 USDC 为 YES+NO
122
+
123
+ ctf_merge(conditionId, "100") → 合并 YES+NO 为 USDC
124
+
125
+ ctf_redeem(conditionId) → 赎回获胜的 tokens
126
+ ```
127
+ **示例问题**: "帮我把这个市场的 YES+NO tokens 合并回 USDC"
128
+
129
+ ---
130
+
131
+ ## 📦 安装
32
132
 
33
- # 3. Publish poly-mcp
34
- pnpm -F @catalyst-team/poly-mcp publish --access public
133
+ ### npm 安装 (推荐)
134
+ ```bash
135
+ npm install -g @catalyst-team/poly-mcp
35
136
  ```
36
137
 
37
- **Note**: Publishing requires npm 2FA authentication.
138
+ ### 从源码构建
139
+ ```bash
140
+ pnpm -F @catalyst-team/poly-sdk build
141
+ pnpm -F @catalyst-team/poly-mcp build
142
+ ```
38
143
 
39
- ## MCP Configuration
144
+ ---
40
145
 
41
- ### After npm publish (recommended)
146
+ ## ⚙️ MCP 配置
42
147
 
43
- Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
148
+ ### Claude Desktop 配置
44
149
 
45
- #### Read-only mode (market data, orderbook, trader analysis)
150
+ 文件位置: `~/Library/Application Support/Claude/claude_desktop_config.json`
46
151
 
152
+ #### 只读模式 (市场数据、钱包分析)
47
153
  ```json
48
154
  {
49
155
  "mcpServers": {
@@ -55,8 +161,7 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
55
161
  }
56
162
  ```
57
163
 
58
- #### Trading mode (with private key)
59
-
164
+ #### 交易模式 - 单钱包
60
165
  ```json
61
166
  {
62
167
  "mcpServers": {
@@ -71,45 +176,28 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
71
176
  }
72
177
  ```
73
178
 
74
- ### Local development
75
-
76
- #### Read-only mode
77
-
78
- ```json
79
- {
80
- "mcpServers": {
81
- "polymarket": {
82
- "command": "node",
83
- "args": ["/path/to/PerdictionRouter/packages/poly-mcp/dist/server.js"]
84
- }
85
- }
86
- }
87
- ```
88
-
89
- #### Trading mode
90
-
179
+ #### 交易模式 - 多钱包 (推荐)
91
180
  ```json
92
181
  {
93
182
  "mcpServers": {
94
183
  "polymarket": {
95
- "command": "node",
96
- "args": ["/path/to/PerdictionRouter/packages/poly-mcp/dist/server.js"],
184
+ "command": "npx",
185
+ "args": ["@catalyst-team/poly-mcp"],
97
186
  "env": {
98
- "POLY_PRIVATE_KEY": "your-wallet-private-key"
187
+ "POLY_WALLETS": "{\"main\":\"0x...\",\"trading\":\"0x...\",\"arb\":\"0x...\"}"
99
188
  }
100
189
  }
101
190
  }
102
191
  }
103
192
  ```
104
193
 
105
- #### Development mode (with hot reload)
106
-
194
+ #### 本地开发
107
195
  ```json
108
196
  {
109
197
  "mcpServers": {
110
198
  "polymarket": {
111
- "command": "npx",
112
- "args": ["tsx", "/path/to/PerdictionRouter/packages/poly-mcp/src/server.ts"],
199
+ "command": "node",
200
+ "args": ["/path/to/poly-mcp/dist/server.js"],
113
201
  "env": {
114
202
  "POLY_PRIVATE_KEY": "your-wallet-private-key"
115
203
  }
@@ -118,199 +206,274 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
118
206
  }
119
207
  ```
120
208
 
121
- ## Environment Variables
122
-
123
- | Variable | Description | Required |
124
- |----------|-------------|----------|
125
- | `POLY_PRIVATE_KEY` | Wallet private key (with or without 0x prefix) | For trading |
126
- | `POLY_CHAIN_ID` | Chain ID (137=mainnet, 80002=testnet) | Optional (default: 137) |
127
-
128
- **Note**: API credentials are automatically derived from the private key using Polymarket's `createOrDeriveApiKey()`. You only need to provide the wallet private key to enable trading.
129
-
130
- ## Available Tools
131
-
132
- ### Trader Tools (public data)
133
-
134
- | Tool | Description |
135
- |------|-------------|
136
- | `get_trader_positions` | Get current positions for a wallet address |
137
- | `get_trader_trades` | Get trade history for a wallet |
138
- | `get_trader_profile` | Get trader profile with PnL and stats |
139
- | `get_leaderboard` | Get top traders from leaderboard |
140
-
141
- ### Market Tools (public data)
142
-
143
- | Tool | Description |
144
- |------|-------------|
145
- | `get_market` | Get market details by slug or conditionId |
146
- | `search_markets` | Search markets by keyword |
147
- | `get_trending_markets` | Get trending markets by volume/liquidity |
148
- | `get_market_trades` | Get recent trades for a market |
149
-
150
- ### Order Tools (public data)
151
-
152
- | Tool | Description |
153
- |------|-------------|
154
- | `get_orderbook` | Get orderbook depth for a market outcome |
155
- | `get_best_prices` | Get best bid/ask prices for both outcomes |
156
- | `estimate_execution` | Estimate execution price and slippage |
157
-
158
- ### Trade Tools (requires private key)
159
-
160
- | Tool | Description |
161
- |------|-------------|
162
- | `place_limit_order` | Place a limit order |
163
- | `place_market_order` | Place a market order |
164
- | `cancel_order` | Cancel an existing order |
165
- | `get_my_orders` | Get your open orders |
166
-
167
- ### Wallet Tools
168
-
169
- | Tool | Description | Requires Key |
170
- |------|-------------|--------------|
171
- | `get_supported_deposit_assets` | Get all supported assets and chains for deposits | No |
172
- | `get_deposit_addresses` | Get deposit addresses (EVM, Solana, Bitcoin) | Yes |
173
- | `deposit_usdc` | Deposit USDC to Polymarket | Yes |
174
- | `check_allowances` | Check ERC20 and ERC1155 allowances for trading | Yes |
175
- | `approve_trading` | Set up all required approvals for trading | Yes |
176
- | `swap` | Swap tokens on Polygon via QuickSwap V3 | Yes |
177
- | `swap_and_deposit` | Swap to USDC and deposit in one operation | Yes |
178
- | `get_token_balances` | Get your wallet token balances | Yes |
179
- | `get_wallet_balances` | Get any wallet's token balances | No |
180
- | `get_swap_quote` | Get a swap quote (check route availability) | No |
181
- | `get_available_pools` | Get available QuickSwap V3 pools | No |
182
-
183
- ## Tool Examples
184
-
185
- ### Get Market
186
-
187
- ```json
188
- {
189
- "name": "get_market",
190
- "arguments": {
191
- "identifier": "will-bitcoin-hit-100k-in-2024"
192
- }
193
- }
209
+ ---
210
+
211
+ ## 🛠️ 完整工具列表
212
+
213
+ ### Guide Tool
214
+ | 工具 | 描述 |
215
+ |------|------|
216
+ | `get_usage_guide` | 🚀 获取使用指南,AI Agent 应首先调用此工具 |
217
+
218
+ ### Trader Tools (公开数据)
219
+ | 工具 | 描述 |
220
+ |------|------|
221
+ | `get_trader_positions` | 获取钱包当前持仓和 PnL,支持分页 |
222
+ | `get_trader_trades` | 获取钱包交易历史 |
223
+ | `get_trader_activity` | 获取完整活动历史 (TRADE/SPLIT/MERGE/REDEEM 等),支持 fetchAll |
224
+ | `get_trader_profile` | 获取交易者综合分析 |
225
+ | `get_trader_closed_positions` | 获取已平仓位和实现盈亏 |
226
+ | `get_leaderboard` | 获取 PnL 排行榜,支持时间周期过滤 |
227
+ | `get_account_value` | 获取账户总价值 |
228
+
229
+ ### Market Tools (公开数据)
230
+ | 工具 | 描述 |
231
+ |------|------|
232
+ | `get_market` | 通过 slug 或 conditionId 获取市场详情 |
233
+ | `search_markets` | 关键词搜索市场 |
234
+ | `get_trending_markets` | 获取热门市场 |
235
+ | `get_market_trades` | 获取市场最近成交 |
236
+ | `get_klines` | 获取 K 线数据,支持秒级间隔 (1s/5s/15s) |
237
+ | `get_price_history` | 获取价格历史 |
238
+ | `detect_arbitrage` | 检测套利机会 (long/short arb) |
239
+ | `detect_market_signals` | 检测市场信号 (量能/深度/鲸鱼/动量) |
240
+ | `get_realtime_spread` | 获取实时价差和套利利润 |
241
+ | `scan_crypto_short_term_markets` | 扫描短期加密市场 (5m/15m Up/Down) |
242
+
243
+ ### Order Tools (公开数据)
244
+ | 工具 | 描述 |
245
+ |------|------|
246
+ | `get_orderbook` | 获取盘口深度 |
247
+ | `get_best_prices` | 获取最优买卖价 |
248
+ | `estimate_execution` | 预估成交价格和滑点 |
249
+
250
+ ### Trade Tools (需要私钥)
251
+ | 工具 | 描述 |
252
+ |------|------|
253
+ | `place_limit_order` | 下限价单 (GTC/GTD) |
254
+ | `place_market_order` | 下市价单 |
255
+ | `cancel_order` | 取消订单 |
256
+ | `cancel_all_orders` | 取消所有订单 |
257
+ | `get_my_orders` | 查看挂单 |
258
+ | `get_my_trades` | 查看成交历史 |
259
+
260
+ ### Rewards Tools (需要私钥)
261
+ | 工具 | 描述 |
262
+ |------|------|
263
+ | `get_earnings` | 获取做市收益 |
264
+ | `get_current_rewards` | 获取当前奖励市场 |
265
+ | `check_order_scoring` | 检查订单是否在赚取奖励 |
266
+
267
+ ### Wallet Management Tools (多钱包管理)
268
+ | 工具 | 描述 | 需要私钥 |
269
+ |------|------|:--------:|
270
+ | `list_wallets` | 列出所有配置的钱包 | ✅ |
271
+ | `get_active_wallet` | 获取当前活跃钱包 | ✅ |
272
+ | `set_active_wallet` | 切换活跃钱包 | ✅ |
273
+
274
+ ### Wallet Tools (充值/换币)
275
+ | 工具 | 描述 | 需要私钥 |
276
+ |------|------|:--------:|
277
+ | `get_supported_deposit_assets` | 支持的充值资产和链 | ❌ |
278
+ | `get_deposit_addresses` | 获取充值地址 | ✅ |
279
+ | `deposit_usdc` | 充值 USDC | ✅ |
280
+ | `check_allowances` | 检查授权状态 | ✅ |
281
+ | `approve_trading` | 一键授权所有合约 | ✅ |
282
+ | `swap` | QuickSwap V3 换币 | ✅ |
283
+ | `swap_and_deposit` | 换币并充值 | ✅ |
284
+ | `get_token_balances` | 获取自己钱包余额 | ✅ |
285
+ | `get_wallet_balances` | 获取任意钱包余额 | ❌ |
286
+ | `get_swap_quote` | 获取换币报价 | ❌ |
287
+ | `get_available_pools` | 获取可用交易池 | ❌ |
288
+
289
+ ### CTF/Onchain Tools (链上操作) 🆕
290
+ | 工具 | 描述 | 需要私钥 |
291
+ |------|------|:--------:|
292
+ | `ctf_split` | 拆分 USDC 为 YES + NO tokens | ✅ |
293
+ | `ctf_merge` | 合并 YES + NO tokens 为 USDC | ✅ |
294
+ | `ctf_redeem` | 赎回获胜的 tokens | ✅ |
295
+ | `get_position_balance` | 获取持仓 token 余额 | ✅ |
296
+ | `get_market_resolution` | 检查市场是否已结算 | ✅ |
297
+ | `check_ctf_ready` | 检查钱包是否准备好 CTF 交易 | ✅ |
298
+ | `estimate_gas` | 估算 gas 费用 | ✅ |
299
+ | `get_gas_price` | 获取当前 gas 价格 | ✅ |
300
+
301
+ ### Insider Detection Tools (内幕检测) 🆕
302
+ | 工具 | 描述 |
303
+ |------|------|
304
+ | `analyze_wallet_insider` | 分析钱包内幕特征,返回 InsiderScore (0-100) |
305
+ | `scan_insider_wallets` | 扫描市场交易,检测可疑钱包 |
306
+ | `get_insider_candidates` | 获取已检测的内幕候选人列表 |
307
+ | `get_political_markets` | 获取政治市场及内幕活动摘要 |
308
+
309
+ ### Insider Signals Tools (内幕信号) 🆕
310
+ | 工具 | 描述 |
311
+ |------|------|
312
+ | `get_insider_signals` | 获取内幕检测信号 (新钱包/大单/集群) |
313
+ | `get_insider_signal_count` | 获取未读信号数量 |
314
+ | `mark_insider_signal_read` | 标记信号为已读 |
315
+ | `mark_all_insider_signals_read` | 标记所有信号为已读 |
316
+
317
+ ### Wallet Classification Tools (钱包分类) 🆕
318
+ | 工具 | 描述 |
319
+ |------|------|
320
+ | `get_tag_definitions` | 获取所有标签定义 (22 个预定义标签,7 个分类) |
321
+ | `add_tag_definition` | 添加新标签定义 |
322
+ | `get_wallet_classification` | 获取钱包分类 |
323
+ | `classify_wallet` | 对钱包打标签分类 |
324
+ | `get_wallets_by_tag` | 按标签获取钱包列表 |
325
+ | `remove_wallet_tag` | 移除钱包标签 |
326
+
327
+ ---
328
+
329
+ ## 🕵️ 内幕检测系统
330
+
331
+ ### InsiderScore 评分体系
332
+
333
+ 基于委内瑞拉/格陵兰案例研究,分析钱包的内幕交易特征:
334
+
335
+ | 特征 | 权重 | 说明 |
336
+ |------|------|------|
337
+ | 新钱包 (<7天) | 15 | 为特定事件新建的钱包 |
338
+ | 无历史 (<3笔) | 10 | 几乎没有交易历史 |
339
+ | 单边押注 | 20 | 只买 YES 或只买 NO |
340
+ | 大额押注 | 15 | 单笔交易超过 $1000 |
341
+ | 时机敏感 | 10 | 在事件前 24h 内交易 |
342
+ | 存款窗口短 (<24h) | 25 | 充值后立即交易 |
343
+ | 价格不敏感 | 10 | 不在乎买入价格 |
344
+ | 两阶段模式 | 15 | 先失败后成功的交易模式 |
345
+
346
+ **加分项**:
347
+ - 高回报倍数 (>=5x): +10
348
+ - 政治市场: +5
349
+ - 突发事件: +10
350
+ - 跨链资金关联: +15
351
+ - 身份暴露 (ENS/SNS): +20
352
+
353
+ ### 风险等级
354
+
355
+ | 等级 | 分数 | 颜色 | 说明 |
356
+ |------|------|------|------|
357
+ | critical | ≥80 | 🔴 红色 | 高度可疑,需要重点关注 |
358
+ | high | ≥60 | 🟡 黄色 | 中度可疑,建议跟踪 |
359
+ | medium | ≥40 | 🟠 橙色 | 轻度可疑,可能是投机者 |
360
+ | low | <40 | 🟢 绿色 | 正常交易者 |
361
+
362
+ ### 标签分类系统
363
+
364
+ 7 个分类,22+ 个预定义标签:
365
+
366
+ | 分类 | 标签示例 |
367
+ |------|---------|
368
+ | trading-style | high-frequency, swing-trader, scalper |
369
+ | market-preference | crypto-focused, politics-focused, sports-focused |
370
+ | scale | whale (>$100k), shark ($10k-$100k), fish (<$10k) |
371
+ | performance | consistently-profitable, break-even, losing |
372
+ | activity | very-active, active, dormant |
373
+ | risk-profile | high-conviction, diversified, risk-averse |
374
+ | special | insider-suspected, copy-worthy, market-maker |
375
+
376
+ ---
377
+
378
+ ## 💡 Pro Tips
379
+
380
+ 1. **AI Agent 首先调用 `get_usage_guide`** - 获取完整的使用场景指南
381
+ 2. **用 `get_leaderboard` 获取聪明钱地址** - 这是分析的起点
382
+ 3. **用 `scan_insider_wallets` 检测可疑钱包** - 政治市场特别有用
383
+ 4. **用 `get_klines` 的秒级间隔** - 分析 15 分钟加密市场
384
+ 5. **用 `detect_arbitrage` 发现套利机会** - 结合 `ctf_split/merge` 执行
385
+ 6. **分析持仓时看 `avgPrice` vs `curPrice`** - 判断盈亏状态
386
+ 7. **查看 `volume24hr`** - 判断市场活跃度
387
+
388
+ ---
389
+
390
+ ## 🔐 多钱包配置
391
+
392
+ 支持 3 种方式配置钱包私钥:
393
+
394
+ ### 方式 1: JSON 格式 (推荐)
395
+ ```bash
396
+ export POLY_WALLETS='{"main":"0x123...","trading":"0x456...","arb":"0x789..."}'
194
397
  ```
398
+ - 每个钱包有自己的名称
399
+ - 方便管理多个策略钱包
195
400
 
196
- Response:
197
- ```json
198
- {
199
- "market": {
200
- "conditionId": "0x...",
201
- "question": "Will Bitcoin hit $100k in 2024?",
202
- "slug": "will-bitcoin-hit-100k-in-2024"
203
- },
204
- "prices": {
205
- "yes": 0.65,
206
- "no": 0.35
207
- },
208
- "stats": {
209
- "volume": 1500000,
210
- "liquidity": 250000
211
- }
212
- }
401
+ ### 方式 2: 单钱包 (向后兼容)
402
+ ```bash
403
+ export POLY_PRIVATE_KEY="0x..."
213
404
  ```
405
+ - 钱包名称默认为 `default`
214
406
 
215
- ### Get Trader Positions
216
-
217
- ```json
218
- {
219
- "name": "get_trader_positions",
220
- "arguments": {
221
- "address": "0x1234..."
222
- }
223
- }
407
+ ### 方式 3: 索引格式
408
+ ```bash
409
+ export POLY_PRIVATE_KEY_1="0x..."
410
+ export POLY_WALLET_NAME_1="main"
411
+ export POLY_PRIVATE_KEY_2="0x..."
412
+ export POLY_WALLET_NAME_2="trading"
224
413
  ```
414
+ - 支持最多 10 个钱包
225
415
 
226
- ### Get Swap Quote
227
-
228
- ```json
229
- {
230
- "name": "get_swap_quote",
231
- "arguments": {
232
- "tokenIn": "MATIC",
233
- "tokenOut": "USDC",
234
- "amount": "100"
235
- }
236
- }
416
+ ### 多钱包使用示例
237
417
  ```
418
+ # 列出所有钱包
419
+ list_wallets
420
+ → { wallets: [{name: "main", address: "0x...", isActive: true}, ...] }
238
421
 
239
- Response:
240
- ```json
241
- {
242
- "tokenIn": "MATIC",
243
- "tokenOut": "USDC",
244
- "amountIn": "100",
245
- "amountOut": "55.23",
246
- "route": "MATIC → WETH → USDC (multi-hop)",
247
- "priceImpact": "0.15%"
248
- }
422
+ # 切换活跃钱包
423
+ set_active_wallet(wallet: "trading")
424
+ { success: true, activeWallet: {name: "trading", ...} }
425
+
426
+ # 后续交易将使用 trading 钱包
427
+ place_limit_order(...)
249
428
  ```
250
429
 
251
- ## Programmatic Usage
430
+ ---
252
431
 
253
- ```typescript
254
- import { PolymarketSDK } from '@catalyst-team/poly-sdk';
255
- import { createMcpHandler } from '@catalyst-team/poly-mcp';
432
+ ## ⚠️ 重要:USDC.e vs Native USDC
256
433
 
257
- const sdk = new PolymarketSDK();
258
- const handler = createMcpHandler(sdk);
434
+ Polymarket CTF **只接受 USDC.e** (Bridged USDC)
259
435
 
260
- // Call any tool
261
- const result = await handler('get_market', {
262
- identifier: 'btc-100k',
263
- });
436
+ | Token | 地址 | CTF 兼容 |
437
+ |-------|------|:--------:|
438
+ | USDC.e (Bridged) | `0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174` | ✅ |
439
+ | Native USDC | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | ❌ |
264
440
 
265
- console.log(result);
266
- ```
441
+ **常见错误**: 钱包显示有 USDC,但 CTF 操作失败
442
+ **原因**: 你有的是 Native USDC,不是 USDC.e
443
+ **解决**: 使用 `deposit_usdc` 通过 Bridge 自动转换
267
444
 
268
- Or register with an MCP server instance:
445
+ ---
269
446
 
270
- ```typescript
271
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
272
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
273
- import { PolymarketSDK } from '@catalyst-team/poly-sdk';
274
- import { registerMcpTools } from '@catalyst-team/poly-mcp';
447
+ ## 📂 数据存储
275
448
 
276
- const server = new Server(
277
- { name: 'my-server', version: '1.0.0' },
278
- { capabilities: { tools: {} } }
279
- );
449
+ MCP Server 会在本地存储一些数据:
280
450
 
281
- const sdk = new PolymarketSDK();
282
- registerMcpTools(server, sdk);
451
+ | 文件 | 位置 | 用途 |
452
+ |------|------|------|
453
+ | 内幕候选人 | `~/.polymarket/insider-candidates.json` | 存储已检测的可疑钱包 |
454
+ | 钱包分类 | `~/.polymarket/wallet-classifications.json` | 存储钱包标签和分类 |
455
+ | 标签定义 | `~/.polymarket/tag-definitions.json` | 存储自定义标签 |
456
+ | 内幕信号 | `./data/signals/` | 存储内幕检测信号 |
283
457
 
284
- const transport = new StdioServerTransport();
285
- await server.connect(transport);
286
- ```
458
+ ---
287
459
 
288
- ## Architecture
460
+ ## 📦 发布
289
461
 
462
+ ```bash
463
+ # 按顺序发布 (有依赖关系)
464
+ pnpm -F @catalyst-team/cache publish
465
+ pnpm -F @catalyst-team/poly-sdk publish
466
+ pnpm -F @catalyst-team/poly-mcp publish
290
467
  ```
291
- packages/poly-mcp/
292
- ├── src/
293
- │ ├── index.ts # Main exports and handler factory
294
- │ ├── server.ts # Standalone MCP server (CLI entry point)
295
- │ ├── types.ts # TypeScript type definitions
296
- │ ├── errors.ts # Error handling utilities
297
- │ └── tools/
298
- │ ├── index.ts # Tool exports
299
- │ ├── trader.ts # Trader analysis tools
300
- │ ├── market.ts # Market discovery tools
301
- │ ├── order.ts # Orderbook analysis tools
302
- │ ├── trade.ts # Trading execution tools
303
- │ ├── wallet.ts # Deposit and authorization tools
304
- │ └── guide.ts # Usage guide tool
305
- ├── docs/
306
- │ └── 01-mcp.md # Detailed MCP design document
307
- ├── package.json
308
- └── README.md
309
- ```
310
468
 
311
- ## Related Packages
469
+ ---
470
+
471
+ ## 🔗 相关资源
312
472
 
313
- - `@catalyst-team/poly-sdk` - Core SDK for Polymarket APIs (required dependency)
473
+ - **poly-sdk**: `@catalyst-team/poly-sdk` - Polymarket SDK
474
+ - **smart-money**: `@catalyst-team/smart-money` - 内幕检测算法
475
+ - **文档**: `docs/01-mcp.md` - 详细设计文档
476
+ - **Polymarket**: https://polymarket.com
314
477
 
315
478
  ## License
316
479