Skip to main content
Glama

List spreadsheet columns

list_spreadsheet_columns
Read-only

Use this when the user wants to see what is in a spreadsheet before validating it, or asks which columns, types or values it has: "what columns are in this file", "profile this csv", "which column is the ID", "suggest validation rules". Attach a CSV, TSV or .xlsx file or paste the table. Returns each column's letter, name, detected type (date, email, phone, ID, ZIP, number, money, percent, text), filled and blank counts, unique values, examples, min/max for numbers, short value lists, and suggested rules to pass to check_spreadsheet. Does not report errors (use check_spreadsheet) and does not change the file.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_spreadsheet_columns"
  }
}

Input Schema

NameRequiredDescriptionDefault
fileNoThe spreadsheet to check: CSV, TSV or Excel .xlsx, e.g. customers.xlsx.
sheetNoSheet name or number in an Excel workbook, e.g. Orders or 2. Default: the first sheet with data.
tableNoOnly when no file is attached: the table pasted as CSV, tab-separated or a Markdown table with its header row, e.g. "id,date,email\n1,2026-02-30,ana@example.com". A list of rows also works.
header_rowNoOnly if the headings were detected wrongly: the row number of the header, e.g. 3.

Output Schema

NameRequiredDescriptionDefault
fileYes
kindYes
notesYes
columnsYes
suggested_rulesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, and the description reinforces this with 'does not change the file'. It goes beyond annotations by disclosing the full result payload, including the detected type taxonomy and that suggested rules can be passed downstream to check_spreadsheet, though it says nothing about limits on large files or how many columns are returned.

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 usage trigger, then user phrasings, then input modes, then return values, then exclusions – a sensible order. The sentence enumerating every field and type is long but each item is decision-relevant; the only mild redundancy is listing return details when an output schema exists.

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 four-parameter, nested-object tool with an output schema and full annotation coverage, the description covers purpose, inputs, outputs and exclusions sufficiently to call it correctly. The only omissions are guidance on the sheet and header_row parameters and any size or row-limit caveats for large files.

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% and each parameter (file, sheet, table, header_row) already has a descriptive string, so the baseline is 3. The description adds a small amount of routing meaning by framing the input as either 'Attach a CSV, TSV or .xlsx file or paste the table', making the file-vs-table choice explicit, but it never mentions the sheet selector or header override, which the schema must carry alone.

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 opens with a specific verb and resource ('see what is in a spreadsheet') and then enumerates the exact outputs (column letter, name, detected type, counts, examples, suggested rules). It explicitly contrasts with the sibling: 'Does not report errors (use check_spreadsheet)', so an agent can distinguish the two tools without opening either schema.

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 explicit triggering situations ('before validating it', 'which column is the ID', 'suggest validation rules'), quotes representative user utterances, and names the alternative tool with the condition that selects it. It also states a negative case (not for error reporting) and a non-mutation guarantee.

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