asrai-mcp 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -66,7 +66,7 @@ Each API call costs **$0.005 USDC** from your wallet on Base mainnet. Make sure
66
66
  | `macro` | S&P 500 & Nasdaq signals — global market context | $0.01 |
67
67
  | `sentiment` | CBBI, CMC sentiment, AI insights, channel news, Galaxy Score, social dominance | $0.03 |
68
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 |
69
+ | `trade_signals` | Trade setups: trending movers, bounces, SAR & MACD entries, RSI, Galaxy Score, today's indicator signals | $0.04 |
70
70
  | `technical_analysis(symbol, timeframe)` | Signals, ALSAT, SuperALSAT, PSAR, MACD-DEMA, AlphaTrend, TD, SMC, S/R, Elliott Wave, Ichimoku | $0.06 |
71
71
  | `forecast(symbol)` | AI 3-7 day price prediction | $0.005 |
72
72
  | `screener(type)` | Find coins by criteria (ichimoku-trend, rsi, vwap, volume, bounce-dip...) | $0.005 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asrai-mcp",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Asrai crypto analysis MCP server — pay-per-use via x402 on Base. Zero install: just npx.",
5
5
  "keywords": [
6
6
  "mcp",
package/skill/SKILL.md CHANGED
@@ -69,7 +69,7 @@ Requires `ASRAI_PRIVATE_KEY` set in `~/.env` or environment. Payment is signed a
69
69
  | `macro` | S&P 500 & Nasdaq signals — global market context | $0.01 |
70
70
  | `sentiment` | CBBI, CMC sentiment, AI insights, channel news, Galaxy Score, social dominance | $0.03 |
71
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 |
72
+ | `trade_signals` | Trade setups: trending movers, bounces, SAR & MACD entries, RSI, Galaxy Score, today's indicator signals | $0.04 (8 calls) |
73
73
  | `technical_analysis(symbol, timeframe)` | Signals, ALSAT, SuperALSAT, PSAR, MACD-DEMA, AlphaTrend, TD, SMC, S/R, Elliott Wave, Ichimoku | $0.06 |
74
74
  | `forecast(symbol)` | AI 3-7 day price prediction | $0.005 |
75
75
  | `screener(type)` | Find coins by criteria (ichimoku-trend, rsi, vwap, volume, bounce-dip...) | $0.005 |
@@ -85,14 +85,17 @@ Requires `ASRAI_PRIVATE_KEY` set in `~/.env` or environment. Payment is signed a
85
85
  | `indicator_guide(name)` | Reference guide for Asrai-specific indicators | FREE |
86
86
 
87
87
 
88
- ## Output rules
88
+ 🎨 Output Style — Human-Friendly Format
89
89
 
90
- - Write like an experienced trader explaining to a friend — conversational, confident, direct
91
- - Think like both a trader AND a long-term investor. Default to investor mode. Switch to trader mode only when user asks for entries
92
- - Keep responses 200–400 words. Short lines, breathing room between sections
93
- - Never list raw indicator values synthesize into plain language verdict
94
- - End with 1 clear action bias: accumulate / wait / avoid — and why
95
- - Never mention tool names, API calls, or payment details in responses
90
+ Non-negotiables
91
+
92
+ Use emoji section headers (🌡️ 🚀 📊 😬 ✅)
93
+ Keep it easy to scan: short lines + whitespace
94
+ Do not mention tools/endpoints in user-facing output
95
+ • Avoid low-liquidity noise: prefer repeated appearance across lists, meaningful volume, and/or clear catalyst
96
+ • Write like an experienced trader explaining to a friend — conversational, confident, direct
97
+ • Think like both a trader AND a long-term investor. Default to investor mode. Switch to trader mode only when user asks for entries
98
+ • End with 1 clear action bias: accumulate / wait / avoid — and why
96
99
 
97
100
  ## Cost
98
101
 
@@ -49,8 +49,10 @@ x402 automatic — $0.005 USDC per endpoint on Base mainnet ($0.01 for `/ai`)
49
49
  - `GET /api/galaxyscore/`
50
50
  - `GET /api/socialdominance/`
51
51
  - `GET /api/late-unlocked-coins/`
52
- - `GET /api/rsi/` — RSI heatmap
53
- - `GET /api/ao/` — Awesome Oscillator screener
52
+ - `GET /api/rsi/`
53
+ - `GET /api/ao/`
54
+ - `GET /api/rsi-heatmap/`
55
+ - `GET /api/indicator/today` — today's triggered ALSAT & indicator signals (TD9, AlphaTrend, etc.) — today's triggered ALSAT & indicator signals (TD9, AlphaTrend, etc.)
54
56
 
55
57
  ### Coin Info
56
58
  - `GET /api/coinstats/<symbol>` — market cap, volume, supply
@@ -366,6 +366,34 @@ const GUIDE = {
366
366
  "BULLISH + confidence > 70% + ALSAT BUY = high-conviction long setup.",
367
367
  },
368
368
 
369
+ Indicator_Today: {
370
+ what_it_is:
371
+ "Today's triggered BUY/SELL signals from Asrai's signal tracking system. " +
372
+ "Two categories: alsat_signals (ALSAT cycle top/bottom signals) and indicator_signals " +
373
+ "(individual indicator signals: TD9, AlphaTrend, and others). " +
374
+ "Accessed via screener('indicator-today'). Shows only signals that fired today.",
375
+ key_fields: {
376
+ "alsat_signals[].symbol": "Coin that triggered an ALSAT BUY or SELL today",
377
+ "alsat_signals[].signal": "BUY | SELL",
378
+ "alsat_signals[].interval": "Timeframe the signal fired on (e.g. 1D, 4H)",
379
+ "alsat_signals[].price": "Price at the time the signal fired",
380
+ "alsat_signals[].time": "Exact timestamp the signal was recorded",
381
+ "indicator_signals[].symbol": "Coin that triggered an indicator signal today",
382
+ "indicator_signals[].indicator": "Which indicator fired: TD9 | AlphaTrend | etc.",
383
+ "indicator_signals[].signal": "BUY | SELL",
384
+ "indicator_signals[].interval": "Timeframe (1D, 4H, 1W)",
385
+ "indicator_signals[].price": "Price when signal fired",
386
+ "indicator_signals[].time": "Exact timestamp",
387
+ },
388
+ how_to_interpret:
389
+ "alsat_signals BUY = ALSAT cycle bottom detected today — strong reversal candidate. " +
390
+ "alsat_signals SELL = ALSAT cycle top detected today — consider taking profit or shorting. " +
391
+ "indicator_signals TD9 BUY = Tom DeMark exhaustion bottom today — high-probability bounce. " +
392
+ "indicator_signals AlphaTrend BUY = trend just flipped bullish on this timeframe. " +
393
+ "Multiple signals on the same coin (ALSAT + TD9 + AlphaTrend) = highest conviction setup. " +
394
+ "Empty alsat_signals or indicator_signals = no signals fired today on that table — normal.",
395
+ },
396
+
369
397
  Market_Indicators: {
370
398
  what_it_is: "Reference for indicators returned by market_overview, sentiment, and screener tools.",
371
399
  indicators: {
@@ -431,6 +459,7 @@ const SUMMARY = {
431
459
  RSI: "Momentum 0-100. <30=oversold, >70=overbought. In ALSAT response as rsi + market_condition",
432
460
  CBBI: "Bitcoin cycle position 0-100. <10=bottom, >90=top. From sentiment() tool",
433
461
  Forecast: "AI 3-7 day prediction. Fields: direction, confidence (>70%=reliable), primary_target",
462
+ Indicator_Today: "Today's triggered signals. alsat_signals = ALSAT BUY/SELL fired today. indicator_signals = TD9/AlphaTrend/etc fired today. Access via screener('indicator-today')",
434
463
  Market_Indicators: "trending, gainers_losers, rsi_screener, sar_coins, macd_coins, emacross, techrating, vwap, galaxyscore, bounce_dip, cmcai",
435
464
  Support_Resistance: "Key levels. Fields: fib_0_618, ema.ema200, latest_high_pivot, trendline_breaks.current_support",
436
465
  };
@@ -52,6 +52,9 @@ export const TRADE_SIGNALS_ENDPOINTS = [
52
52
  "/api/bounce-dip/",
53
53
  "/api/sar-coins/",
54
54
  "/api/macd-coins/",
55
+ "/api/galaxyscore/",
56
+ "/api/rsi/",
57
+ "/api/indicator/today",
55
58
  ];
56
59
 
57
60
  // ── Dynamic endpoint builders (return arrays) ─────────────────────────────────
@@ -110,7 +113,7 @@ export const SCREENER_TYPES = [
110
113
  "ichimoku-trend", "sar-coins", "macd-coins", "emacross",
111
114
  "techrating", "vwap", "volume", "highvolumelowcap",
112
115
  "bounce-dip", "galaxyscore", "socialdominance", "late-unlocked-coins",
113
- "ath", "rsi", "rsi-heatmap", "ao",
116
+ "ath", "rsi", "rsi-heatmap", "ao", "indicator-today",
114
117
  ];
115
118
 
116
119
  // ── Symbol normalisation ──────────────────────────────────────────────────────
@@ -186,7 +189,10 @@ export function createHandlers(_get, _gather) {
186
189
  if (!SCREENER_TYPES.includes(screener_type)) {
187
190
  return JSON.stringify({ error: `Invalid screener. Choose from: ${SCREENER_TYPES.join(", ")}` });
188
191
  }
189
- return JSON.stringify(await _get(`/api/${screener_type}/`), null, 2);
192
+ const path = screener_type === "indicator-today"
193
+ ? "/api/indicator/today"
194
+ : `/api/${screener_type}/`;
195
+ return JSON.stringify(await _get(path), null, 2);
190
196
  },
191
197
 
192
198
  async smart_money(symbol, timeframe = "1D") {
@@ -89,9 +89,11 @@ export const TOOLS = [
89
89
  {
90
90
  name: "trade_signals",
91
91
  description:
92
- "Get actionable trade setups: trending coins, top movers, bounce/dip candidates, SAR and MACD signals. " +
92
+ "Get actionable trade setups: trending coins, top movers, bounce/dip candidates, SAR, MACD, RSI signals, " +
93
+ "Galaxy Score, and today's triggered indicator & ALSAT signals from the database. " +
93
94
  "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'.",
95
+ "Use for: 'coins with good entry points', 'trade opportunity', 'coins with buy signals', 'trade setups', " +
96
+ "'which coins look good today', 'what should I trade'.",
95
97
  inputSchema: { type: "object", properties: {}, required: [] },
96
98
  },
97
99
  {
@@ -122,7 +124,9 @@ export const TOOLS = [
122
124
  description:
123
125
  "Run a market screener to find coins matching specific criteria. " +
124
126
  "Types: ichimoku-trend, sar-coins, macd-coins, emacross, techrating, vwap, volume, " +
125
- "highvolumelowcap, bounce-dip, galaxyscore, socialdominance, late-unlocked-coins, ath, rsi, rsi-heatmap, ao.",
127
+ "highvolumelowcap, bounce-dip, galaxyscore, socialdominance, late-unlocked-coins, ath, rsi, rsi-heatmap, ao. " +
128
+ "Use indicator-today ONLY when user asks what signals fired/triggered today in the database " +
129
+ "(e.g. 'today\\'s ALSAT signals', 'which indicators triggered today', 'today\\'s TD9/AlphaTrend signals').",
126
130
  inputSchema: {
127
131
  type: "object",
128
132
  properties: {
@@ -132,7 +136,7 @@ export const TOOLS = [
132
136
  "ichimoku-trend", "sar-coins", "macd-coins", "emacross",
133
137
  "techrating", "vwap", "volume", "highvolumelowcap",
134
138
  "bounce-dip", "galaxyscore", "socialdominance", "late-unlocked-coins",
135
- "ath", "rsi", "rsi-heatmap", "ao",
139
+ "ath", "rsi", "rsi-heatmap", "ao", "indicator-today",
136
140
  ],
137
141
  description: "Type of screener to run",
138
142
  },
@@ -252,7 +256,7 @@ export const TOOLS = [
252
256
  description:
253
257
  "Reference guide for Asrai-specific indicators. FREE — no payment required. " +
254
258
  "WHEN TO CALL: only when you encounter an unfamiliar indicator name in tool output " +
255
- "(e.g. ALSAT, SuperALSAT, AlphaTrend, PMax, MavilimW). " +
259
+ "(e.g. ALSAT, SuperALSAT, AlphaTrend, PMax, MavilimW, Indicator_Today). " +
256
260
  "Standard indicators (RSI, MACD, Ichimoku, Elliott Wave, BB) are well-known — skip them. " +
257
261
  "indicator='' or 'list' → compact 1-line summary of all. " +
258
262
  "indicator='ALSAT' → full detail. indicator='all' → everything (avoid unless needed).",