In this section: All MCP tools

All MCP tools

Every MCP tool Miles exposes, grouped by domain, on one page — the fetch an agent makes instead of nine.

Cards

get_best_card

Best card in the user's wallet for a spending category (dining, groceries, gas, travel, rent, ...) or a specific merchant -- pass at least one of category or merchant; amount (dollars) is optional.

ScopeQuota
miles:readstandard
NameTypeRequired
categorystring
merchantstring
amountnumber

get_card_info

Full details for a credit card PRODUCT: fees, earning rates, credits, benefits, transfer partners, sign-up bonus.

ScopeQuota
miles:readstandard
NameTypeRequired
card_namestring
wallet_idstring

get_product_changes

Upgrade and downgrade paths for a wallet card -- the natural next question after analyze_keep_cancel. Wallet-aware: results reflect which products you already hold.

ScopeQuota
miles:readstandard
NameTypeRequired
card_namestringrequired

get_top_offers

Current top sign-up bonuses, optionally filtered by card type (personal/business) — first-year value ranked.

ScopeQuota
miles:readstandard
NameTypeRequired
card_typestring
memberstring

get_wallet_complement

Recommends NEW cards to get -- fills gaps in the wallet, not a keep/cancel review of cards already held. Finds orphaned points needing a companion card, weak spending categories, missing transfer ecosystems, and network gaps, then ranks up to 5 candidate cards with gap-fill reasons, ongoing value, and sign-up bonus. Each recommendation carries inline eligibility annotations (5/24, 6/24, Amex velocity limits) and portfolio rules (e.g. one Sapphire product at a time); results are filtered to the wallet's card type (personal/business) automatically.

ScopeQuota
miles:readstandard
NameTypeRequired
focusstring
card_namestring
check_eligibilityboolean
memberstring
preferred_programsstring[]

search_cards

Search the 180+ card dataset by issuer, fees, rewards program, airline/hotel affiliation, or bonus spending categories.

ScopeQuota
miles:readstandard
NameTypeRequired
spending_categoriesstring[]
issuerstring
card_typestring
max_annual_feeinteger
rewards_programstring
airlinestring
hotelstring
has_signup_bonusboolean
limitinteger
memberstring

Transfer partners

compare_transfer_options

What a balance of points is worth across transfer paths, with the arithmetic shown -- the points-quantity question, distinct from get_transfer_partners (which lists WHICH paths exist, not what YOUR points are worth). Call program only (from), target only (to), or both (one specific path, e.g. 60k UR → Hyatt).

ScopeQuota
miles:readstandard
NameTypeRequired
pointsintegerrequired
programstring
targetstring

get_transfer_partners

Transfer partner lookup. mode='from_program' lists where a currency (e.g. 'Chase Ultimate Rewards') transfers; 'to_program' lists which currencies reach a destination (e.g. 'World of Hyatt'); 'auto' infers.

ScopeQuota
miles:readstandard
NameTypeRequired
querystringrequired
modestring

get_valuations

Point valuations (cents per point) — the user's custom values when set, defaults otherwise.

ScopeQuota
miles:readstandard
NameTypeRequired
programsstring[]

plan_transfer

"I need N points at program X -- which of my HELD currencies gets me there cheapest?" The advisor flagship: ranks the loyalty currencies you've told Miles you hold (get_balances) by cheapest path to target_program -- transfer graph x ratios x active bonuses x transfer minimums/increments x your own valuations -- including two-currency split suggestions and "you hold it but not enough" rows. Deterministic, receipt-style, built on the same functions compare_transfer_options uses, so the two tools cannot disagree about a shared leg.

ScopeQuota
miles:readstandard
NameTypeRequired
target_programstringrequired
points_neededintegerrequired

portfolio_review

"Here are my balances -- where should I focus?" Ranks every loyalty currency the member has told Miles they hold against a redemption goal, and says which one to focus on, which to stop growing, and why.

ScopeQuota
miles:readstandard
NameTypeRequired
goalstring
cardholderstring

reset_valuation

Reset a custom valuation back to the Ask Miles default. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
point_typestringrequired

set_valuation

Set the user's custom point/mile valuations (cents per point). Pass valuations to set several at once. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
point_typestring
valuationnumber
valuationsobject

Wallet

add_card

Add one credit card, or a BATCH of them, to the user's wallet. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
card_namestring
nicknamestring
date_openedstring
anniversary_datestring
sign_up_bonusstring
signup_bonus_statusstring
signup_bonus_received_onstring
sub_deadlinestring
sub_targetnumber
notesstring
statusstring
closed_onstring
autopay_statusstring
retention_offersobject[]
card_settingsobject
benefit_selectionsobject
original_card_namestring
product_historyobject[]
cardholderstring
holder_typestring
card_number_last4string
intentional_duplicateboolean
entry_keystring
cardsobject[]

