> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentcard.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# set_card_preset

> Put rules on a card, set the account default, or set one app's standing preset.

Connect to `https://mcp.agentcard.sh/mcp` with the **user's connection token** (or a `buy_token` for org-owned accounts).

## What it does

Put rules on a card, set the account default, or set one app's standing preset. Pass a built-in name, `ai_labs`, `weekday_meals`, `cli_only`, or `daily`; a saved name from list\_presets; a comma-separated list of built-ins; or inline JSON privileges as `{ name?, privileges }`. Omit `card_id` and `for_app` to set the account default. Pass null or "" with `card_id` to clear a card's rules: Agentcard stops checking that card, and a spending limit the card network already holds stays. Pass null or "" with `for_app` to clear that app's default. For a card, the response says what applies from now on, whether the card's spending limit changed, and whether the change needs a new card. The rules are explained in [Set rules on a card](/issuing/set-rules-on-a-card).

Over a connected app's own credential every scope returns `read_only`. Presets are the owner's rules on the app, so the app cannot change them. The app can still read them and remember a merchant with `allow_card_merchant`.

## Inputs

| Field                 | Type                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `card_id`             | string                 | The card id. Omit to set the account default preset (or `for_app`'s, if set).                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `for_app`             | string                 | Set a specific app's standing preset instead of the account default: `cli` for the CLI, a connected app's name, or its client id. Ignored when `card_id` is set.                                                                                                                                                                                                                                                                                                                                                             |
| `preset` *(required)* | string · null · object | Template name (`ai_labs`, `weekday_meals`, `cli_only`, `daily`), comma-separated templates, a saved name, inline JSON privileges, or `{ name?, privileges }`. Pass null or "" with `card_id` (or `for_app`) to clear that preset. Any category accepts `"enforcement": "watch"` inside a `category` privilege. A currency rule is `{ "kind": "currency", "currencies": ["USD", "EUR"] }`, codes or common names in any case, with `"enforcement": "watch"` for `Watch`; Agentcard enforces it and the card network does not. |

## Returns

| Field                  | Type    | Description                                                                                                                                                                   |
| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `message` *(required)* | string  | Human-readable result or guidance for the next step.                                                                                                                          |
| `preset`               | object  | Preset summary, or null when unrestricted: `id`, `name` (null for an anonymous preset), `version`, and a plain-English `summary` of the rules, remembered merchants included. |
| `policyId`             | string  | Card edits only: the id of the new preset version now bound to the card.                                                                                                      |
| `policyVersion`        | number  | Card edits only: the new version number.                                                                                                                                      |
| `summary`              | string  | Card edits only: plain-English summary of the rules now in force.                                                                                                             |
| `pushed`               | array   | Card edits only: rule kinds that were also updated on the card network (for example the spend limit).                                                                         |
| `agentcardOnly`        | array   | Card edits only: rule kinds enforced on Agentcard only; the network limit was not changed.                                                                                    |
| `needsNewCard`         | boolean | Card edits only: true when the change cannot be applied to this card and a new card is needed.                                                                                |
| `messages`             | array   | Card edits only: plain-English honesty notes about what landed where.                                                                                                         |

## Example call

```json theme={null}
{
  "tool": "set_card_preset",
  "arguments": {
    "card_id": "…",
    "preset": "lunch"
  }
}
```
