protogrid

Search / io.github.swarnavspujari/sunnyspoints

sunnyspoints

R0· no sign-in

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

v1.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality88good
Trust76of 100
Uptime, 30 days93%
Latency p50139 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "sunnyspoints": {
      "type": "http",
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    }
  }
}
claude mcp add --transport http sunnyspoints https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp
[mcp_servers.sunnyspoints]
url = "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sunnyspoints": {
      "type": "remote",
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "sunnyspoints": {
      "type": "http",
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=sunnyspoints&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3VubnlzcG9pbnRzLW1jcC5zdW5ueXNwb2ludHMud29ya2Vycy5kZXYvbWNwIn0%3D"
}
{
  "servers": {
    "sunnyspoints": {
      "type": "http",
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "sunnyspoints": {
      "httpUrl": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    }
  }
}
extensions:
  "sunnyspoints":
    enabled: true
    name: "sunnyspoints"
    type: streamable_http
    uri: "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp"
    timeout: 300

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints1 of 9 tools declare all four hints; missing: get_deal (destructiveHint, idempotentHint); calculate_points_or_cash (destructiveHint, idempotentHint); get_points_values (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 1,347 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

9 tools, about 1,347 tokens to load them all · tool set 90d981c6bf6d · checked 2026-10-20 10:03 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 76 / 100

no-repository
provenance45
liveness97
freshness85
hygiene80

+website +reachable +uptime-93% ~updated-65d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp streamable-httpnoneyes93%139 ms2025-11-252026-10-20

Tools (9)

calculate_points_or_cashread-onlyShould 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.
evaluate_signup_bonusread-onlyIs 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.
get_dealread-onlyFull detail for one posted deal by slug: booking airline, dates, booking steps, caveats, transfer options.
get_membership_inforead-onlyDetails 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.
get_points_hacking_playbookread-onlyThe 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.
get_points_valuesread-onlySunny'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.
list_live_dealsread-onlyList 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.
lookup_transfer_partnersread-onlyTransfer 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.
subscribe_deal_alertsSubscribe 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.swarnavspujari/sunnyspoints",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
  "remotes": [
    {
      "url": "https://sunnyspoints-mcp.sunnyspoints.workers.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.2.0",
  "websiteUrl": "https://sunnyspoints.com/mcp",
  "description": "Live flight deals plus points-vs-cash math: transfer partners, valuations, per-leg verdicts."
}