sunnyspoints

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

Should I use this

Quality & Safety

B
Description quality
92%
Schema completeness
73%
Naming quality
98%
Poisoning risk
60%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_deal' description lacks action verbin get_deal
  • INFOTool description contains placeholder or incomplete textin list_live_deals
  • INFOTool description contains placeholder or incomplete textin get_points_hacking_playbook

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,342Tokens (tool definitions)
~460 BTypical response size
Moderate attention impact (1.05% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

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

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

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

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools