Skip to main content
Glama

Extract design kit

iwork_extract_design_kit
Idempotent

Extract fonts and colors from an existing Keynote deck or Numbers table to build a reusable design kit, capturing the brand look already in the file.

Instructions

Make a design kit from the user's own deck or table: heading and body fonts (Latin and Arabic) and the title, body and brand colours. .numbers reads the table's header and body styles (no app); .key reads every slide's title and body (needs macOS + Keynote). Parts the file doesn't show come from the nearest preset and are listed in notes. save=true with a name keeps it for reuse by name (contrast must pass). The file is never changed. Use when the user has a deck or table that already has their brand look. If they give colours and fonts directly use iwork_save_design_kit instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoName for the kit, e.g. "Resal" (required with save=true).
pathYesA .key deck or .numbers table that already has the look to capture.
saveNotrue = save it under name for reuse; contrast must pass.
sheetNoFor .numbers: the sheet holding the styled table.
tableNoFor .numbers: the styled table.
overwriteNotrue = replace a saved kit with the same name.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.4.1
    • addedInput schema / properties / name / description
      Added value: +"Name for the kit, e.g. \"Resal\" (required with save=true)."
    • addedInput schema / properties / overwrite / description
      Added value: +"true = replace a saved kit with the same name."
    • addedInput schema / properties / path / description
      Added value: +"A .key deck or .numbers table that already has the look to capture."
    • addedInput schema / properties / save / description
      Added value: +"true = save it under name for reuse; contrast must pass."
    • addedInput schema / properties / sheet / description
      Added value: +"For .numbers: the sheet holding the styled table."
    • addedInput schema / properties / table / description
      Added value: +"For .numbers: the styled table."
  2. First observedv2.4.0

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: the source file is never changed, .numbers parses styles without launching the app while .key needs macOS plus Keynote, unsupported elements fall back to the nearest preset and are disclosed in notes, and saving requires a name and a passing contrast check. These are real operational constraints the agent cannot derive from readOnlyHint/destructiveHint/idempotentHint alone.

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

Conciseness4/5

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

Front-loaded with the outcome, then platform behaviour, then side effects, then the routing rule – a sensible order. It is dense and the mid-section packs several clauses into long sentences, which costs a little readability, but nearly every clause carries information an agent needs.

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?

For a 6-parameter extraction tool with an output schema, the description covers platform requirements, side effects, fallback behaviour and naming/reuse semantics. Return values are covered by the output schema, so nothing material is missing for correct invocation.

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 coverage is 100%, so the baseline is 3, but the description goes further by explaining the save/name coupling ('save=true with a name keeps it for reuse by name') and the contrast gate, which the schema only mentions in passing. It stops short of clarifying sheet/table selection beyond what the schema already says.

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+resource (extract a design kit from a deck or table) and enumerates exactly what is captured: heading/body fonts in Latin and Arabic plus title, body and brand colours. It also explicitly names the sibling it is not (iwork_save_design_kit), so an agent can route without opening either schema.

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 an explicit when-to-use condition ('the user has a deck or table that already has their brand look') and an explicit alternative with the selecting condition ('if they give colours and fonts directly use iwork_save_design_kit instead'). Nothing 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.