Skip to main content
Glama
ppt-generator
by haandol

ingest_modify_component

Validates, applies, saves, and renders a single-component edit to exactly one slide element after preparing a modify stage, returning the updated slide HTML path.

Instructions

Ingests a single-component edit: validate, apply to exactly one element, save, render.

Call AFTER a prepare_modify_component that returned stage="modify".

Args: project_id: Target project ID (required). slide_index: 1-based slide position. component_id: Target component id (same as prepare). modify_json: The ComponentModify JSON generated by the client. edit_context: Opaque context returned by prepare_modify_component. color_theme: Color theme ("dark" or "light").

Returns: JSON with modified_element, slide_html_path, optional lint.

After this call, share the returned slide_html_path with the user.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_id": "<project_id>",
      "slide_index": "<slide_index>",
      "component_id": "<component_id>",
      "modify_json": "<modify_json>",
      "edit_context": "<edit_context>"
    },
    "name": "ingest_modify_component"
  }
}

Input Schema

NameRequiredDescriptionDefault
project_idYes
color_themeNodark
modify_jsonYes
slide_indexYes
component_idYes
edit_contextYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.8.2
    • addedInput schema / properties / edit_context
      Added value: +{
      +  "title": "Edit Context",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "project_id",
      -  "slide_index",
      -  "component_id",
      -  "modify_json"
      -]New value: +[
      +  "project_id",
      +  "slide_index",
      +  "component_id",
      +  "modify_json",
      +  "edit_context"
      +]
  2. First observedv0.7.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose that this mutates exactly one element, saves, renders, and returns a slide path to share. It does not discuss failure modes, overwrite behavior, or permissions, leaving some mutation-related uncertainty.

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?

The description is front-loaded with the action and sequencing rule, then uses compact Args/Returns sections. Every sentence earns its place, including the final instruction about sharing slide_html_path.

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

Completeness4/5

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

For a mutation tool with no annotations but an output schema, the description covers the prerequisite, all parameters, the return payload, and the required post-call action. It omits error handling and validation failure behavior, which are the main remaining gaps.

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 0%, so the description must supply parameter meaning, and it does: slide_index is 1-based, component_id must match the prepare call, edit_context is opaque and returned by prepare_modify_component, and color_theme accepts "dark" or "light". It could go further on modify_json structure, but overall it compensates well for the schema gap.

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?

The description states a specific operation: ingest a single-component edit by validating, applying to exactly one element, saving, and rendering. It clearly distinguishes this ingest step from the prepare_modify_component sibling by describing the post-prepare workflow.

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

Usage Guidelines4/5

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

It explicitly says to call this after prepare_modify_component returned stage="modify", which gives a clear prerequisite and sequencing rule. It does not state when not to call it or compare against other ingest_* siblings, so it falls short of the strongest usage guidance.

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