Skip to main content
Glama

update_cards

Idempotent

Update 1-500 card sources atomically. Supply card_id and only fields to change: front_html, back_html, tags. Omitted fields stay intact. Read list_cards first; for shared sources copy sibling_card_ids, and include only one edit per source. Editing a source updates its siblings, retaining their history. Note type is preserved; edits that remove cards are rejected: use delete_cards for confirmed removal. Follow the same field notes as create_cards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardsYesOn both sides keep the material's own terms, names and numbers. Write what plain text loses as HTML (10<sup>5</sup>, not 105; H<sub>2</sub>O; <br> between lines), and write each text in one script, as the material or the user writes it, never switching alphabets inside a word.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
createdYes
updatedYes
card_idsYes
source_idsYes
deck_totalsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / $defs / CardPatch / properties / back_html / description
      Added value: +"The answer to exactly what the front asks, as short as it can be while complete. Anything more (why, an example, a source) comes after the answer, set apart."
    • addedInput schema / $defs / CardPatch / properties / front_html / description
      Added value: +"The prompt, answerable on its own: one question, cue or cloze sentence carrying everything needed to answer it (the choices of a multiple-choice question, the context a case depends on). One idea per card: a list, a multi-part rule or a comparison becomes several cards, or a cloze with one blank per part."
    • addedInput schema / $defs / CardPatch / properties / tags / description
      Added value: +"A few short lowercase topic words (a chapter, a lesson, a theme), so the user can study one part later."
    • addedInput schema / properties / cards / description
      Added value: +"On both sides keep the material's own terms, names and numbers. Write what plain text loses as HTML (10<sup>5</sup>, not 105; H<sub>2</sub>O; <br> between lines), and write each text in one script, as the material or the user writes it, never switching alphabets inside a word."
  2. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare non-read-only, idempotent, non-destructive behavior, and the description adds substantial context beyond that: atomic batched application, omitted fields staying intact, sibling propagation with retained history, preserved note type, rejection of card-removing edits, and the 1-500 bound.

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?

Front-loads the operation and batch bound, then proceeds clause by clause through parameters, prerequisite, shared-source handling, and the delete alternative. Every sentence carries an actionable constraint; there is no filler or restated annotation.

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

Completeness5/5

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

With annotations covering the safety profile and an output schema covering returns, the remaining burden is constraints and workflows, which the description fully supplies: atomicity, partial-update semantics, sibling propagation, removal rejection, and the sibling_card_ids requirement. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, and the description adds real meaning on top: only fields to change need to be supplied, sibling_card_ids is required specifically for shared sources and must be copied exactly from list_cards, and field semantics follow create_cards. It stops short of enumerating individual field formats, which the schema already covers.

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?

States a specific verb and resource ('Update 1-500 card sources atomically') and names the exact scope and batch limit. It also distinguishes itself from delete_cards and points to create_cards for field conventions, so an agent can tell it apart from siblings without opening schemas.

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

Usage Guidelines5/5

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

Gives explicit prerequisites ('Read list_cards first'), a conditional workflow for shared sources ('copy sibling_card_ids, and include only one edit per source'), and a named alternative with its own condition ('edits that remove cards are rejected: use delete_cards for confirmed removal'). Nothing about when to choose this tool is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.