if-the-card-fits
Which credit cards a household should carry, simulated over 5 years on weekly-verified terms.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"if-the-card-fits": {
"url": "https://ifthecardfits.com/mcp"
}
}
}遠端端點
https://ifthecardfits.com/mcpstreamable-http它能做什麼
工具清單
工具(4)
⚪spending_categories
The 19 categories this API scores spending against. Call this first and map the person's statement onto these ids before calling simulate_cards.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simulate_cards(totals, foreignPerYear, memberships, departures, mode, ...)
Given a year of spending by category, returns the three best credit cards and the best two-card combination, with what each is worth after its annual fee over the chosen horizon. Figures come from a model checked to the cent against an independent reference calculator, against card terms a person verified against the issuer's own page — the response says which catalog version and when each card was last checked. Always show the person the continueUrl: it reopens their own numbers on the site with the full breakdown, the rest of the ranking and offer alerts. Also show the disclosure string.
輸入結構描述
{
"type": "object",
"properties": {
"totals": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"dining",
"groceries",
"superstores",
"wholesale_clubs",
"gas",
"transit",
"airfare",
"hotels",
"car_rental",
"travel_other",
"streaming",
"drugstores",
"home_improvement",
"entertainment",
"amazon",
"online_retail",
"phone_internet",
"fitness",
"other"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0
},
"description": "A year's card spending in dollars, by category. Map the person's statement onto these categories with the spending_categories tool first. At least 4 categories must have spending and no single one may exceed 70% of the total, so send the whole picture rather than one category."
},
"foreignPerYear": {
"description": "Of that spending, how much is in a foreign currency, per year.",
"type": "number",
"minimum": 0
},
"memberships": {
"description": "Membership tags the person already pays for, e.g. amazon_prime, costco_membership.",
"type": "array",
"items": {
"type": "string"
}
},
"departures": {
"description": "Flights departed per year, which decides what lounge and companion perks are worth.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"mode": {
"description": "Whether points are valued as cash back or for travel. Defaults to cash.",
"type": "string",
"enum": [
"cash",
"travel"
]
},
"years": {
"description": "Horizon in years. One of 1, 3 or 5; defaults to 5.",
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 5
}
]
},
"held": {
"description": "Card ids the person already carries, so a new card is judged against them.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string"
}
},
"filters": {
"description": "Must-haves that remove cards before ranking.",
"type": "object",
"properties": {
"noForeignFee": {
"type": "boolean"
},
"visaOrMastercard": {
"type": "boolean"
},
"feeCap": {
"type": "string",
"enum": [
"0",
"100",
"400",
"any"
]
},
"creditTier": {
"type": "string",
"enum": [
"fair",
"good",
"excellent",
""
]
},
"homeAirport": {
"type": "string"
}
}
},
"source": {
"type": "string",
"description": "A short lowercase slug naming your client, so apply clicks can be attributed. Required."
}
},
"required": [
"totals",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴keep_or_cancel(totals, foreignPerYear, memberships, departures, mode, ...)
For cards the person already carries, says whether each one still earns its annual fee back on their spending, and what to move to if not. Pass the cards as `held`. Returns a verdict and a rounded yearly margin.
輸入結構描述
{
"type": "object",
"properties": {
"totals": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"dining",
"groceries",
"superstores",
"wholesale_clubs",
"gas",
"transit",
"airfare",
"hotels",
"car_rental",
"travel_other",
"streaming",
"drugstores",
"home_improvement",
"entertainment",
"amazon",
"online_retail",
"phone_internet",
"fitness",
"other"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0
},
"description": "A year's card spending in dollars, by category. Map the person's statement onto these categories with the spending_categories tool first. At least 4 categories must have spending and no single one may exceed 70% of the total, so send the whole picture rather than one category."
},
"foreignPerYear": {
"description": "Of that spending, how much is in a foreign currency, per year.",
"type": "number",
"minimum": 0
},
"memberships": {
"description": "Membership tags the person already pays for, e.g. amazon_prime, costco_membership.",
"type": "array",
"items": {
"type": "string"
}
},
"departures": {
"description": "Flights departed per year, which decides what lounge and companion perks are worth.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"mode": {
"description": "Whether points are valued as cash back or for travel. Defaults to cash.",
"type": "string",
"enum": [
"cash",
"travel"
]
},
"years": {
"description": "Horizon in years. One of 1, 3 or 5; defaults to 5.",
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 5
}
]
},
"held": {
"description": "Card ids the person already carries, so a new card is judged against them.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string"
}
},
"filters": {
"description": "Must-haves that remove cards before ranking.",
"type": "object",
"properties": {
"noForeignFee": {
"type": "boolean"
},
"visaOrMastercard": {
"type": "boolean"
},
"feeCap": {
"type": "string",
"enum": [
"0",
"100",
"400",
"any"
]
},
"creditTier": {
"type": "string",
"enum": [
"fair",
"good",
"excellent",
""
]
},
"homeAirport": {
"type": "string"
}
}
},
"source": {
"type": "string",
"description": "A short lowercase slug naming your client, so apply clicks can be attributed. Required."
}
},
"required": [
"totals",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪compare_two(totals, foreignPerYear, memberships, departures, mode, ...)
Two named cards head to head on the person's own spending: which one pays more, and by how much a year. Use this when they are choosing between two specific cards. For 'what should I get', use simulate_cards instead.
輸入結構描述
{
"type": "object",
"properties": {
"totals": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"dining",
"groceries",
"superstores",
"wholesale_clubs",
"gas",
"transit",
"airfare",
"hotels",
"car_rental",
"travel_other",
"streaming",
"drugstores",
"home_improvement",
"entertainment",
"amazon",
"online_retail",
"phone_internet",
"fitness",
"other"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0
},
"description": "A year's card spending in dollars, by category. Map the person's statement onto these categories with the spending_categories tool first. At least 4 categories must have spending and no single one may exceed 70% of the total, so send the whole picture rather than one category."
},
"foreignPerYear": {
"description": "Of that spending, how much is in a foreign currency, per year.",
"type": "number",
"minimum": 0
},
"memberships": {
"description": "Membership tags the person already pays for, e.g. amazon_prime, costco_membership.",
"type": "array",
"items": {
"type": "string"
}
},
"departures": {
"description": "Flights departed per year, which decides what lounge and companion perks are worth.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"mode": {
"description": "Whether points are valued as cash back or for travel. Defaults to cash.",
"type": "string",
"enum": [
"cash",
"travel"
]
},
"years": {
"description": "Horizon in years. One of 1, 3 or 5; defaults to 5.",
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 5
}
]
},
"held": {
"description": "Card ids the person already carries, so a new card is judged against them.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string"
}
},
"filters": {
"description": "Must-haves that remove cards before ranking.",
"type": "object",
"properties": {
"noForeignFee": {
"type": "boolean"
},
"visaOrMastercard": {
"type": "boolean"
},
"feeCap": {
"type": "string",
"enum": [
"0",
"100",
"400",
"any"
]
},
"creditTier": {
"type": "string",
"enum": [
"fair",
"good",
"excellent",
""
]
},
"homeAirport": {
"type": "string"
}
}
},
"source": {
"type": "string",
"description": "A short lowercase slug naming your client, so apply clicks can be attributed. Required."
},
"cardA": {
"type": "string",
"description": "Card id."
},
"cardB": {
"type": "string",
"description": "Card id."
}
},
"required": [
"totals",
"source",
"cardA",
"cardB"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社群
證據