mcpField
M
moonpay-price-alerts

moonpay-price-alerts

github.com/moonpayその他11254 回インストール23 週間前に更新
リポジトリ

moonpay-price-alerts について

moonpay-price-alertsは、定期的にトークン価格を確認し、しきい値に達するとデスクトップ通知を送るスキルです。単発と繰り返しのアラートに対応し、取引は実行しません。

主な機能

  1. 01トークン価格の定期確認
  2. 02単発および繰り返しアラート
  3. 03macOSとLinuxのデスクトップ通知
  4. 04アラートの一覧・削除・ログ確認

活用シーン

  1. 01価格が目標を下回った際の通知
  2. 02価格がしきい値を上回る間の継続通知
  3. 03設定済みアラートの確認や削除

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/moonpay/skills --skill moonpay-price-alerts

インストール後、Claude Code で/moonpay-price-alertsを入力して読み込まれたか確認します。

詳細

価格アラート

目的

トークン価格を監視し、価格がしきい値を超えたときにデスクトップ通知を受け取ります。価格チェックには mp token search を使用し、アラートには OS の通知(osascript/notify-send)を使用します。監視のみのため、資金にリスクはありません。

前提条件

  • mp バイナリが PATH 上にあること:which mp
  • jq がインストールされていること:which jq
  • macOS:osascript(標準搭載)、または Linux:notify-send(sudo apt install libnotify-bin)

1 回限りのアラート

「SOL が $80 を下回ったら知らせて」— 5 分ごとにチェックし、1 回だけ通知してから自動的に無効になります。

スクリプト:~/.config/moonpay/scripts/alert-sol-below-80.sh
#!/bin/bash
set -euo pipefail

MP="$(which mp)"
LOG="$HOME/.config/moonpay/logs/alerts.log"
mkdir -p "$(dirname "$LOG")"
log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] $*" >> "$LOG"; }

# --- Config ---
TOKEN="So11111111111111111111111111111111111111111"
CHAIN="solana"
SYMBOL="SOL"
TARGET=80
DIRECTION="below"  # "above" or "below"
SCRIPT_NAME="alert-sol-below-80"

# --- Check price ---
PRICE=$("$MP" --json token search --query "$SYMBOL" --chain "$CHAIN" | jq -r '.items[0].marketData.price')

if [ -z "$PRICE" ] || [ "$PRICE" = "null" ]; then
  log "ALERT $SCRIPT_NAME: price fetch failed, skipping"
  exit 0
fi

# --- Compare ---
TRIGGERED=false
if [ "$DIRECTION" = "below" ] && (( $(echo "$PRICE < $TARGET" | bc -l) )); then
  TRIGGERED=true
elif [ "$DIRECTION" = "above" ] && (( $(echo "$PRICE > $TARGET" | bc -l) )); then
  TRIGGERED=true
fi

if [ "$TRIGGERED" = true ]; then
  MSG="$SYMBOL is $DIRECTION \$$TARGET — currently \$$PRICE"
  log "ALERT $SCRIPT_NAME: $MSG"

  # Desktop notification
  if [[ "$OSTYPE" == "darwin"* ]]; then
    osascript -e "display notification \"$MSG\" with title \"MoonPay Alert\" sound name \"Glass\""
  else
    notify-send "MoonPay Alert" "$MSG"
  fi

  # Self-disable (one-shot)
  if [[ "$OSTYPE" == "darwin"* ]]; then
    launchctl unload "$HOME/Library/LaunchAgents/com.moonpay.${SCRIPT_NAME}.plist" 2>/dev/null || true
  else
    crontab -l | grep -v "$SCRIPT_NAME" | crontab -
  fi
  log "ALERT $SCRIPT_NAME: disabled after trigger"
else
  log "ALERT $SCRIPT_NAME: $SYMBOL at \$$PRICE — not triggered ($DIRECTION $TARGET)"
fi
スケジュール

5 分ごとにチェックします。

# cron (Linux)
*/5 * * * * ~/.config/moonpay/scripts/alert-sol-below-80.sh # moonpay:alert-sol-below-80

# launchd (macOS) — use StartInterval of 300 seconds in the plist

~/Library/LaunchAgents/com.moonpay.alert-sol-below-80.plist に Launchd plist を作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.moonpay.alert-sol-below-80</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/Users/USERNAME/.config/moonpay/scripts/alert-sol-below-80.sh</string>
  </array>
  <key>StartInterval</key>
  <integer>300</integer>
  <key>StandardErrorPath</key>
  <string>/Users/USERNAME/.config/moonpay/logs/alert-sol-below-80.err</string>
</dict>
</plist>

読み込み:launchctl load ~/Library/LaunchAgents/com.moonpay.alert-sol-below-80.plist

重要: USERNAME を実際のユーザー名に置き換えてください。plist ファイル内ではチルダは展開されません。

繰り返しアラート

「ETH が $2000 を上回っている間、1 時間ごとに知らせて」— チェックのたびに通知し続け、自動的には無効になりません。

上記と同じスクリプトを使いますが、自動無効化のブロックを削除してください。条件を満たすたびに通知され、ユーザーが手動で削除するまで続きます。

アラートの管理

有効なアラートの一覧表示
# macOS
launchctl list | grep moonpay

# Linux
crontab -l | grep moonpay
アラートの削除
# macOS
launchctl unload ~/Library/LaunchAgents/com.moonpay.alert-sol-below-80.plist
rm ~/Library/LaunchAgents/com.moonpay.alert-sol-below-80.plist

# Linux
crontab -l | grep -v "alert-sol-below-80" | crontab -
アラート履歴の表示
tail -50 ~/.config/moonpay/logs/alerts.log

ヒント

  • mp token search による価格チェックは無料です。ガス代はかかりません。
  • 5 分間隔が適切です。1 分未満には設定しないでください。
  • mp token search --query "SOL" --chain solana を使ってトークンアドレスを確認できます。
  • アラートは ~/.config/moonpay/logs/alerts.log に記録されます。実行中かどうかは、このファイルを確認してください。
  • 通知とキーチェーンへのアクセスを機能させるには、マシンにログインしている必要があります。
  • 小数の比較には bc -l を使用します。利用できない場合は、awk "BEGIN {exit !($PRICE < $TARGET)}" を使ってください。
  • このスキルは監視のみです。自動売買については、moonpay-trading-automation をご覧ください。

関連スキル

  • moonpay-trading-automation — 自動売買(DCA、指値注文、損切り)
  • moonpay-discover-tokens — トークンを調査し、現在の価格を確認
  • moonpay-check-wallet — アラート設定前にポートフォリオを確認

コメント