Skip to main content
Glama
switchwize

SwitchWize MCP

Official

Best Move This Week

best_move_this_week
Read-onlyIdempotent

Ranks this week's dollar-valued credit card and savings moves from your wallet: which held card to use per spend category, welcome offers at 12-month highs, transfer bonuses, and optional savings-rate actions.

Instructions

Given the credit cards a user holds, rank this week's dollar-valued actions: which held card to use per spend category, welcome offers at a 12-month high on cards not held, active transfer bonuses, and (optionally) the savings-rate move beside the card move.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
walletYesCard ids the user holds, in the form issuer:slug, e.g. ["chase:sapphire-preferred", "amex:gold-card"].
categoriesNoOptional spend categories to rank held cards for; defaults to all nine.
usedBenefitsNoOptional log of period credits already used this month; excluded from picks and counted toward renewal value. Omit to treat every credit as unused.
savingsBalanceNoOptional cash balance, to include the savings-rate move beside the card moves.
currentSavingsApyNoOptional current savings APY, used with savingsBalance.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
asOfNoISO timestamp of the underlying data this response reflects.
toolYes
errorNo
cardMovesNo
attributionNo
generatedAtYesISO timestamp this response was computed at.
savingsMoveNo
verified_atNo
unheldOffersNo
schemaVersionYes
methodologyUrlNo
freshnessStatusNo
transferBonusesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, open-world read, so the bar is lower. The description still adds real behavioral substance: the 12-month-high threshold for welcome offers, the restriction to cards not held, and that the savings move is contingent/optional. It does not disclose cost, latency, or freshness of 'this week's' data, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the input premise and then lists the ranked outputs in priority order. Nothing is wasted; the parenthetical for the optional savings move keeps the conditional out of the main clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values needn't be explained, and the description covers the input premise and the dimensions being ranked. It is slightly thin on how 'this week' is bounded and on what happens when wallet cards have no offers, but nothing critical for invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents wallet format, category defaults, usedBenefits semantics, and savings fields, making 3 the baseline. The description adds only light framing — 'per spend category' for categories and '(optionally)... beside the card move' for the savings pair — which is marginal beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('rank'), a specific resource ('this week's dollar-valued actions'), and enumerates the four action classes it produces (held-card category picks, 12-month-high welcome offers on unheld cards, transfer bonuses, optional savings move). No sibling tool does this synthesis, so an agent can separate it from get_card_offers or get_transfer_bonuses without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear: it operates 'Given the credit cards a user holds,' which frames the required wallet input and implies a personalized, portfolio-wide aggregation rather than a single-dataset lookup. It stops short of explicit exclusions or naming alternatives (e.g. 'use get_card_offers if you only want offers'), so it is clear context without routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.