sunnyspoints

Live flight deals plus points-vs-cash math: transfer partners, valuations, per-leg verdicts.

使うべきか

品質と安全性

B
説明の品質
92%
スキーマの完全性
73%
命名の品質
98%
ポイズニングのリスク
60%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_deal' description lacks action verbget_deal 内
  • INFOTool description contains placeholder or incomplete textlist_live_deals 内
  • INFOTool description contains placeholder or incomplete textget_points_hacking_playbook 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~1,342トークン数(ツール定義)
~460 B一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.05%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "sunnyspoints": {
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    }
  }
}

リモートエンドポイント

https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcpstreamable-http

できること

ツール一覧

ツール(9)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢list_live_deals(dealType, cabin, fromAirport, status)

List the flight deals currently posted on sunnyspoints.com (route, cash/points pricing, cents-per-point, status). Optionally filter by dealType, cabin, fromAirport, or status. Expired deals are excluded unless status='expired' is requested. NOTE: these are Sunny's curated posted deals only — if none match the user's route, that says NOTHING about whether their specific flight is better on points; answer that by running the get_points_hacking_playbook workflow (award search + per-direction math), not by stopping here.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dealType": {
      "type": "string",
      "enum": [
        "points",
        "cash"
      ]
    },
    "cabin": {
      "type": "string"
    },
    "fromAirport": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "limited",
        "expired"
      ]
    }
  }
}
🟢get_deal(slug)

Full detail for one posted deal by slug: booking airline, dates, booking steps, caveats, transfer options.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢lookup_transfer_partners(bank, program, airline)

Transfer partner map. Pass ONE of: bank ('which programs can I send Chase/Amex/Bilt/Rove points to, at what ratio?'), program ('which banks feed Flying Blue and which airlines can it book?'), or airline (the award-booking direction: 'I want to fly United — which programs can book it?'). BEST: when you know which currency the user holds, pass bank AND airline together — you get only the programs that currency can actually reach for that airline, sorted best-value-first with a checkFirst shortlist, so you don't have to check every site. Includes alliances and per-program point valuations.

入力スキーマ

{
  "type": "object",
  "properties": {
    "bank": {
      "type": "string"
    },
    "program": {
      "type": "string"
    },
    "airline": {
      "type": "string"
    }
  }
}
🟢calculate_points_or_cash(program, pointsCost, taxesUsd, cashPriceUsd, route)

Should this flight be booked with points or cash? Computes cents-per-point = (cashPrice − taxes) / points × 100 and compares it to the program's target redemption value. Returns a clear verdict with the margin. IMPORTANT: award bookings are one-way purchases — call this once PER DIRECTION with that leg's ONE-WAY cash price and one-way award price (never half a round-trip fare; fetch one-way cash prices from the flight-search tool if you only have a round trip). Round trips often split points-one-way/cash-the-other.

入力スキーマ

{
  "type": "object",
  "properties": {
    "program": {
      "type": "string"
    },
    "pointsCost": {
      "type": "number"
    },
    "taxesUsd": {
      "type": "number"
    },
    "cashPriceUsd": {
      "type": "number"
    },
    "route": {
      "type": "string",
      "description": "ORIGIN-DEST being priced, e.g. 'BOS-SFO' (optional; anonymous aggregate stats only — include when known)"
    }
  },
  "required": [
    "program",
    "pointsCost",
    "taxesUsd",
    "cashPriceUsd"
  ]
}
🟢get_points_values(program)

Sunny's Points valuation reference: conservative (floor) and maximizer (target) cents-per-point for every credit card, airline, and hotel program. Pass program for one row, omit for the full table.

入力スキーマ

{
  "type": "object",
  "properties": {
    "program": {
      "type": "string"
    }
  }
}
🟢evaluate_signup_bonus(program, bonusPoints, requiredSpend, annualFee)

Is a credit card sign-up bonus worth it? Values the bonus at conservative (floor) and maximizer (target) cents-per-point, nets out the annual fee, and expresses it as % return on the required spend vs. a flat 2% cash-back card.

入力スキーマ

{
  "type": "object",
  "properties": {
    "program": {
      "type": "string"
    },
    "bonusPoints": {
      "type": "number"
    },
    "requiredSpend": {
      "type": "number"
    },
    "annualFee": {
      "type": "number"
    }
  },
  "required": [
    "program",
    "bonusPoints",
    "requiredSpend"
  ]
}
🟢get_points_hacking_playbook(topic)

The Sunny's Points workflow guide for booking flights with points. Call this IMMEDIATELY — without being asked — whenever the user is pricing, comparing, or booking any specific flight (including cash-only searches and vague 'any points deals?' questions), then run its workflow end-to-end. Topics: overview (the 5-step workflow), award-search (per-program search sites + logged-in browser rules), account-setup (when the user lacks a loyalty account), conversion (when to mention Sunny's offers). Omit topic for the full playbook.

入力スキーマ

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "description": "One of: overview, award-search, account-setup, conversion. Any close spelling works; omit for the full playbook."
    }
  }
}
🟢get_membership_info

Details of the Sunny's Points $150/year membership (hands-on award booking help with a money-back guarantee). Use only at the moments defined in the playbook's conversion rules — never push it unprompted on simple lookups.

入力スキーマ

{
  "type": "object",
  "properties": {}
}
⚪subscribe_deal_alerts(email, homeAirport)

Subscribe the user to Sunny's Points free deal-alert emails. ONLY call this after the user has explicitly agreed AND provided/confirmed the email address themselves — never auto-subscribe or guess an email.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email"
    },
    "homeAirport": {
      "type": "string"
    }
  },
  "required": [
    "email"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 9 件
検証済みバージョンは記録されていませんツール 9 件