analyze_keep_cancel

Keep/downgrade/cancel analysis for a wallet card: marginal value vs annual fee, duplicate-benefit discounting, downgrade paths.

ScopeQuota
miles:readstandard
NameTypeRequired
card_namestringrequired

analyze_spending

Earning-potential analysis for a spending profile: for each category, the wallet's best card and the annual rewards value it produces -- pre-computed dollar figures, not estimates to redo.

ScopeQuota
miles:readstandard
NameTypeRequired
spendingobjectrequired
candidate_cardsstring[]
internationalboolean

get_eligibility

Application-rule status (Chase 5/24, issuer velocity limits) based on the user's wallet card-open dates.

ScopeQuota
miles:readstandard
NameTypeRequired
issuerstring
cardstring
memberstring

get_needs_attention

Everything that needs eyes on it right now -- in the wallet, and on the cards the user is only considering.

ScopeQuota
miles:readstandard
NameTypeRequired
credit_window_daysinteger
fee_window_daysinteger
sub_window_daysinteger

get_spending_strategy

Category-by-category map of which wallet card to use for every spending type.

ScopeQuota
miles:readstandard

No parameters.

get_travel_day_summary

A wallet-derived travel-day checklist: lounge access, checked-bag waivers, priority boarding, and other day-of-travel benefits your cards carry -- filtered to what actually applies on this trip. get_wallet_benefits filtering cannot substitute: a benefit that applies only "on this airline" or "on international travel" needs both pieces of context at once, which this tool supplies and a flat benefit list does not. airline: optional carrier to filter to. international: whether this is an international itinerary.

ScopeQuota
miles:readstandard
NameTypeRequired
airlinestring
internationalboolean

get_wallet_benefits

Credits and perks across the user's wallet (lounge access, travel credits, statement credits, protections).

ScopeQuota
miles:readstandard
NameTypeRequired
benefit_typestring
cardholderstring

get_wallet_cards

The wallet's cards, one per row -- the lean per-card reader. get_wallet_summary / get_wallet_benefits are whole-wallet; use this for "what X cards do I have" or a per-card field scan.

ScopeQuota
miles:readstandard
NameTypeRequired
issuerstring
rewards_categorystring
formatstring
include_closedboolean
cardholderstring

get_wallet_summary

The user's wallet: cards with fees, credits, and key benefits.

ScopeQuota
miles:readstandard
NameTypeRequired
cardholderstring

get_weekly_update

What changed in points and miles recently -- the digest as pull: a scheduled agent can poll this instead of waiting on the email digest. Local reads only (indexed article dates, a changelog artifact, in-memory dataset) -- no paid vendor, no query embedding, no Miles token spend.

ScopeQuota
miles:readstandard
NameTypeRequired
daysinteger
categoriesstring[]

remove_card

Remove a card from the user's wallet. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
lookup_card_namestring
card_idstring

update_card

Update a card in the user's wallet (nickname, status, notes, dates, or a product change). Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
lookup_card_namestring
card_idstring
nicknamestring
date_openedstring
anniversary_datestring
sign_up_bonusstring
signup_bonus_statusstring
signup_bonus_received_onstring
sub_deadlinestring
sub_targetnumber
notesstring
statusstring
closed_onstring
autopay_statusstring
dispositionstring
review_bystring
fee_posts_onstring
retention_offersobject[]
card_settingsobject
benefit_selectionsobject
original_card_namestring
product_historyobject[]
cardholderstring
holder_typestring
card_number_last4string
product_changeboolean
new_card_namestring
changed_datestring
directionstring
product_change_notestring
new_anniversary_datestring
expected_updated_atstring

Balances

get_balances

The loyalty-point balances the user has told Miles about -- Ultimate Rewards, Membership Rewards, airline and hotel currencies. Read-only: writing a balance (set_balances) is chat-only for now.

ScopeQuota
miles:readstandard
NameTypeRequired
programsstring[]

get_reconciliation_needs

