Skip to main content
Glama

McpStamp Spreadsheets

Load a sheet into this session

sheet_load
DestructiveIdempotent

Upload data to work on. This hosted endpoint has no filesystem, so instead of a file path you send the data once with sheet_load and then pass its name as path to sheet_info, sheet_read, sheet_query, sheet_stats, sheet_find, sheet_add_column, sheet_convert and sheet_write. Give exactly one of csv (raw text, comma or tab separated), xlsx_base64 (a base64-encoded .xlsx workbook) or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): the url is fetched here with a 10 second timeout, at most 3 redirects, public http(s) hosts only, and a 2 MB cap, and a fetched file is stored as an .xlsx when it carries the PK zip header and as delimited text otherwise. Loaded sheets are kept for your token and survive between calls; the total is capped at 2 MB per token. Files the other tools write come back as a download link that is valid for one hour.

Input Schema

NameRequiredDescriptionDefault
csvNoRaw CSV or TSV text, including the header row
urlNourl: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused
nameYesName to refer to this data by: 1-64 characters of letters, digits, underscore or dash, e.g. "sales" or "sales.csv"
xlsx_base64NoBase64-encoded .xlsx workbook

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?

Rich disclosure beyond the annotations: 2 MB per-token storage cap, sheet persistence across calls, url fetch behavior (10s timeout, max 3 redirects, public http(s) only, 2 MB cap, PK-zip-header sniffing to decide xlsx vs delimited text), and the one-hour download link for outputs. Gaps: destructiveHint=true is never explained (what happens if `name` collides with an already loaded sheet), and the description describes fetching arbitrary public hosts while openWorldHint is declared false, a tension worth surfacing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, which is good, but the second sentence is a single run-on that crams url policy, mime detection, token storage limits, and download-link lifetime into one breath. The content mostly earns its place; the packaging could be broken into shorter statements for faster scanning.

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 stateful, no-filesystem ingestion tool with no output schema, the description covers everything an agent needs: how to supply data, how to reference it later, storage limits, network constraints, and how written files come back. Nothing essential 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, but the description adds real semantics the schema cannot express: the three data-source parameters are mutually exclusive ("give exactly one of"), and url is preferred over base64 above ~10 KB. It reinforces rather than duplicates the schema on the format specifics.

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 action (upload data into this session) on a specific resource, and immediately clarifies the session-scoped model: send data once, then refer to it by name as `path` in the eight named sibling tools. An agent can distinguish sheet_load from sheet_read/sheet_write without opening any 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?

Explicitly says to give exactly one of csv, xlsx_base64, or url, and gives the decision rule for url (recommended above about 10 KB) versus pasting base64. It also names the downstream tools that consume the loaded name, so the when-to-use and what-next are both spelled out.

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.