Assistants get credit card questions wrong for a specific reason. The hard part is never the multiplication; it is the category caps, the enrollment requirements, the portal-versus-direct booking rules, and the fact that Costco codes as a wholesale club. CardSavvy's MCP server gives your assistant those rules as tools it can call instead of facts it has to remember.
The model stays entirely in your client. We never see or store an API key from your AI provider.
In Claude, open Settings, then Connectors, and add a custom connector with this URL:
https://mcp.card-savvy.com/connectClaude sends you to CardSavvy to sign in and approve access. Every tool, including the optimizer, then works without a token, and Claude can use the cards saved in your wallet instead of asking you to list them. You need a CardSavvy account with a verified email. Connectors added on claude.ai also appear in the Claude desktop and mobile apps. Your profile's API Access tab lists every assistant you connected, and disconnecting one there ends its access at once.
In ChatGPT on the web, open Settings, then Plugins, and add a custom MCP app with the same URL. Choose OAuth for authentication:
https://mcp.card-savvy.com/connectSign-in and approval work the same way as in Claude, and so do the wallet tools. ChatGPT lists CardSavvy as a developer-mode app with your own name as the developer, because you are the one who added it. Which ChatGPT plans can add custom apps is set by OpenAI; its help article has the current list. Disconnect from the same API Access tab.
The server speaks MCP over streamable HTTP. The endpoint is served by our optimizer service, not by this page, so use the URL exactly as shown. In Claude Code:
claude mcp add --transport http cardsavvy https://mcp.card-savvy.com/mcpClients that take a JSON config use this shape:
{
"mcpServers": {
"cardsavvy": {
"type": "http",
"url": "https://mcp.card-savvy.com/mcp"
}
}
}No account is needed for the catalog, merchant-coding, and per-purchase tools.
| search_cards | Find cards by issuer, annual fee, or bonus category. |
| get_card | Full earn rates, caps, credits, and fees for one card. |
| classify_merchant | How a merchant actually codes at the network. |
| best_card_for_purchase | Rank a wallet for one transaction, with the formula. |
| compare_cards | Net annual value head to head under a standard profile. |
| list_recent_card_changes | Verified fee hikes, rate cuts, and category changes. |
| value_redemption | Cents per point an award gets against cash, compared with the program's value. |
These run the linear-programming optimizer, which is the only part that costs real compute. A token is free and takes a moment to create from your profile once your email is verified. Through the Claude or ChatGPT connector above, signing in takes the place of the token.
| optimize_wallet | Solve category-to-card allocation for a full year. |
| simulate_adding_card | What one more card would add, net of its fee. |
| wallet_simplification | Keep, monitor, downgrade, or cancel, per card. |
| credit_health | Effective value of statement credits, and overlaps. |
| recommend_cards | Highest incremental value for a given wallet and spend. |
Send the token as a bearer header:
{
"mcpServers": {
"cardsavvy": {
"type": "http",
"url": "https://mcp.card-savvy.com/mcp",
"headers": { "Authorization": "Bearer cs_mcp_..." }
}
}
}These work only through a connector you signed in to, after you approve wallet access, so an API token cannot reach them. Your assistant can read the cards and spending you saved on card-savvy.com, add or remove cards and update your yearly spending when you ask, and track a welcome bonus you tell it about. CardSavvy emails you before the deadline. It can also keep your miles and points balances, priced in dollars, and which card credits you have used this month, quarter or year.
| get_wallet | The cards and spending saved in your CardSavvy wallet. |
| add_wallet_cards | Save cards to your wallet. Cards already there are left as they are. |
| remove_wallet_cards | Remove the cards you name. The result can undo the removal. |
| save_wallet_preferences | Save how much of each credit you use, how often you fly, when each annual fee posts, and what your points are worth. |
| save_wallet_spending | Save your yearly spending by category. |
| get_bonus_trackers | Welcome bonuses you are working on: spend left, days left, weekly pace. |
| save_bonus_tracker | Track a welcome offer from the terms you accepted, with its deadline. |
| update_bonus_progress | Record how much you have spent toward a bonus, and where the figure came from. |
| get_loyalty_balances | Your airline, hotel and bank points balances, each priced in dollars with a range. |
| update_loyalty_balances | Save balances and elite status you read off a program's app. No member numbers. |
| get_perks | Each card credit for its current period: what is left and when it resets. |
| update_perk_usage | Record a credit as used, partly used, activated or skipped this period. |
| add_custom_perk | Track a recurring perk your card app shows that the catalog does not list. |
No tool replaces your saved cards. A change with any name that does not match is refused, with nothing saved. Assistants that ask before a tool changes data will ask before the nine that change it. Your assistant can pass the point values you saved to the optimizer tools, and the credit shares you saved apply on their own, so its numbers match your dashboard. It asks how often you fly before it counts an airline card's free checked bags, and once you agree, it can save that, so the next chat starts from it.
Anonymous callers get 120 tool calls an hour, keyed to a salted hash of your IP. A token raises that and adds 60 optimizer solves an hour, 300 a day. The optimizer limit applies only to the linear-programming tools; catalog and per-purchase calls are unaffected when you hit it. Identical requests are served from cache and are cheap for both of us.
Call optimize_wallet once with the whole wallet and a full year of spending rather than once per category. The solver allocates across categories under shared caps, so per-category calls produce wrong answers as well as burning quota.
The tools return the same numbers for the same inputs, so a script can call them as easily as a chat client can. Any MCP SDK works with the bearer header above, and no model is involved. Send spending as annual dollars per category, using these names: Dining, Fast Food, Grocery, Gas, Rideshare, Flights, Hotels, Amazon, Costco, Walmart, Online Shopping, Streaming, Internet, Cell Phone, Home Utilities, General.
A category the catalog has no rate for comes back in warnings, because that spend earns nothing in the result. Treat the warning as a failed run. If your transactions are in Monarch, the importer turns an export into these totals in your browser, so only the category totals are ever sent.
Card terms change, so each response puts the answer under result and lists every card it used in sources, each with the issuer's page and a verification date. as_of is the oldest of those dates. A null as_of means at least one record is unverified, not that it is current, and the response adds a note saying so. warnings carries caveats such as the revolving-balance guardrail, and notices carries the disclaimer.
Outbound links point at the issuer's own page. CardSavvy takes no affiliate or advertising compensation today, so rankings reflect computed value only.
A tool call may carry the cards you hold and your spending by category. We do not log tool arguments. Usage records the tool name, a one-way hash of the inputs, whether the response came from cache, and how long it took. That is enough to run rate limits and measure cache effectiveness, and not enough to reconstruct a wallet. The Privacy Policy sets this out in full.
The only tools that change anything are the wallet tools, and they change only what is saved in your CardSavvy account. Nothing here opens, closes, or changes an account with a card issuer or loyalty program, and nothing applies for a card. Results are informational and educational, not individualized financial advice. If you carry a revolving balance, the tools say so before anything else: interest costs far more than any rewards rate earns.
Use of the API is governed by the API Terms. Questions: support@card-savvy.com.