Skip to main content
Glama
WilliamSmithEdward

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

List shapes and buttons

xlide_list_shapes
Read-onlyIdempotent

Lists Excel worksheet drawing-layer shapes—buttons, controls, pictures, charts—with covered cells, positions, linked values, and click macros to map how a workbook starts before VBA edits.

Instructions

Lists what sits on a worksheet's drawing layer: buttons, form controls, AutoShapes, text boxes, pictures, charts and groups, each with the cells it covers, its position in points and, where it has one, the macro a click runs. A form control also carries what it holds: a check box's state, a list's chosen item, a spinner's value and bounds, the cell it is linked to. Call it when asked how a workbook is started, or before renaming a Sub: a button's OnAction names a procedure and nothing rewrites it. ActiveX controls are listed but have no macro; their code is event procedures in the sheet's module. For a crowded sheet, use sheet with offset and next_offset to read later shapes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sheetNoOne worksheet. Empty lists every sheet's shapes.
offsetNoSkip this many shapes on one sheet.
file_pathYesAbsolute path to the Excel file.
max_resultsNoReturn at most this many per sheet.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.2.2
    • addedInput schema / properties / max_results
      Added value: +{
      +  "default": 300,
      +  "description": "Return at most this many per sheet.",
      +  "maximum": 300,
      +  "minimum": 1,
      +  "title": "Max Results",
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Skip this many shapes on one sheet.",
      +  "minimum": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description still adds real behavioral context: ActiveX controls are listed but carry no macro and their code lives as event procedures in the sheet module. That is meaningful beyond the annotations, though much of the rest describes return shape already covered by the output schema.

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 resource and its scope, then usage, then caveats. Every sentence carries information, but the return-value enumeration overlaps with the output schema, making it longer than strictly necessary for a tool that already publishes a return shape.

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 read tool with full annotations, a 100%-covered schema and an output schema, the description supplies the one thing that could cause a wrong call — the ActiveX/no-macro and OnAction-name-is-frozen quirks — plus the paging hint. Nothing an agent needs to invoke 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 coverage is 100%, so the baseline is 3. The description adds meaning the schema does not: an empty sheet means every sheet, and offset/max_results are framed as a paging mechanism for crowded sheets (it even mentions a next_offset token). Slight mismatch in that next_offset is named but not present in the input schema.

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 ('Lists what sits on a worksheet's drawing layer') and enumerates exactly which artifacts are covered (buttons, form controls, AutoShapes, text boxes, pictures, charts, groups). An agent can immediately distinguish this from xlide_list_sheets or xlide_list_forms.

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 concrete triggers ('when asked how a workbook is started, or before renaming a Sub') and explains why the second matters (OnAction names a procedure and nothing rewrites it). It also routes crowded-sheet reads to sheet/offset pagination, naming the alternative behavior explicitly.

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