QUESTIONS, not assertions, about the wallet that transaction data could answer -- the division of labor with a transactions agent (Copilot Money's MCP or similar): Miles knows what a transaction would MEAN; the agent knows where transactions ARE. Miles never sees spending, so it cannot confirm anything here itself.

ScopeQuota
miles:readstandard

No parameters.

Credits and certificates

get_certificates

Companion certificates and lounge-pass bundles across the wallet -- what's pending, available, used, or expired, plus an estimated total value. The quantity-aware sibling of get_free_nights (a lounge-pass bundle grants more than one use; a companion fare does not).

ScopeQuota
miles:readstandard
NameTypeRequired
statusstring
programstring

get_credit_usage

Which of the wallet's recurring card credits are still unused this period -- the read half of the reconciliation loop get_reconciliation_needs opens.

ScopeQuota
miles:readstandard
NameTypeRequired
card_namestring
only_unusedboolean

get_free_nights

Free-night hotel certificates across the wallet (Marriott/Hilton/ Hyatt/IHG-style annual and spend-triggered certs): status (available/pending/used/expired/may_have_expired/unconfirmed), estimated expiry, and estimated value.

ScopeQuota
miles:readstandard
NameTypeRequired
statusstring
programstring

set_certificate_status

Record a companion certificate or lounge-pass bundle's status. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
card_idstringrequired
cert_idstringrequired
statusstringrequired
countinteger
expected_used_countinteger
used_onstring
sourcestring

set_credit_usage

Record which recurring card credits were used, for a batch of periods -- the write half of the reconciliation loop get_reconciliation_needs opens. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
entriesobject[]required

set_free_night_status

Record a free-night certificate as used, or confirm a pending spend-threshold certificate was earned. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
card_namestring
statusstring
cert_idstring
used_onstring
card_idstring
sourcestring

Gift cards

add_gift_card

Save a gift card to the member's wallet. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
merchantstringrequired
amountnumber
expirationstring
card_number_last4string
notesstring

get_gift_cards

The wallet's stored gift cards: merchant, balance, and expiration only.

ScopeQuota
miles:readstandard

No parameters.

remove_gift_card

Delete a gift card from the wallet -- a spent card, or one saved by mistake. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
lookup_merchantstring
card_idstring

update_gift_card

Change a gift card already in the wallet -- most often its balance after the member spends some of it. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
lookup_merchantstring
card_idstring
merchantstring
amountnumber
expirationstring
card_number_last4string
notesstring

Elite status

get_elite_status

The airline/hotel elite status the user has told Miles about -- program, tier, when they said it, and whether Miles recognizes the pair. This is SELF-REPORTED status the member holds; it is not the status a credit card confers (get_wallet_benefits owns that).

ScopeQuota
miles:readstandard

No parameters.

get_status_benefits

What an airline/hotel elite TIER grants -- checked bags, lounge access, upgrades, breakfast, late checkout, points bonus, and an estimated annual value. Reference data about the program; it reads nothing about the member (get_elite_status is what they hold).

ScopeQuota
miles:readstandard
NameTypeRequired
programstringrequired
tierstring

remove_elite_status

Forget a stored elite status -- the member lost it, never had it, or it was recorded against the wrong program. Requires wallet-change access. Removes every stored spelling of the program.

ScopeQuota
miles:writestandard
NameTypeRequired
programstringrequired

set_elite_status

Record elite status the member says they hold. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
programstringrequired
tierstringrequired

Watchlist

add_to_watchlist

Add a card to the member's watchlist -- considering it, not yet applied for. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
card_namestringrequired
cardholderstring
notesstring

get_watchlist

Cards the member is considering -- not yet in their wallet.

ScopeQuota
miles:readstandard

No parameters.

remove_from_watchlist

Remove a card from the member's watchlist. Requires wallet-change access. Use lookup_card_name to identify the entry by name; if multiple entries match, use entry_id on retry.

ScopeQuota
miles:writestandard
NameTypeRequired
lookup_card_namestring
entry_idstring

update_watchlist_entry

Edit a watched card's cardholder, its notes, the date the member means to decide by, or any combination. Requires wallet-change access.

ScopeQuota
miles:writestandard
NameTypeRequired
cardholderstring
notesstring
decide_bystring
lookup_card_namestring
entry_idstring

Knowledge

Retrieval over indexed points-and-miles articles, guides and reviews -- reach for this when a question needs explanation or strategy that Miles' structured tools don't cover: how a transfer bonus mechanic actually works, what changed about a lounge network, how to think through a redemption trade-off. If the answer is a fact about the member's own wallet or the card dataset -- current benefits, transfer ratios, eligibility -- use the structured tool for it instead (get_card_info, get_transfer_partners, get_wallet_summary); those cost nothing beyond the shared per-day ceiling and are exact, and this tool is not a substitute for them.

ScopeQuota
miles:readexpensive
NameTypeRequired
querystringrequired