Skip to main content
Glama

Describe sheet

describe_sheet
Read-onlyIdempotent

Describes a worksheet's used range, panes, merges, and all tables, charts, PivotTables, slicers, images, notes, hyperlinks, validation, conditional formats, and sparklines with names and cells.

Instructions

Describe a sheet: used range, panes, merges and everything on it (tables, charts, PivotTables, slicers, images, notes, hyperlinks, validation, conditional formats, sparklines...) with names and cells. Slow on very large files.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
sheetYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
viewNo
notesNo
chartsNo
imagesNo
tablesNo
slicersNo
protectedNo
hyperlinksNo
print_areaNo
sparklinesNo
used_rangeYes
auto_filterNo
hidden_rowsNo
freeze_panesNo
pivot_tablesNo
merged_rangesNo
hidden_columnsNo
data_validationsNo
column_widths_charsNo
conditional_formatsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed65 schema fields changedv2.0.0
    • removedInput schema / properties / path / description
      Removed value: -"Path to an .xlsx, .xlsm, .xltx or .xltm file. Relative paths are resolved in the server's workbook directory when one is configured; otherwise use an absolute path."
    • removedInput schema / properties / path / title
      Removed value: -"Path"
    • removedInput schema / properties / sheet / description
      Removed value: -"Worksheet name, e.g. 'Sheet1'."
    • removedInput schema / properties / sheet / title
      Removed value: -"Sheet"
    • removedInput schema / title
      Removed value: -"describe_sheetArguments"
    • addedOutput schema / $defs / ChartInfo
      Added value: +{
      +  "properties": {
      +    "name": {
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    },
      +    "series": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "type": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ColumnWidth
      Added value: +{
      +  "properties": {
      +    "column": {
      +      "type": "string"
      +    },
      +    "width": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "column",
      +    "width"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / ConditionalFormatInfo / properties / range / title
      Removed value: -"Range"
    • removedOutput schema / $defs / ConditionalFormatInfo / properties / type / title
      Removed value: -"Type"
    • removedOutput schema / $defs / ConditionalFormatInfo / title
      Removed value: -"ConditionalFormatInfo"
    • removedOutput schema / $defs / DataValidationInfo / properties / formula1 / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / DataValidationInfo / properties / formula1 / title
      Removed value: -"Formula1"
    • addedOutput schema / $defs / DataValidationInfo / properties / formula1 / type
      Added value: +"string"
    • removedOutput schema / $defs / DataValidationInfo / properties / formula2 / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / DataValidationInfo / properties / formula2 / title
      Removed value: -"Formula2"
    • addedOutput schema / $defs / DataValidationInfo / properties / formula2 / type
      Added value: +"string"
    • removedOutput schema / $defs / DataValidationInfo / properties / operator / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / DataValidationInfo / properties / operator / title
      Removed value: -"Operator"
    • addedOutput schema / $defs / DataValidationInfo / properties / operator / type
      Added value: +"string"
    • removedOutput schema / $defs / DataValidationInfo / properties / range / title
      Removed value: -"Range"
    • removedOutput schema / $defs / DataValidationInfo / properties / type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / DataValidationInfo / properties / type / title
      Removed value: -"Type"
    • addedOutput schema / $defs / DataValidationInfo / properties / type / type
      Added value: +"string"
    • changedOutput schema / $defs / DataValidationInfo / required
      Previous value: -[
      -  "range",
      -  "type",
      -  "operator",
      -  "formula1",
      -  "formula2"
      -]New value: +[
      +  "range"
      +]
    • removedOutput schema / $defs / DataValidationInfo / title
      Removed value: -"DataValidationInfo"
    • addedOutput schema / $defs / ImageInfo
      Added value: +{
      +  "properties": {
      +    "height_cm": {
      +      "type": "number"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    },
      +    "width_cm": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / LinkInfo
      Added value: +{
      +  "properties": {
      +    "cell": {
      +      "type": "string"
      +    },
      +    "target": {
      +      "type": "string"
      +    },
      +    "tooltip": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "cell",
      +    "target"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / NamedRange
      Removed value: -{
      -  "properties": {
      -    "name": {
      -      "title": "Name",
      -      "type": "string"
      -    },
      -    "range": {
      -      "title": "Range",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "name",
      -    "range"
      -  ],
      -  "title": "NamedRange",
      -  "type": "object"
      -}
    • addedOutput schema / $defs / NoteInfo
      Added value: +{
      +  "properties": {
      +    "author": {
      +      "type": "string"
      +    },
      +    "cell": {
      +      "type": "string"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "cell",
      +    "text",
      +    "author"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / PivotInfo
      Added value: +{
      +  "properties": {
      +    "date_groups": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "range"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / SlicerInfo
      Added value: +{
      +  "properties": {
      +    "caption": {
      +      "type": "string"
      +    },
      +    "end": {
      +      "type": "string"
      +    },
      +    "field": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "type": "string"
      +    },
      +    "level": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    },
      +    "selected_items": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "start": {
      +      "type": "string"
      +    },
      +    "style": {
      +      "type": "string"
      +    },
      +    "target": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "kind",
      +    "caption",
      +    "target",
      +    "field"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / SparklineColors
      Added value: +{
      +  "description": "Hex RGB, e.g. '376092'.",
      +  "properties": {
      +    "axis": {
      +      "default": "000000",
      +      "type": "string"
      +    },
      +    "first": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "high": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "last": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "low": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "markers": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "negative": {
      +      "default": "D00000",
      +      "type": "string"
      +    },
      +    "series": {
      +      "default": "376092",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / $defs / SparklineInfo
      Added value: +{
      +  "properties": {
      +    "axis_max": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "individual",
      +            "same"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "default": "individual",
      +      "description": "Like axis_min."
      +    },
      +    "axis_min": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "individual",
      +            "same"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "default": "individual",
      +      "description": "Vertical axis: each sparkline's own, shared by the group, or a number."
      +    },
      +    "colors": {
      +      "$ref": "#/$defs/SparklineColors"
      +    },
      +    "dates": {
      +      "description": "One date per data point, e.g. 'Data!B1:F1'.",
      +      "type": "string"
      +    },
      +    "empty_cells": {
      +      "default": "gap",
      +      "enum": [
      +        "gap",
      +        "zero",
      +        "connect"
      +      ],
      +      "type": "string"
      +    },
      +    "hidden": {
      +      "description": "Plot hidden rows and columns.",
      +      "type": "boolean"
      +    },
      +    "line_width_pt": {
      +      "default": 0.75,
      +      "description": "Line only.",
      +      "maximum": 100,
      +      "type": "number"
      +    },
      +    "right_to_left": {
      +      "type": "boolean"
      +    },
      +    "show": {
      +      "description": "Points to color. markers: line only; win_loss: losses are negative.",
      +      "items": {
      +        "enum": [
      +          "markers",
      +          "high",
      +          "low",
      +          "first",
      +          "last",
      +          "negative"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "show_axis": {
      +      "type": "boolean"
      +    },
      +    "sparklines": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "description": "Cell to the data it plots.",
      +      "type": "object"
      +    },
      +    "type": {
      +      "default": "line",
      +      "enum": [
      +        "line",
      +        "column",
      +        "win_loss"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sparklines"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / TableInfo
      Added value: +{
      +  "properties": {
      +    "name": {
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "range"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ViewInfo
      Added value: +{
      +  "properties": {
      +    "active": {
      +      "type": "boolean"
      +    },
      +    "gridlines": {
      +      "default": true,
      +      "type": "boolean"
      +    },
      +    "headings": {
      +      "default": true,
      +      "type": "boolean"
      +    },
      +    "right_to_left": {
      +      "type": "boolean"
      +    },
      +    "selected_cell": {
      +      "default": "A1",
      +      "type": "string"
      +    },
      +    "show_formulas": {
      +      "type": "boolean"
      +    },
      +    "zoom": {
      +      "default": 100,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / auto_filter / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / auto_filter / title
      Removed value: -"Auto Filter"
    • addedOutput schema / properties / auto_filter / type
      Added value: +"string"
    • removedOutput schema / properties / chart_count
      Removed value: -{
      -  "title": "Chart Count",
      -  "type": "integer"
      -}
    • addedOutput schema / properties / charts
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ChartInfo"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / column_widths
      Removed value: -{
      -  "additionalProperties": {
      -    "type": "number"
      -  },
      -  "title": "Column Widths",
      -  "type": "object"
      -}
    • addedOutput schema / properties / column_widths_chars
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ColumnWidth"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / conditional_formats / title
      Removed value: -"Conditional Formats"
    • removedOutput schema / properties / data_validations / title
      Removed value: -"Data Validations"
    • removedOutput schema / properties / freeze_panes / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / freeze_panes / title
      Removed value: -"Freeze Panes"
    • addedOutput schema / properties / freeze_panes / type
      Added value: +"string"
    • addedOutput schema / properties / hidden_columns
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / hidden_rows
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / hyperlinks
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/LinkInfo"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / images
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ImageInfo"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / merged_ranges / title
      Removed value: -"Merged Ranges"
    • removedOutput schema / properties / name
      Removed value: -{
      -  "title": "Name",
      -  "type": "string"
      -}
    • addedOutput schema / properties / notes
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/NoteInfo"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / pivot_tables
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/PivotInfo"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / print_area
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / protected
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / slicers
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/SlicerInfo"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / sparklines
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/SparklineInfo"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / tables / items / $ref
      Previous value: -"#/$defs/NamedRange"New value: +"#/$defs/TableInfo"
    • removedOutput schema / properties / tables / title
      Removed value: -"Tables"
    • removedOutput schema / properties / used_range / title
      Removed value: -"Used Range"
    • addedOutput schema / properties / view
      Added value: +{
      +  "$ref": "#/$defs/ViewInfo",
      +  "default": {
      +    "active": false,
      +    "gridlines": true,
      +    "headings": true,
      +    "right_to_left": false,
      +    "selected_cell": "A1",
      +    "show_formulas": false,
      +    "zoom": 100
      +  }
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "name",
      -  "used_range",
      -  "freeze_panes",
      -  "auto_filter",
      -  "merged_ranges",
      -  "tables",
      -  "chart_count",
      -  "data_validations",
      -  "conditional_formats",
      -  "column_widths"
      -]New value: +[
      +  "used_range"
      +]
    • removedOutput schema / title
      Removed value: -"SheetDetails"
  2. Addedv1.1.1

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, non-destructive safety. The description adds a genuine performance warning ('slow on very large files') that annotations do not, but says nothing about output shape, cost drivers, or size thresholds.

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?

A single dense sentence front-loads the 'describe' verb then lists content types, followed by a short performance caveat. The parenthetical enumeration is long but informative rather than redundant.

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?

Output schema exists so return values need not be explained, and annotations carry the safety profile. The description adequately frames scope and the one real risk (size-driven slowness); only parameter naming guidance is missing.

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

Parameters2/5

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

Schema description coverage is 0% and the description says nothing about the path or sheet parameters, so neither field's expected format or semantics is documented anywhere. Description does not compensate for the coverage 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?

States a specific verb (describe) and resource (sheet) and enumerates the sheet contents it returns, distinguishing it from the read_range sibling that only returns cell values.

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?

Implies usage for getting a full picture of a sheet, but never states when to prefer this over read_range or describe_workbook. The performance caveat ('slow on very large files') hints at a when-not condition but does not name an alternative.

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