asrai-mcp 0.7.0 → 1.0.1
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 +25 -16
- package/package.json +1 -1
- package/skill/SKILL.md +26 -15
- package/src/tool-endpoints.js +74 -7
- package/src/tools-definitions.js +84 -15
package/README.md
CHANGED
|
@@ -55,22 +55,31 @@ Each API call costs **$0.005 USDC** from your wallet on Base mainnet. Make sure
|
|
|
55
55
|
|
|
56
56
|
| Tool | What it does | Cost |
|
|
57
57
|
|---|---|---|
|
|
58
|
-
| `market_overview` |
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
58
|
+
| `market_overview` | Full brief: trending, gainers/losers, RSI, screeners, sentiment, cashflow — use for complete reports only | $0.095 |
|
|
59
|
+
| `trending` | Currently trending coins | $0.005 |
|
|
60
|
+
| `gainers_losers` | Top gainers and losers | $0.005 |
|
|
61
|
+
| `top_bottom` | RSI extremes, top/bottom signals, bounce/dip candidates | $0.015 |
|
|
62
|
+
| `volume_spikes` | Coins with unusually high volume | $0.005 |
|
|
63
|
+
| `high_volume_low_cap` | Low market cap coins with high volume | $0.005 |
|
|
64
|
+
| `ath_tracker` | Coins near or at all-time high | $0.005 |
|
|
65
|
+
| `dominance` | BTC & altcoin dominance signals | $0.01 |
|
|
66
|
+
| `macro` | S&P 500 & Nasdaq signals — global market context | $0.01 |
|
|
67
|
+
| `sentiment` | CBBI, CMC sentiment, AI insights, channel news, Galaxy Score, social dominance | $0.03 |
|
|
68
|
+
| `late_unlocked_coins` | Post-vesting coins with low remaining selling pressure | $0.005 |
|
|
69
|
+
| `trade_signals` | Trade setups: trending movers, bounces, SAR & MACD entries | $0.025 |
|
|
70
|
+
| `technical_analysis(symbol, timeframe)` | Signals, ALSAT, SuperALSAT, PSAR, MACD-DEMA, AlphaTrend, TD, SMC, S/R, Elliott Wave, Ichimoku | $0.06 |
|
|
71
|
+
| `forecast(symbol)` | AI 3-7 day price prediction | $0.005 |
|
|
72
|
+
| `screener(type)` | Find coins by criteria (ichimoku-trend, rsi, vwap, volume, bounce-dip...) | $0.005 |
|
|
73
|
+
| `smart_money(symbol, timeframe)` | Order blocks, fair value gaps, support/resistance | $0.01 |
|
|
74
|
+
| `elliott_wave(symbol, timeframe)` | Elliott Wave analysis | $0.005 |
|
|
75
|
+
| `ichimoku(symbol, timeframe)` | Ichimoku cloud analysis | $0.005 |
|
|
76
|
+
| `cashflow(mode, symbol)` | Capital flow data | $0.005 |
|
|
77
|
+
| `coin_info(symbol)` | Stats, price, tags, CMC AI + auto DEX data | $0.025–$0.03 |
|
|
78
|
+
| `dexscreener(contract)` | DEX trading data | $0.005 |
|
|
79
|
+
| `chain_tokens(chain, max_mcap)` | Low-cap tokens on a specific chain | $0.005 |
|
|
80
|
+
| `portfolio` | Abu's curated model portfolio — investment reference | $0.005 |
|
|
81
|
+
| `ask_ai(question)` | AI analyst freeform answer | $0.01 |
|
|
82
|
+
| `indicator_guide(name)` | Reference guide for Asrai-specific indicators | FREE |
|
|
74
83
|
|
|
75
84
|
## Spend limit
|
|
76
85
|
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -55,24 +55,35 @@ Requires `ASRAI_PRIVATE_KEY` set in `~/.env` or environment. Payment is signed a
|
|
|
55
55
|
|
|
56
56
|
## MCP tools
|
|
57
57
|
|
|
58
|
+
|
|
58
59
|
| Tool | What it does | Cost |
|
|
59
60
|
|---|---|---|
|
|
60
|
-
| `market_overview` |
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
61
|
+
| `market_overview` | Full brief: trending, gainers/losers, RSI, screeners, sentiment, cashflow — use for complete reports only | $0.095 |
|
|
62
|
+
| `trending` | Currently trending coins | $0.005 |
|
|
63
|
+
| `gainers_losers` | Top gainers and losers | $0.005 |
|
|
64
|
+
| `top_bottom` | RSI extremes, top/bottom signals, bounce/dip candidates | $0.015 |
|
|
65
|
+
| `volume_spikes` | Coins with unusually high volume | $0.005 |
|
|
66
|
+
| `high_volume_low_cap` | Low market cap coins with high volume | $0.005 |
|
|
67
|
+
| `ath_tracker` | Coins near or at all-time high | $0.005 |
|
|
68
|
+
| `dominance` | BTC & altcoin dominance signals | $0.01 |
|
|
69
|
+
| `macro` | S&P 500 & Nasdaq signals — global market context | $0.01 |
|
|
70
|
+
| `sentiment` | CBBI, CMC sentiment, AI insights, channel news, Galaxy Score, social dominance | $0.03 |
|
|
71
|
+
| `late_unlocked_coins` | Post-vesting coins with low remaining selling pressure | $0.005 |
|
|
72
|
+
| `trade_signals` | Trade setups: trending movers, bounces, SAR & MACD entries | $0.025 |
|
|
73
|
+
| `technical_analysis(symbol, timeframe)` | Signals, ALSAT, SuperALSAT, PSAR, MACD-DEMA, AlphaTrend, TD, SMC, S/R, Elliott Wave, Ichimoku | $0.06 |
|
|
74
|
+
| `forecast(symbol)` | AI 3-7 day price prediction | $0.005 |
|
|
75
|
+
| `screener(type)` | Find coins by criteria (ichimoku-trend, rsi, vwap, volume, bounce-dip...) | $0.005 |
|
|
76
|
+
| `smart_money(symbol, timeframe)` | Order blocks, fair value gaps, support/resistance | $0.01 |
|
|
66
77
|
| `elliott_wave(symbol, timeframe)` | Elliott Wave analysis | $0.005 |
|
|
67
|
-
| `ichimoku(symbol, timeframe)` | Ichimoku cloud | $0.005 |
|
|
68
|
-
| `cashflow(mode, symbol)` | Capital flow | $0.005 |
|
|
69
|
-
| `coin_info(symbol)` | Stats, price, CMC AI
|
|
70
|
-
| `dexscreener(contract)` | DEX data | $0.005 |
|
|
71
|
-
| `chain_tokens(chain, max_mcap)` | Low-cap tokens on chain | $0.005 |
|
|
72
|
-
| `portfolio` | Abu's curated model portfolio | $0.005 |
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
|
|
78
|
+
| `ichimoku(symbol, timeframe)` | Ichimoku cloud analysis | $0.005 |
|
|
79
|
+
| `cashflow(mode, symbol)` | Capital flow data | $0.005 |
|
|
80
|
+
| `coin_info(symbol)` | Stats, price, tags, CMC AI + auto DEX data | $0.025–$0.03 |
|
|
81
|
+
| `dexscreener(contract)` | DEX trading data | $0.005 |
|
|
82
|
+
| `chain_tokens(chain, max_mcap)` | Low-cap tokens on a specific chain | $0.005 |
|
|
83
|
+
| `portfolio` | Abu's curated model portfolio — investment reference | $0.005 |
|
|
84
|
+
| `ask_ai(question)` | AI analyst freeform answer | $0.01 |
|
|
85
|
+
| `indicator_guide(name)` | Reference guide for Asrai-specific indicators | FREE |
|
|
86
|
+
|
|
76
87
|
|
|
77
88
|
## Output rules
|
|
78
89
|
|
package/src/tool-endpoints.js
CHANGED
|
@@ -35,6 +35,23 @@ export const SENTIMENT_ENDPOINTS = [
|
|
|
35
35
|
"/api/cbbi/",
|
|
36
36
|
"/api/cmc-sentiment/",
|
|
37
37
|
"/api/cmcai/",
|
|
38
|
+
"/api/channel-summary/",
|
|
39
|
+
"/api/galaxyscore/",
|
|
40
|
+
"/api/socialdominance/",
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
export const TOP_BOTTOM_ENDPOINTS = [
|
|
44
|
+
"/api/rsi/",
|
|
45
|
+
"/api/top-bottom/",
|
|
46
|
+
"/api/bounce-dip/",
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
export const TRADE_SIGNALS_ENDPOINTS = [
|
|
50
|
+
"/api/trending/",
|
|
51
|
+
"/api/gainers-losers/",
|
|
52
|
+
"/api/bounce-dip/",
|
|
53
|
+
"/api/sar-coins/",
|
|
54
|
+
"/api/macd-coins/",
|
|
38
55
|
];
|
|
39
56
|
|
|
40
57
|
// ── Dynamic endpoint builders (return arrays) ─────────────────────────────────
|
|
@@ -73,6 +90,20 @@ export function coinInfoEndpoints(s) {
|
|
|
73
90
|
];
|
|
74
91
|
}
|
|
75
92
|
|
|
93
|
+
export function dominanceEndpoints() {
|
|
94
|
+
return [
|
|
95
|
+
"/api/signal/btc.d/1D",
|
|
96
|
+
"/api/signal/others.d/1D",
|
|
97
|
+
];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function macroEndpoints() {
|
|
101
|
+
return [
|
|
102
|
+
"/api/signal/spx/1D",
|
|
103
|
+
"/api/signal/ndq/1D",
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
|
|
76
107
|
// ── Screener valid types ──────────────────────────────────────────────────────
|
|
77
108
|
|
|
78
109
|
export const SCREENER_TYPES = [
|
|
@@ -98,15 +129,55 @@ export function createHandlers(_get, _gather) {
|
|
|
98
129
|
return JSON.stringify(await _gather(...MARKET_OVERVIEW_ENDPOINTS), null, 2);
|
|
99
130
|
},
|
|
100
131
|
|
|
101
|
-
async
|
|
102
|
-
|
|
103
|
-
|
|
132
|
+
async trending() {
|
|
133
|
+
return JSON.stringify(await _get("/api/trending/"), null, 2);
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
async gainers_losers() {
|
|
137
|
+
return JSON.stringify(await _get("/api/gainers-losers/"), null, 2);
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
async top_bottom() {
|
|
141
|
+
return JSON.stringify(await _gather(...TOP_BOTTOM_ENDPOINTS), null, 2);
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
async volume_spikes() {
|
|
145
|
+
return JSON.stringify(await _get("/api/volume/"), null, 2);
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
async high_volume_low_cap() {
|
|
149
|
+
return JSON.stringify(await _get("/api/highvolumelowcap/"), null, 2);
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
async ath_tracker() {
|
|
153
|
+
return JSON.stringify(await _get("/api/ath/"), null, 2);
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
async dominance() {
|
|
157
|
+
return JSON.stringify(await _gather(...dominanceEndpoints()), null, 2);
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
async macro() {
|
|
161
|
+
return JSON.stringify(await _gather(...macroEndpoints()), null, 2);
|
|
104
162
|
},
|
|
105
163
|
|
|
106
164
|
async sentiment() {
|
|
107
165
|
return JSON.stringify(await _gather(...SENTIMENT_ENDPOINTS), null, 2);
|
|
108
166
|
},
|
|
109
167
|
|
|
168
|
+
async late_unlocked_coins() {
|
|
169
|
+
return JSON.stringify(await _get("/api/late-unlocked-coins/"), null, 2);
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
async trade_signals() {
|
|
173
|
+
return JSON.stringify(await _gather(...TRADE_SIGNALS_ENDPOINTS), null, 2);
|
|
174
|
+
},
|
|
175
|
+
|
|
176
|
+
async technical_analysis(symbol, timeframe = "1D") {
|
|
177
|
+
const s = sym(symbol);
|
|
178
|
+
return JSON.stringify(await _gather(...technicalAnalysisEndpoints(s, timeframe)), null, 2);
|
|
179
|
+
},
|
|
180
|
+
|
|
110
181
|
async forecast(symbol) {
|
|
111
182
|
return JSON.stringify(await _get(`/api/forecasting/${sym(symbol)}usdt`), null, 2);
|
|
112
183
|
},
|
|
@@ -166,9 +237,5 @@ export function createHandlers(_get, _gather) {
|
|
|
166
237
|
const path = symbol ? `/api/portfolio/${symbol.toLowerCase()}` : "/api/portfolio/";
|
|
167
238
|
return JSON.stringify(await _get(path), null, 2);
|
|
168
239
|
},
|
|
169
|
-
|
|
170
|
-
async channel_summary() {
|
|
171
|
-
return JSON.stringify(await _get("/api/channel-summary/"), null, 2);
|
|
172
|
-
},
|
|
173
240
|
};
|
|
174
241
|
}
|
package/src/tools-definitions.js
CHANGED
|
@@ -9,14 +9,95 @@ export const TOOLS = [
|
|
|
9
9
|
{
|
|
10
10
|
name: "market_overview",
|
|
11
11
|
description:
|
|
12
|
-
"
|
|
13
|
-
"Use
|
|
12
|
+
"Full broad market brief: trending, gainers/losers, RSI, cashflow, sentiment, screeners, volume. " +
|
|
13
|
+
"Use ONLY when a complete market overview is requested (e.g. 'give me a full market brief', 'morning report'). " +
|
|
14
|
+
"For single-topic questions use the specific granular tools instead.",
|
|
15
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "trending",
|
|
19
|
+
description:
|
|
20
|
+
"Get currently trending coins. " +
|
|
21
|
+
"Use for: 'what's trending', 'what's hot right now', 'which coins are trending'.",
|
|
22
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "gainers_losers",
|
|
26
|
+
description:
|
|
27
|
+
"Get top gainers and losers. " +
|
|
28
|
+
"Use for: 'biggest movers today', 'top gainers', 'what pumped/dumped'.",
|
|
29
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "top_bottom",
|
|
33
|
+
description:
|
|
34
|
+
"Get RSI extremes, top/bottom signals, and bounce/dip candidates. " +
|
|
35
|
+
"Use for: 'overbought/oversold coins', 'dip opportunities', 'bounce candidates', 'RSI extremes'.",
|
|
36
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "volume_spikes",
|
|
40
|
+
description:
|
|
41
|
+
"Get coins with unusually high volume. " +
|
|
42
|
+
"Use for: 'high volume coins', 'volume anomalies', 'volume spikes today'.",
|
|
43
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "high_volume_low_cap",
|
|
47
|
+
description:
|
|
48
|
+
"Get low market cap coins with high volume (hidden gems). " +
|
|
49
|
+
"Use for: 'low cap movers', 'hidden gems', 'small caps with volume'.",
|
|
50
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "ath_tracker",
|
|
54
|
+
description:
|
|
55
|
+
"Get coins near or at their all-time high. " +
|
|
56
|
+
"Use for: 'coins near ATH', 'all-time high coins', 'breaking ATH'.",
|
|
57
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "dominance",
|
|
61
|
+
description:
|
|
62
|
+
"Get BTC dominance and altcoin dominance signals. " +
|
|
63
|
+
"Use for: 'BTC dominance', 'altseason?', 'is alt season coming', 'dominance trend'.",
|
|
64
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "macro",
|
|
68
|
+
description:
|
|
69
|
+
"Get S&P 500 and Nasdaq signals to understand global market context. " +
|
|
70
|
+
"Use for: 'global market mood', 'S&P/Nasdaq today', 'risk-on/risk-off', 'macro situation', 'traditional markets'.",
|
|
71
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "sentiment",
|
|
75
|
+
description:
|
|
76
|
+
"Get full market sentiment: CBBI cycle index, CMC sentiment, CMC AI market insights, " +
|
|
77
|
+
"channel news summaries, Galaxy Score, and social dominance. " +
|
|
78
|
+
"Use for: 'market mood', 'fear/greed', 'cycle position', 'social buzz', 'what are people saying', " +
|
|
79
|
+
"'crypto news', 'social reactions', 'community sentiment'.",
|
|
80
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "late_unlocked_coins",
|
|
84
|
+
description:
|
|
85
|
+
"Get coins with recent vesting unlocks that have low remaining selling pressure. " +
|
|
86
|
+
"Use for: 'less selling pressure', 'post-unlock coins', 'vesting unlocks', 'which coins finished unlocking'.",
|
|
87
|
+
inputSchema: { type: "object", properties: {}, required: [] },
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: "trade_signals",
|
|
91
|
+
description:
|
|
92
|
+
"Get actionable trade setups: trending coins, top movers, bounce/dip candidates, SAR and MACD signals. " +
|
|
93
|
+
"Combines momentum context with technical entry signals to find good position-opening opportunities. " +
|
|
94
|
+
"Use for: 'coins with good entry points', 'trade opportunity', 'coins with buy signals', 'trade setups'.",
|
|
14
95
|
inputSchema: { type: "object", properties: {}, required: [] },
|
|
15
96
|
},
|
|
16
97
|
{
|
|
17
98
|
name: "technical_analysis",
|
|
18
99
|
description:
|
|
19
|
-
"Get full technical analysis for a specific coin: signal, ALSAT, SuperALSAT, PSAR, MACD-DEMA, AlphaTrend
|
|
100
|
+
"Get full technical analysis for a specific coin: signal, ALSAT (top and bottom), SuperALSAT (approved top and bottom), PSAR, MACD-DEMA, AlphaTrend (trend indicator), Elliot Wave , TD(trend reversal tom demark), SMC(Smart money), SR(support and resistance), Ichimoku " +
|
|
20
101
|
"Use when asked about TA, buy/sell signals, or indicators for a coin.",
|
|
21
102
|
inputSchema: {
|
|
22
103
|
type: "object",
|
|
@@ -27,13 +108,6 @@ export const TOOLS = [
|
|
|
27
108
|
required: ["symbol"],
|
|
28
109
|
},
|
|
29
110
|
},
|
|
30
|
-
{
|
|
31
|
-
name: "sentiment",
|
|
32
|
-
description:
|
|
33
|
-
"Get market sentiment: CBBI (crypto bull/bear index), CMC sentiment, CMC AI insights. " +
|
|
34
|
-
"Use for questions about market mood, fear/greed, or cycle position.",
|
|
35
|
-
inputSchema: { type: "object", properties: {}, required: [] },
|
|
36
|
-
},
|
|
37
111
|
{
|
|
38
112
|
name: "forecast",
|
|
39
113
|
description: "Get AI-powered 3-7 day price forecast for a coin: direction, confidence, price targets.",
|
|
@@ -173,11 +247,6 @@ export const TOOLS = [
|
|
|
173
247
|
required: [],
|
|
174
248
|
},
|
|
175
249
|
},
|
|
176
|
-
{
|
|
177
|
-
name: "channel_summary",
|
|
178
|
-
description: "Get a summary of latest crypto narratives and discussions from monitored channels.",
|
|
179
|
-
inputSchema: { type: "object", properties: {}, required: [] },
|
|
180
|
-
},
|
|
181
250
|
{
|
|
182
251
|
name: "indicator_guide",
|
|
183
252
|
description:
|