Skip to main content
Glama
WilliamSmithEdward

xlide-excel-word-powerpoint-access-office-vba-mcp

Add or remove a shape or button

xlide_manage_shape
DestructiveIdempotent

Add or remove Excel worksheet shapes—buttons, checkboxes, text boxes, pictures, and more—while assigning macros and linked cells, then save the workbook.

Instructions

Adds a Forms control, an AutoShape, a text box, a line or a picture to a worksheet, or removes one, and saves the workbook. The usual case is a button that runs a macro: kind='button', a caption in text, and the procedure in macro as Proc or Module.Proc, written first. Place it with cell, its top-left cell, or with left and top in points; width and height are points, with a size to start from when left at 0. Check boxes, option buttons, lists and drop-downs take linked_cell, and lists and drop-downs list_range. A Forms control lives in four parts that have to agree, and they are written and removed together. Removing a shape that runs a macro leaves the macro; removing a chart is not offered. Excel workbooks only; .xlsx, .xlsm and .xlam.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topNoFor add without cell: points from the top.
cellNoFor add: the top-left cell, such as B2.
kindNoFor add: button, checkBox, optionButton, dropDown, listBox, scrollBar, spinner, label, groupBox, shape, textBox, line or picture.button
leftNoFor add without cell: points from the left.
textNoA control's caption, a shape's text, or a picture's alt text.
macroNoThe procedure a click runs: Proc or Module.Proc.
sheetYesWorksheet name, matched without case.
widthNoPoints. 0 picks one.
actionYes'add' or 'remove'.
heightNoPoints. 0 picks one.
geometryNoFor kind='shape': the preset, such as rect, roundRect or ellipse.
file_pathYesAbsolute path to the Excel file.
image_pathNoFor kind='picture': a PNG, JPEG or GIF file.
list_rangeNoThe cells a list or drop-down offers: $H$1:$H$9.
shape_nameYesThe shape's name: new for add, as listed for remove.
linked_cellNoThe cell a control writes its value to: $D$6.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses several behaviors beyond annotations: it saves the workbook, leaves the macro when a shape is removed, requires the four parts of a Forms control to agree, and restricts to Excel workbook types (.xlsx, .xlsm, .xlam). Annotations already mark it as destructive and readOnly=false, but the description adds concrete side-effect details that are essential for safe use. No contradiction with annotations.

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?

The description is dense but well-organized, starting with the general action, then the typical use case, placement rules, specific kind requirements, and caveats. Every sentence adds value, though it is longer than strictly necessary. It is front-loaded with the main purpose and key constraints, making it effective despite its length.

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?

Given the tool's complexity (16 parameters, multiple kinds, interlocking rules), the description covers the essential calling context: common patterns, placement semantics, parameter dependencies, side effects (saves workbook, leaves macro), and limitations (no chart removal, Excel-only). An output schema exists, so return values are not expected here. The description is thorough enough for an agent to invoke correctly.

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

Parameters5/5

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

Even though the schema covers 100% of parameters, the description adds crucial inter-parameter relationships: how kind='button' pairs with text and macro, how cell relates to left/top and width/height defaults, and that linked_cell/list_range apply to specific kinds. This goes well beyond the individual schema descriptions, clarifying when each parameter is relevant.

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 verb (adds/removes) with a clear resource (shapes, controls, etc.), and explicitly excludes charts ('removing a chart is not offered'), which distinguishes it from sibling xlide_add_chart. It also clarifies it saves the workbook, which is a distinct side effect. The purpose is unambiguous.

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?

The description provides rich usage context: the common button+macro pattern, placement options (cell vs. left/top), and which kinds require linked_cell or list_range. It also gives an explicit exclusion ('removing a chart is not offered'). However, it doesn't directly name sibling tools like xlide_list_shapes or xlide_set_shape_macro as alternatives for related tasks, leaving some routing to inference.

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