> ## 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.

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. 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 }`. 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. 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.

Over a connected app's own credential this 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` *(required)* | string | The card id (from list\_cards). |
| `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 "" to clear the card's 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 `"mode": "watch"` on the object to watch instead of refuse; 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": "office-supplies"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.