Skip to main content
Glama

Excel Create

excel_create
Destructive

Creates a new Excel spreadsheet (.xlsx file) with headers and optional data rows. JSON numbers (integers and decimals) are written as numbers, so SUM() and charts work on them; JSON strings always stay text even when they look numeric ("007", "1e3", or " 42"), as do integer values longer than 10 digits because they are identifiers like a CUIT, CBU or phone number rather than quantities. JSON booleans are written as boolean cells. A string that starts with "=" is written as text, not a formula — use excel_write_cell to put a formula in a cell.

Input Schema

NameRequiredDescriptionDefault
pathYesOutput path for the .xlsx file
rowsNoArray of ROW ARRAYS — each row is itself an array of cell values (optional)
confirmNoIgnored; kept for older clients.
headersYesColumn headers
overwriteNoRequired (with confirm) to REPLACE a file that already exists at path. Without it an existing file is never touched.

Output Schema

NameRequiredDescriptionDefault
pathYesPath of the created .xlsx file
rowsYesNumber of data rows written
createdYesTrue when the file was created
headersYesColumn headers written

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true to create"New value: +"Ignored; kept for older clients."
  2. Changed2 schema fields changed
    • addedInput schema / properties / overwrite
      Added value: +{
      +  "description": "Required (with confirm) to REPLACE a file that already exists at path. Without it an existing file is never touched.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / rows / items / items
      Added value: +{
      +  "type": [
      +    "string",
      +    "number",
      +    "boolean",
      +    "null"
      +  ]
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / rows / description
      Previous value: -"Array of row arrays with data (optional)"New value: +"Array of ROW ARRAYS — each row is itself an array of cell values (optional)"
    • addedInput schema / properties / rows / items
      Added value: +{
      +  "description": "One row: the cell values, in column order",
      +  "type": "array"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / rows / description
      Previous value: -"Array of ROW ARRAYS — each row is itself an array of cell values (optional)"New value: +"Array of row arrays with data (optional)"
    • removedInput schema / properties / rows / items
      Removed value: -{
      -  "description": "One row: the cell values, in column order",
      -  "type": "array"
      -}
  5. Changed2 schema fields changed
    • changedInput schema / properties / rows / description
      Previous value: -"Array of row arrays with data (optional)"New value: +"Array of ROW ARRAYS — each row is itself an array of cell values (optional)"
    • addedInput schema / properties / rows / items
      Added value: +{
      +  "description": "One row: the cell values, in column order",
      +  "type": "array"
      +}
  6. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the description does not need to restate that it writes. The description adds substantial behavioral context beyond annotations: exact JSON-to-cell type coercion rules, preservation of numeric-looking strings as text, long-integer handling for identifiers, and the limitation that '=' strings are text rather than formulas. Overwrite/destructive specifics are left to the schema's overwrite parameter, so a 4 rather than 5 is appropriate.

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 front-loads the core action in the first sentence, then spends subsequent sentences on the non-obvious typing and formula behavior. Every sentence contributes useful information, and there is no redundant restatement of schema fields.

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 that an output schema exists and the overwrite behavior is fully described in the input schema, the description covers the critical non-obvious behavior: data typing, identifier preservation, and formula handling. No essential calling context 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 description coverage is 100%, so a baseline of 3 is warranted even without extra parameter prose. The description goes beyond the schema by explaining how row values are interpreted—numbers as numeric cells, strings as text even when numeric-looking, booleans as boolean cells—which materially helps an agent populate the rows parameter correctly.

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: creates a new Excel .xlsx file with headers and optional rows. It also distinguishes its behavior from excel_write_cell by explaining that strings beginning with '=' are text, not formulas, so an agent can tell when to use this tool versus the sibling.

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?

Clearly implies use for creating a new spreadsheet and explicitly redirects formula insertion to excel_write_cell. It does not enumerate when to avoid excel_create in favor of file_write or word_create/ppt_create, but for its primary scope the usage context is clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources