tap
Provides benefits and statement-credit data for the Chase Sapphire Reserve card, enabling purchase optimization and tracking of used or expiring credits.
Provides benefits and credit data for the Delta SkyMiles Gold card, enabling purchase optimization and credit usage tracking.
Provides benefits and cash-back category/credit data for the Discover it Cash Back card, enabling purchase optimization and credit usage tracking.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tap I'm buying $98 of lululemon — which card should I use?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tap-mcp
The step before an AI agent pays. Before a shopping agent checks out, it asks Tap: which of my cards, which statement credit applies, have I already used it, and what's about to expire?
Card-picker tools already exist (CardSavvy, PointMaxx and others) and they're good at earn rates. Tap uses CardSavvy's free MCP server for those and adds what a per-purchase answer leaves out:
Credits at the moment you buy. A $98 lululemon order on the Amex Platinum earns $1.47 in points, but the $75 quarterly lululemon credit is worth fifty times that.
What you've already used. A used credit drops out instead of being promised again.
Agent payment risk. When an agent pays with a wallet's one-time card, merchant credits may not trigger. Tap says so.
What's expiring. Credits and balances that lapse within 14 days come back with every answer.
Install
Claude Code:
claude mcp add tap -- npx -y tap-mcpClaude Desktop (claude_desktop_config.json):
{ "mcpServers": { "tap": { "command": "npx", "args": ["-y", "tap-mcp"] } } }Needs Node 20+.
Related MCP server: ClawPay
Setup happens in conversation
There's no form. Every answer includes ask_user: the next question the agent should ask, one at a time.
"Which cards do you carry?" →
set_my_cardsA renewal date, only for cards whose credits reset on it →
set_my_cardswithanniversariesAt purchase time: "Have you used your lululemon credit this quarter, and are you enrolled?" →
mark_creditVouchers, companion fares and other balances when they come up →
set_balance
Tools
Tool | What it does |
| Best card for a purchase: earn + unused credit, conditions, payment-rail risk, |
| Balances and unused credits lapsing in a window, soonest first |
| Cards Tap knows, and which ones you hold |
| Save what you tell your agent |
Privacy
Your cards, used credits and balances live in one file on your machine: ~/.tap/state.json (change it with TAP_STATE).
Nothing is sent to Tap. To price earn rates, each purchase check sends CardSavvy the card names, merchant, amount and
category, nothing else. If CardSavvy doesn't answer within 8 seconds, Tap uses its own rates.
Cards covered
Credits data covers 5 cards so far: Amex Platinum, Chase Sapphire Reserve, Delta SkyMiles Gold, Atmos Rewards Ascent and
Discover it Cash Back. Each entry is checked against the issuer's page (data/entitlements/, with source links).
Develop
npm install
npm test # engine, status-file and data checks (Node 22.18+ runs the TypeScript directly)
npm run build # compiles to dist/License
Code: MIT. Card data (data/): CC BY 4.0. Use it, adapt it, credit Tap.
Available Tools
6 toolslist_cardsA
Lists the cards Tap knows (slug, name, annual fee) and which ones the user holds. Use it to match what the user says to slugs.
Inputs: no named parameters.
mark_creditA
Record what the user said about one card credit this period: used = true if they've used it, false if they confirmed it's still unused (Tap then stops asking until the period resets). Credit ids come from optimize_purchase and ask_user.
Inputs: card (required), used (required), credit (required), date.
optimize_purchaseA
The step before you pay: call BEFORE paying for anything. Given the merchant, category and amount, ranks the user's cards by rewards earned (rates from CardSavvy's catalog) plus any statement credit that applies and hasn't been used this period, returns the conditions to check first (enrollment, activation, booking channel), the risks of the payment method, and credits and balances expiring within 14 days. Recommend the best card, relay the warnings, and ask the user the questions in ask_user (one at a time), saving answers with the set_/mark_ tools.
Inputs: amount (required), category (required), merchant (required), date, +2 more.
set_balanceA
Save a balance the user owns that can expire: an airline voucher or code, an earned credit, a certificate, points. Same name + program replaces; value 0 removes it. Never store account or member numbers.
Inputs: name (required), unit (required), value (required), program (required), +3 more.
set_my_cardsA
Save which cards the user holds (replaces the list), and optionally each card's renewal date. Call it when the user tells you their cards. Only cards from list_cards are supported.
Inputs: cards (required), anniversaries.
whats_expiringA
What the user is about to lose: balances (airline codes, earned credits, certificates) nearing expiry, and this period's card credits not yet used, soonest first, with what each needs (enrollment, booking channel, spend). Call it when planning trips or purchases, or when asked what's expiring.
Inputs: today, within_days.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes, but whats_expiring and optimize_purchase both surface expiring credits/balances (optimize_purchase includes items expiring within 14 days). Descriptions help, but an agent asking about expiry could reasonably choose either tool.
Five of six tools follow a verb_noun pattern (set_my_cards, mark_credit, set_balance, optimize_purchase, list_cards). whats_expiring breaks the pattern as an interrogative phrase, and set_my_cards adds a possessive 'my' unlike the others, but the set remains readable.
Six tools cleanly cover the domain's core actions: list/set cards, set balances, mark credits, check expiry, and optimize purchases. There is no obvious bloat or thinness for the stated purpose.
Core write paths and purchase optimization are covered, but there is no tool to list all owned balances/credits (only expiring ones) and no explicit read of credit usage status. The referenced ask_user tool is also absent from the set, leaving a notable interaction gap.
Maintenance
Related MCP Connectors
Agent requests a purchase, the human taps approve, the agent gets a card scoped to it.
Payment infrastructure for AI agents: spending rules, approval flows, single-use virtual cards.
Which of your credit cards to use at any store, from verified bank data. No bank login.
Related MCP Servers
- -licenseNot gradedqualityDmaintenanceEnables AI agents to manage and use prepaid virtual Visa cards with hard budget limits for secure online transactions. It provides tools for creating cards, checking balances, and retrieving payment credentials with human-in-the-loop approvals.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to make payments by securely storing encrypted card details and enforcing user-defined policies, allowing agents to fill checkout forms on any site.5 npmMIT
- AlicenseAqualityCmaintenanceEnables agents to recommend the best credit card for a given store or category, look up merchant coding, search cards, and inspect rotating bonus calendars using verified reward data.5177 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to autonomously issue single-use, merchant-locked virtual Visa cards and execute payments across supported merchants through the Model Context Protocol, with human-in-the-loop approval.8-