# update_card

Update an existing question/card

Agent View of the PolicyLayer registry record for `update_card`. HTML page: https://policylayer.com/tools/1luvc0d3-metabase-mcp/update-card

## Facts

- Tool: `update_card`
- Server: Metabase MCP (`1luvc0d3/metabase-mcp`) — https://policylayer.com/tools/1luvc0d3-metabase-mcp.md
- Homepage: https://github.com/1luvc0d3/metabase-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_card",
    "arguments": {}
  }
}
```

## Why update_card is rated Medium

This tool creates or modifies data reversibly—it changes card/question configurations without permanent deletion. The update is reversible (previous versions can be restored or the card can be updated again), placing it in the Write category rather than Destructive.

From the tool's own definition: "Tool name 'update_card' combined with description 'Update an existing question/card' indicates modification of existing data within Metabase's card/question system."

## Use case

AI agents use update_card to create or update resources in Metabase MCP, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Metabase MCP environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Metabase MCP:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "update_card": {
      "limits": [
        {
          "counter": "update_card_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Metabase MCP (29)

- `delete_card` — Destructive — https://policylayer.com/tools/1luvc0d3-metabase-mcp/delete-card.md
- `delete_dashboard` — Destructive — https://policylayer.com/tools/1luvc0d3-metabase-mcp/delete-dashboard.md
- `remove_card_from_dashboard` — Destructive — https://policylayer.com/tools/1luvc0d3-metabase-mcp/remove-card-from-dashboard.md
- `ask_data` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/ask-data.md
- `batch_execute` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/batch-execute.md
- `execute_card` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/execute-card.md
- `execute_query` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/execute-query.md
- `nlq_to_sql` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/nlq-to-sql.md
- `run_workflow` — Execute — https://policylayer.com/tools/1luvc0d3-metabase-mcp/run-workflow.md
- `compare_metrics` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/compare-metrics.md
- `explain_sql` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/explain-sql.md
- `generate_insights` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/generate-insights.md
- `get_card` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/get-card.md
- `get_collections` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/get-collections.md
- `get_dashboard` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/get-dashboard.md
- `get_database_schema` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/get-database-schema.md
- `list_cards` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/list-cards.md
- `list_dashboards` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/list-dashboards.md
- `list_databases` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/list-databases.md
- `optimize_sql` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/optimize-sql.md
- `search_content` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/search-content.md
- `trend_analysis` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/trend-analysis.md
- `validate_sql` — Read — https://policylayer.com/tools/1luvc0d3-metabase-mcp/validate-sql.md
- `add_card_to_dashboard` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/add-card-to-dashboard.md
- `create_card` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/create-card.md
- `create_collection` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/create-collection.md
- `create_dashboard` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/create-dashboard.md
- `move_to_collection` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/move-to-collection.md
- `update_dashboard` — Write — https://policylayer.com/tools/1luvc0d3-metabase-mcp/update-dashboard.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=1luvc0d3-metabase-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/1luvc0d3-metabase-mcp
