Skip to main content
Glama

r7_slide_object

Add or remove shapes, text boxes, and images on a PPTX slide, setting geometry, fill, border, text, and font in one call. Replace an image via its id while keeping placement intact.

Instructions

Add or remove objects on a PPTX slide: shapes (rectangle, rounded-rectangle, ellipse/circle, line, arrow, triangle, star, chevron, plus more), text boxes and PNG/JPEG images. An object gets its geometry, fill, border, text and font in the same call. Existing media and relationships are never damaged. Set action "replaceImage" with an existing image object's id to swap its picture while keeping its geometry and placement.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoLeft edge. A number is EMU; "2cm", "1in", "30px" and "24pt" also work.
yNoTop edge, same units as x.
boldNo
capsNoCapitalisation.
fillNoSolid fill colour, e.g. "#1F6FEB". Use "none" for no fill.
lineNoBorder colour, e.g. "#0B3D91". Use "none" for no border.
nameNoShape name, so a later call can address it by name.
sizeNoFont size in points, e.g. 24.
textNoText to put in the new object (single paragraph).
colorNoFont colour, e.g. "#C00000".
levelNoOutline level 0..8.
scaleNoFor images with no width or height: render at this multiple of the natural pixel size.
shapeNoFor addShape: rectangle, rounded-rectangle, ellipse, circle, line, arrow, triangle, diamond, pentagon, hexagon, star, chevron, plus, cloud, heart, cylinder, cube, donut, pie, or any DrawingML preset name.
widthNoWidth, same units as x.
actionYesWhat to do.
arrowsNoArrow heads for a line: true for one arrow at the end, { head, tail } with triangle/stealth/arrow/diamond/oval.
bulletNotrue adds a bullet, false removes it. Combine with numbered.
familyNoFont name, e.g. "Arial" or "Georgia". Applied to Latin, Cyrillic and complex scripts alike, so Cyrillic does not silently keep the theme font.
heightNoHeight, same units as x.
indentNoFirst-line indent, e.g. "-18pt".
italicNo
noFillNoRemove the fill entirely.
noLineNoRemove the border entirely.
strikeNo
zOrderNoPosition in the object list; 0 is furthest back. Omit to place the object on top.
spacingNoCharacter spacing in points (negative tightens).
filePathYesPath to the PPTX file.
numberedNotrue makes the list numbered instead of bulleted.
objectIdNoFor remove/replaceImage: the shape id reported by r7_slide_read.
rotationNoClockwise rotation in degrees.
alignmentNoHorizontal paragraph alignment.
highlightNoText highlight colour, e.g. "#FFFF00".
imagePathNoFor addImage/replaceImage: path to a PNG, JPEG, GIF, BMP, TIFF or WebP file. PNG and JPEG sizes are read from the file itself.
lineStyleNoBorder dash style: solid, dash, dot, lgDash, sysDot.
lineWidthNoBorder width in points, e.g. 1.5.
underlineNotrue for a single underline, false to remove it, or a style: double, heavy, dotted, dash, wavy.
marginLeftNoLeft indent, e.g. "24pt" or EMU as a number.
objectNameNoAlternative to objectId.
outputPathNoWrite to a copy instead of editing in place.
paragraphsNoText for the new object, one entry per paragraph; each may be a string or { text, runs?, bullet?, numbered?, alignment? }.
slideIndexNo0-based slide position (default 0).
spaceAfterNoSpace after the paragraph, in points.
lineSpacingNoProportional line spacing, 1 = single, 1.5 = one and a half.
spaceBeforeNoSpace before the paragraph, in points.
transparencyNoFont colour transparency 0..1 (0 = opaque).
paragraphIndexNoApply the paragraph options to this single paragraph (0-based) instead of all of them.
verticalAnchorNoWhere the text sits inside its box.
bulletCharacterNoCustom bullet glyph, e.g. "–".
lockAspectRatioNoFor images: keep the natural aspect ratio when only one of width/height is given (default true).
fillTransparencyNoFill transparency 0..1 (0 = opaque).
lineTransparencyNoBorder transparency 0..1.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does add real value by claiming existing media/relationships are "never damaged" and that geometry, fill, border, text and font are applied in one call. But it omits that 'remove' is a permanent destructive action, whether edits are in-place versus copied, and what the call returns (the schema references ids "reported by r7_slide_read", implying output exists but that is never stated).

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?

Three sentences, front-loaded with the core verb+resource and object types, then behavior, then the replaceImage special case. The parenthetical shape list is verbose but informative. No filler sentences.

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 51-parameter tool with 94% schema coverage and no output schema, the description supplies the essential framing: what can be created/removed, the single-call composition model, and the swap-picture mode. Since the schema covers parameters and no output schema must be explained, the remaining gap (the five action modes are only partially elaborated) is minor.

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

Parameters3/5

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

Schema description coverage is 94%, so the schema already documents nearly every parameter, including units, enums and defaults. The description mostly restates schema content (the shape preset list is duplicated) and adds only the replaceImage/geometry-preservation nuance. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ("Add or remove objects on a PPTX slide") and enumerates the object kinds (shapes, text boxes, images) plus the special replaceImage mode. It is clearly distinguishable from sibling r7_slide_read, though it does not explicitly contrast with r7_slide_edit or r7_slide_format, which could also parse as object-mutating.

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

Usage Guidelines3/5

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

It gives one concrete usage hint ("Set action \"replaceImage\" with an existing image object's id to swap its picture"), which points the agent at the right action. However, there is no guidance on when to use this tool versus r7_slide_edit, when to prefer addShape over addTextBox, or any exclusion criteria. Usage is implied rather than stated.

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