MCP Server

creditcards.best

best.creditcards/mcp
Finance & Investing Payments & Fintech Public & reachable MCP 2025-11-25

What this MCP does

Searches and compares US credit cards, evaluates likely eligibility, estimates rewards, and provides tracked application links.

check_eligibility
Check likely eligibility
Given a user's credit band (and optionally income), return cards they would typically qualify for, surfacing issuer application rules (e.g. Chase 5/24) and any income floor. Only cards that publish a credit requirement can be answered; cards with no published requirement are counted in `unknownCount`, never listed as qualifying. This is a likelihood signal from published guidance, not an approval guarantee.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['creditBand'], 'properties': {'cardIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restrict to these cards; default is all verified cards'}, 'incomeUsd': {'type': 'number'}, 'creditBand': {'enum': ['excellent', 'good', 'fair', 'poor', 'none'], 'type': 'string'}}}
compare_cards
Compare cards
Side-by-side detail for two or more cards by id: fees, foreign-transaction fee, signup bonus, earn rates, credits and eligibility. Apply links are tracked redirects.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 2, 'description': 'Card slugs to compare'}}}
estimate_rewards
Estimate annual rewards
Given an annual spending profile (USD per category, e.g. { dining: 6000, groceries: 8000, travel: 4000, other: 20000 }), estimate each card's net rewards value and rank them. Net value = rewards earned on spend + first-year signup bonus − annual fee. Statement credits are reported separately (max value if fully used), NOT folded into the headline, to avoid overstating premium 'coupon-book' cards. Returns a per-category breakdown and the assumptions used. All card facts come from the verified dataset; only point valuation is modeled.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spend'], 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'spend': {'type': 'object', 'description': 'Annual USD spend keyed by category label', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, 'cardIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restrict to these cards; default is all'}, 'creditBand': {'enum': ['excellent', 'good', 'fair', 'poor', 'none'], 'type': 'string', 'description': 'Restrict to cards this band typically qualifies for'}, 'includeSignupBonus': {'type': 'boolean', 'description': 'Include the signup bonus in year-1 value (default true)'}}}
get_apply_link
Get apply link
Return the apply link for a card. This is always a creditcards.best tracked redirect that records the referral and forwards to the issuer; the raw issuer URL is never returned.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
get_card
Get one card
Full detail for a single card by id (slug), including earn rates, credits, eligibility, sources and lastVerified. The apply link is our tracked redirect, not the issuer URL.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "Card slug, e.g. 'chase-sapphire-preferred'"}}}
search_cards
Search credit cards
Filter the US credit-card dataset by product type, rewards currency (program name or kind), issuer, annual fee, foreign-transaction fee, signup-bonus value, credit band, or curated category. Searches ONLY issuer-verified cards by default, because unverified stubs carry null for most filterable fields and a null is not a zero. Set verified:false for the stubs, or verified:null to search everything knowingly. Returns at most 25 summaries unless you raise `limit`; `total` is the full match count and `truncated` says whether you are seeing all of it. Rankings reflect fit, not placement.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['name', 'annualFee', 'signupValue', 'baseRate'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Max cards to return (default 25). Check `truncated` before treating the list as complete.', 'exclusiveMinimum': 0}, 'issuer': {'type': 'string', 'description': "Issuer name, partial match (e.g. 'Chase')"}, 'category': {'type': 'string', 'description': "Curated slug, e.g. 'best-cash-back-credit-cards'"}, 'verified': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'Defaults to true (issuer-verified only). false = only the unverified stubs seeded from the open reference. null = the whole corpus, nulls and all.'}, 'creditBand': {'enum': ['excellent', 'good', 'fair', 'poor', 'none'], 'type': 'string', 'description': 'Only cards a user with this credit band typically qualifies for'}, 'isBusiness': {'type': 'boolean'}, 'productType': {'type': 'array', 'items': {'enum': ['cashback', 'travel-rewards', 'points', 'business', 'balance-transfer'], 'type': 'string'}}, 'maxAnnualFee': {'type': 'number'}, 'rewardsCurrency': {'type': 'string', 'description': "Program name, partial match, by its own name: 'AAdvantage' not 'American', 'SkyMiles' not 'Delta', 'Bonvoy', 'Avios'."}, 'minSignupValueUsd': {'type': 'number', 'description': 'Minimum estimated signup-bonus cash value'}, 'rewardsCurrencyType': {'type': 'array', 'items': {'enum': ['cashback', 'bank-points', 'airline-miles', 'hotel-points', 'other'], 'type': 'string'}, 'description': 'Kind of loyalty currency earned. Use this for airline or hotel cards; it is not a productType.'}, 'noForeignTransactionFee': {'type': 'boolean'}}}
Added
compare_cards
Sept. 17, 2026, 7:58 a.m.
Added
get_apply_link
Sept. 17, 2026, 7:58 a.m.
Added
check_eligibility
Sept. 17, 2026, 7:58 a.m.
Added
estimate_rewards
Sept. 17, 2026, 7:58 a.m.
Added
get_card
Sept. 17, 2026, 7:58 a.m.
Added
search_cards
Sept. 17, 2026, 7:58 a.m.