if-the-card-fits

Which credit cards a household should carry, simulated over 5 years on weekly-verified terms.

我该使用它吗

质量与安全性

A
描述质量
90%
模式完整度
81%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~1,854token 数(工具定义)
~4.9 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.45%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本4 个工具