Skip to main content
Glama

Every Number

Make a dashboard from a spreadsheet

make_dashboard_from_file

Turn a spreadsheet export (Excel or CSV, up to 10 MB) into an Every Number dashboard. Returns a read-only dashboard link and every number on it with its receipt: the definition, the rows it used, and the rows it left out with the reason. Fixed rules lay out the screen and a database counts every number; no AI reads the file. Send the file as file_url (a Google Sheet shared as 'Anyone with the link', a Dropbox link, or a file in a public GitHub repository) or as file_content (CSV text, or base64 for Excel) with file_name. No account needed. Anyone with the link can open the dashboard, and it is deleted 24 hours after upload unless the person saves it. Limits: 5 files per 10 minutes and 20 per day from one place.

Input Schema

NameRequiredDescriptionDefault
fileNoA file the person attached in ChatGPT. ChatGPT fills this in. Other assistants send file_url or file_content instead.
sheetNoFor an Excel file with several sheets, the name of the sheet to read. Default: the sheet with the most data.
file_urlNoA link to the file: a Google Sheet shared as 'Anyone with the link', a Dropbox link, a file in a public GitHub repository or gist, or an Every Number sample such as https://everynumber.app/samples/tickets/tickets-export-2026-10-18.csv. Send this or file_content.
file_nameNoThe file's name with its extension, such as orders-october.csv or pipeline.xlsx. Needed with file_content. It also becomes the dashboard's title.
file_contentNoThe file itself, up to 10 MB: CSV or TSV text as it is, or an Excel file encoded as base64. Send this or file_url.
content_encodingNoHow file_content is written. Default: base64 for .xlsx, .xlsm and .xls, text for everything else.

Output Schema

NameRequiredDescriptionDefault
fileYes
keepYes
titleYes
screenYes
numbersYes
decisionYesThe question the screen is laid out to answer, picked by rules from the columns.
findingsYesWhat this file says, in sentences filled from the numbers.
headlineYesThe numbers across the top of the dashboard.
expires_atYesWhen the dashboard and the rows we read are deleted, unless it's saved (ISO 8601).
how_countedYes
dashboard_urlYesThe dashboard, read-only. Anyone with this link can open it until it's deleted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare a non-read-only, open-world, non-idempotent, non-destructive operation, and the description adds substantial context beyond them: no AI reads the file, fixed layout rules and a database compute every number, the dashboard is public to anyone with the link and expires 24 hours after upload unless saved. It also discloses rate limits of 5 files per 10 minutes and 20 per day, which annotations cannot express.

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?

The core purpose and the return value are front-loaded, and most sentences carry real information (retention, rate limits, privacy). It is a dense single paragraph, however, and the input-path details in the middle overlap with what the schema already documents, so a small amount of text does not earn its place.

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?

With an output schema present the description need not explain return values, yet it still summarizes the receipt structure usefully. Annotations, full schema coverage, and the described retention, limits and access model together leave no material gap for an agent deciding how to call this tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents file_url, file_content, content_encoding, sheet and file_name in detail. The description restates the file_url sources and the file_content/file_name pairing rather than adding new meaning such as precedence when both are supplied or how the nested 'file' object interacts with the top-level fields. Baseline 3 is appropriate.

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 first sentence states a specific verb and resource pair: turn an Excel/CSV spreadsheet into an Every Number dashboard, with the size ceiling included. It also names the concrete artifact produced (a read-only dashboard link plus every number with its receipt), so an agent knows exactly what comes back. No sibling tools exist, so no differentiation is required.

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?

The description gives explicit input-path guidance: use file_url for a Google Sheet shared as 'Anyone with the link', a Dropbox link, or a public GitHub file, or use file_content with file_name for raw CSV/base64. It also states 'No account needed' and the retention rule, which sets expectations for when this tool is appropriate. It stops short of stating when NOT to use it, but with no siblings there is little to exclude.

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