Points or Cash MCP
An MCP server that helps travelers decide whether to use credit card points or pay cash for trips. It provides tools to calculate cents-per-point value, check transfer partners and ratios, view typical award chart prices, identify cash-back credit cards, and find lounge access information based on the user's card origin.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://pointsorcash.app/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to pointsorcash.app ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Calculate cents per point for a specific award vs cash fare
- Check transfer partners and ratios for bank points to airlines
- Find typical saver award prices by program and cabin
- Identify lounges accessible with a specific premium credit card
Source and maintenance
Protocol and capabilities
- Server
- points-or-cash 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 5 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
},
"resources": {
"listChanged": false
},
"extensions": {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
transfer_options — Transfer options
Which of the traveler's bank points can become miles/points in a target loyalty program, at what ratio, and how many they would end up with. Based on a researched transfer-partner table (has an as_of date; ratios change and transfer bonuses are not included). Pass the traveler's balances.
{
"type": "object",
"required": [
"target_programs",
"balances",
"miles_needed"
],
"properties": {
"balances": {
"type": "array",
"items": {
"type": "object",
"required": [
"bank",
"points"
],
"properties": {
"bank": {
"enum": [
"amex_mr",
"chase_ur",
"capital_one",
"citi_ty",
"bilt",
"wells_fargo",
"us_bank",
"rove",
"amex_mr_be",
"amex_mr_nl",
"amex_mr_uk",
"amex_mr_fr",
"amex_mr_de",
"revolut_eu",
"revolut_uk",
"amex_mr_es",
"amex_mr_it",
"amex_mr_se",
"amex_mr_ch",
"amex_mr_ca",
"rbc_avion_ca",
"amex_mr_au",
"anz_au",
"westpac_au",
"nab_au",
"cba_au",
"dbs_sg",
"uob_sg",
"citi_sg",
"hsbc_sg",
"amex_mr_sg",
"hsbc_hk",
"citi_hk",
"amex_mr_hk",
"scb_hk",
"hdfc_in",
"axis_in",
"amex_mr_in",
"icici_in",
"enbd_ae",
"amex_mr_ae",
"mashreq_ae",
"fab_ae"
],
"type": "string"
},
"points": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
},
"description": "The traveler's bank point balances, e.g. [{\"bank\":\"amex_mr\",\"points\":250000}]. amex_mr means a US-issued Amex; for an Amex issued elsewhere use the country key (amex_mr_be/_nl/_uk/_fr/_de/_es/_it/_se/_ch/_ca/_au/_sg/_hk/_in/_ae: different partners and ratios). Also Revolut RevPoints (revolut_eu, revolut_uk) and local banks (rbc_avion_ca, anz_au, westpac_au, nab_au, cba_au, dbs_sg, uob_sg, citi_sg, hsbc_sg, hsbc_hk, citi_hk, scb_hk, hdfc_in, axis_in, icici_in, enbd_ae, mashreq_ae, fab_ae). Ask which country issued the card if unclear."
},
"miles_needed": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Miles the award costs, to check whether the balances cover it; null if unknown"
},
"target_programs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Program slugs, e.g. [\"aeroplan\",\"flyingblue\",\"virginatlantic\",\"ana\",\"hyatt\"]. Empty array = list every partner reachable from the balances."
}
},
"additionalProperties": false
}{
"title": "Transfer options",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}award_chart — Award prices
Typical saver award prices (one-way) by program, market and cabin from a researched table, plus known sweet spots. Use when live award search is unavailable, to shortlist programs, or to judge whether a live price is good. Prices are estimates with an as_of date; dynamic programs vary.
{
"type": "object",
"required": [
"market",
"cabin",
"programs"
],
"properties": {
"cabin": {
"enum": [
"economy",
"premium",
"business",
"first"
],
"type": "string"
},
"market": {
"enum": [
"us_domestic",
"us_europe",
"us_japan_north_asia",
"us_southeast_asia",
"us_middle_east_india",
"us_south_america",
"us_hawaii",
"us_caribbean_mexico",
"eu_europe",
"eu_north_america",
"eu_caribbean_mexico",
"eu_south_america",
"eu_middle_east",
"eu_africa",
"eu_india",
"eu_southeast_asia",
"eu_north_asia",
"eu_australia"
],
"type": "string",
"description": "us_ = from the US, eu_ = from Europe. *_north_asia = Japan/Korea/China/HK/Taiwan; eu_middle_east includes North and Central Africa; eu_africa = southern Africa"
},
"programs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Program slugs to look up; empty array = all programs with a price for this market"
}
},
"additionalProperties": false
}{
"title": "Award prices",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}points_value — Points or cash verdict
Exact cents-per-point for an award vs the cash fare, in the trip currency: (cash − award fees − what paying cash would earn) ÷ points × 100. When the award is paid by transferring bank points, pass bank + program: it applies the traveler's transfer ratio (e.g. Belgian Amex to Flying Blue is 2:1) and any active bonus, and judges the value per bank point spent. Call it for every award you compare, rather than doing the maths yourself.
{
"type": "object",
"required": [
"currency",
"options",
"cash_back_pct",
"points_per_unit_paying_cash"
],
"properties": {
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"cash_price",
"miles",
"award_fees",
"bank",
"program",
"bank_points",
"miles_earned_paying_cash"
],
"properties": {
"bank": {
"anyOf": [
{
"enum": [
"amex_mr",
"chase_ur",
"capital_one",
"citi_ty",
"bilt",
"wells_fargo",
"us_bank",
"rove",
"amex_mr_be",
"amex_mr_nl",
"amex_mr_uk",
"amex_mr_fr",
"amex_mr_de",
"revolut_eu",
"revolut_uk",
"amex_mr_es",
"amex_mr_it",
"amex_mr_se",
"amex_mr_ch",
"amex_mr_ca",
"rbc_avion_ca",
"amex_mr_au",
"anz_au",
"westpac_au",
"nab_au",
"cba_au",
"dbs_sg",
"uob_sg",
"citi_sg",
"hsbc_sg",
"amex_mr_sg",
"hsbc_hk",
"citi_hk",
"amex_mr_hk",
"scb_hk",
"hdfc_in",
"axis_in",
"amex_mr_in",
"icici_in",
"enbd_ae",
"amex_mr_ae",
"mashreq_ae",
"fab_ae"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Bank currency transferred to pay for it (same keys as transfer_options, e.g. amex_mr_be), or null if the miles are already in the program"
},
"label": {
"type": "string",
"description": "e.g. \"Flying Blue business, 60k + €500\""
},
"miles": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Miles/points the award costs in the airline or hotel program",
"exclusiveMinimum": 0
},
"program": {
"type": [
"string",
"null"
],
"description": "Program slug the miles are in, e.g. \"flyingblue\", \"avios_ba\", \"aeroplan\"; needed with bank"
},
"award_fees": {
"type": "number",
"minimum": 0,
"description": "Taxes, fees and surcharges paid on the award"
},
"cash_price": {
"type": "number",
"description": "Cash fare for the same flight",
"exclusiveMinimum": 0
},
"bank_points": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "null"
}
],
"description": "Bank points spent if you already know it (overrides the ratio lookup); else null"
},
"miles_earned_paying_cash": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
{
"type": "null"
}
],
"description": "Airline miles the cash ticket would earn (award tickets usually earn none); null if unknown"
}
},
"additionalProperties": false
}
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Currency of all prices, e.g. \"EUR\", \"USD\", \"GBP\". Cash fare and award fees must be in the same currency; convert first if they differ."
},
"cash_back_pct": {
"anyOf": [
{
"type": "number",
"maximum": 10,
"minimum": 0
},
{
"type": "null"
}
],
"description": "Cash/crypto back % the traveler would earn paying cash (e.g. 4 for a 4% card). Null if unknown."
},
"points_per_unit_paying_cash": {
"anyOf": [
{
"type": "number",
"maximum": 10,
"minimum": 0
},
{
"type": "null"
}
],
"description": "Card points earned per dollar/euro on the cash fare (e.g. 5 for Amex Platinum on flights). Null if unknown."
}
},
"additionalProperties": false
}{
"title": "Points or cash verdict",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}cashback_cards — Cash-back cards
Earn rates for crypto-cashback and flat-cashback cards (Coinbase One Card, Gemini, Crypto.com, Fold, Robinhood Gold, Citi Double Cash, Wells Fargo Active Cash and more): rate on airfare, hotels, travel portals and everything else, fees, caps and how rewards pay out. Use when the traveler pays cash with one of these cards, to value the cash option (cash back earned) and to pass cash_back_pct to points_value.
{
"type": "object",
"required": [
"cards"
],
"properties": {
"cards": {
"type": "array",
"items": {
"type": "string"
},
"description": "Card slugs or names, e.g. [\"coinbase_one_card\"]; empty array = all cards"
}
},
"additionalProperties": false
}{
"title": "Cash-back cards",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}lounges — Lounge access
Airport lounges for a journey: the lounges at each airport (origin, connections, destination) and which ones the traveler can use with their cards, plus access rules by ticket and status (business class, oneworld/Star Alliance/SkyTeam elite). Covers 214 airports, including Brussels and the main European and Asian hubs, with access by ticket, status, Priority Pass and cards by issuing country. Use it when planning the full journey, after the flights are decided or when the traveler asks about lounges. Card rules change often; the data has an as_of date and verified flags.
{
"type": "object",
"required": [
"airports",
"cards"
],
"properties": {
"cards": {
"type": "array",
"items": {
"type": "string"
},
"description": "Lounge-relevant cards the traveler holds, as slugs. US-issued: amex_platinum, amex_business_platinum, amex_centurion_card, chase_sapphire_reserve, capital_one_venture_x, citi_strata_elite, citi_aadvantage_executive, united_club_infinite, delta_reserve, bilt_palladium, priority_pass_network. Issued elsewhere: amex_platinum_be, amex_platinum_uk, amex_platinum_de, amex_platinum_nl, amex_platinum_fr, amex_platinum_au, revolut_ultra_be, bnp_fortis_mc_world_elite, belfius_private_mc_world_elite. Ask where a card was issued if it matters. Empty if unknown."
},
"airports": {
"type": "array",
"items": {
"type": "string"
},
"description": "IATA codes in travel order, e.g. [\"SFO\",\"SEA\",\"HND\"]"
}
},
"additionalProperties": false
}{
"title": "Lounge access",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
points_or_cash_card — Points or Cash card
The points-or-cash verdict and award price comparisons, as a card.
ui://points-or-cash/card.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 676 ms
- 95th percentile latency
- 676 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 676 ms · metadata changed · 5 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http points-or-cash-mcp https://pointsorcash.app/mcpCodex
codex mcp add points-or-cash-mcp --url https://pointsorcash.app/mcpCursor
{
"mcpServers": {
"points-or-cash-mcp": {
"url": "https://pointsorcash.app/mcp"
}
}
}Cline
{
"mcpServers": {
"points-or-cash-mcp": {
"type": "streamableHttp",
"url": "https://pointsorcash.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"points-or-cash-mcp": {
"type": "http",
"url": "https://pointsorcash.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http points-or-cash-mcp https://pointsorcash.app/mcpClaude Desktop
https://pointsorcash.app/mcpWindsurf
{
"mcpServers": {
"points-or-cash-mcp": {
"serverUrl": "https://pointsorcash.app/mcp"
}
}
}Let your agent find its tools
Find servers like Points or Cash MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Points or Cash MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.