Skip to main content
Glama

Document Tools

Make a CSV file

make_csv_file

Use this when the user wants a CSV file, for example "put this table in a CSV", "make a spreadsheet file from these rows", "export this list as CSV for Excel". Pass columns (header names) and rows (each row has one cell per column; cells are text, numbers, true or false, or null), up to 2,000 rows and 100 columns. Optional: filename, excel_bom (start the file with a UTF-8 byte order mark so Excel reads accents) and escape_formulas (show cells starting with = + - or @ as text). Returns the CSV text, a download link that works for 24 hours, its expiry and the row count. It makes a file only; it does not open or edit spreadsheets.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYesUp to 2000 rows; each row has one cell per column.
columnsYesHeader names.
filenameNoFile name, letters and digits; .csv is added.
excel_bomNoStart the file with a UTF-8 byte order mark so Excel opens accents correctly. Default false.
escape_formulasNoPrefix text cells that start with = + - or @ with an apostrophe so a spreadsheet shows them as text. Default false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsNo
bytesNo
notesNo
statusYes
messageNoWhat to fix in the input when status is invalid.
csv_textNo
filenameNo
expires_atNoWhen the link stops working (ISO 8601 UTC).
download_urlNoLink that works for 24 hours, or null when no link could be made.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover only the safety profile (readOnlyHint=false, non-idempotent, non-destructive). The description adds behavior the annotations cannot convey: hard limits of 2,000 rows and 100 columns, that the download link expires in 24 hours alongside its expiry value and row count, and that excel_bom and escape_formulas default to false. This is materially more than the annotations provide.

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?

Single front-loaded paragraph that moves from trigger conditions to required parameters, optional parameters, return values, and scope boundary, with no filler sentences. The embedded quoted example phrases add slight surface noise, but every clause carries operational information.

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?

An output schema exists, yet the description still names the returned artifacts (CSV text, 24-hour download link, expiry, row count). Combined with the limits, defaults, and scope exclusion, an agent has everything needed to call this correctly without opening the schema.

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 already 100%, so the baseline would be 3. The description restates the parameter purposes but adds inline value by summarizing the accepted cell types and by carrying the row/column ceilings into the prose where an agent planning a call will see them. The explanation of excel_bom and escape_formulas largely duplicates the schema text, capping this below 5.

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 plus resource ("make a CSV file") and immediately delimits scope with "It makes a file only; it does not open or edit spreadsheets." That negative clause separates it cleanly from spreadsheet-editing behavior and from the file-creating sibling make_calendar_file, which is identified by output type.

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?

Gives concrete user-intent triggers ("put this table in a CSV", "export this list as CSV for Excel") that map intent to tool, which is stronger than typical guidance. It also states a when-not (not for opening or editing spreadsheets), but it does not name an alternative tool or describe routing when the user wants a different file format.

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