gantt-chart
Server Details
Build Gantt charts from your AI chat: tasks, dependencies, timeline spreadsheets. All data is local.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- theluckystrike/mcp-servers
- GitHub Stars
- 0
TDQS
Scored across 13 tools
The sheet_* tools each target a distinct operation (load, read, query, stats, find, info, add_column, convert, write, unload), and the license tools are separate. The only mild ambiguity is between sheet_read, sheet_query, and sheet_stats, all of which are read-like, but their descriptions clarify the intended use.
Most tools follow a consistent <domain>_<operation> pattern: sheet_load, sheet_read, sheet_query, sheet_write, and license_activate. Minor deviations exist (license_status is a state query rather than an action, sheet_files and sheet_info are noun-based), but the naming is still predictable.
Thirteen tools is a reasonable size for a spreadsheet utility server, but this server is named gantt-chart and none of the tools create or manage gantt charts. As a result, the count is inflated by irrelevant functionality relative to the stated purpose.
For a gantt-chart server, there are no tools for tasks, timelines, dependencies, milestones, or rendering. The spreadsheet operations may cover that sub-domain, but the surface is severely incomplete for the server's apparent purpose.
Available Tools
13 toolslicense_activateActivate licenseAInspect
Turn Pro on for this connection with key, an MCPL1.. issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | License key from checkout, MCPL1.<payload>.<signature> |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive, and the description adds useful behavioral detail: existing data under the token stays, and a wrong or expired key changes nothing. This goes beyond the annotation hints by explaining failure semantics and safety of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core action, then gives the key format and safety guarantees, and closes with the verification tool. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter activation tool with annotations covering the safety profile, the description is complete: it states what the tool does, what input is needed, what happens on failure, and how to confirm success. There is no missing critical information for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the key parameter and its format with 100% coverage. The description adds meaning by specifying that the key must be issued at checkout for this server or the bundle, which clarifies validity requirements not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it 'turns Pro on' for the connection using a license key. It also distinguishes itself from the sibling license_status tool by saying license_status confirms the activation. This leaves no ambiguity about what the tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: the key must be an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. It does not explicitly list exclusions or alternative tools, but it does reference license_status as the confirmation path, giving the agent a sense of the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
license_statusLicense statusARead-onlyIdempotentInspect
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context beyond annotations by specifying the JSON response contents and stating 'nothing changes,' reinforcing the read-only nature of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences cover output, purpose, usage context, and side-effect guarantee. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description sufficiently describes the return value. With no parameters, annotations covering safety, and a clear use case, nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema already fully documents that fact. The description explicitly says 'No arguments,' which is accurate and reinforces the schema without needing further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('Report') and a precise resource ('this endpoint's licence state for your token'), and enumerates the exact output fields: product, tier, reason, and checkout URL. This clearly distinguishes it from sibling tools like license_activate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to call it: 'Call it to explain a free-tier refusal.' This is clear contextual guidance, though it does not name alternatives or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_add_columnAdd a columnAInspect
Call this tool to add a computed column and save the result to a NEW file; the source is never modified unless out_path points at it. Returns the new file path, the row count and a preview of the first rows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the new column. It must not already exist on the sheet | |
| path | Yes | Path to the source .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded); it is never modified | |
| sheet | No | Sheet name; default is the first sheet | |
| values | No | Explicit values, one per data row, instead of a formula. Missing entries are left blank | |
| formula | No | Expression over the columns of each row, in the same expression language as sheet_query, e.g. "[Qty] * [Unit Price]" or '[Country] = "PL"'. Give either formula or values | |
| decimals | No | Round numeric formula results to this many decimals. Default: the widest decimal count of the columns the formula reads, capped at 2 when they all hold 2 or fewer (money in, money out); otherwise no rounding beyond float cleanup | |
| out_path | No | Output file; default <source>-plus-<column>.<same ext>. The source file is left untouched unless this points at it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations by explaining that the source file is never modified unless out_path points at it, and by summarizing the return value. It also clarifies the tool creates a new file, which is important given readOnlyHint is false and destructiveHint is false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff: it front-loads the tool's purpose and key safety behavior, then lists the return values. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for selecting and invoking this tool, especially paired with a fully documented schema. It explains what the tool does, where results go, what safety guarantee applies, and what the caller receives in return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all parameter meanings. The description does not add per-parameter semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: add a computed column and save the result to a new file. It also distinguishes the tool's core behavior from siblings by emphasizing that the source remains untouched unless out_path points at it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to call this tool: to add a computed column and produce a new file. It does not explicitly name alternatives or exclusion conditions, but the intended use is unmistakable from the first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_convertConvert fileAInspect
Call this tool to convert a sheet between excel (xlsx), csv and json. Writes a new file next to the source unless out_path is given; the source is never modified. Returns the new file path with its row and column counts.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target format; the default out_path takes this as its extension | |
| path | Yes | Path to the source .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded); it is never modified | |
| sheet | No | Sheet to convert; default is the first sheet. Only that one sheet is written | |
| out_path | No | Where to write; default is the source name with the new extension, next to the source. It must differ from the source path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false and destructiveHint=false, establishing this as a non-destructive write. The description adds valuable context beyond those flags: it writes a new file next to the source by default, guarantees 'the source is never modified', and discloses the return payload (new file path with row and column counts). This is consistent with the annotations and enriches them with concrete behavior an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste: purpose first, then side-effect behavior, then return value. Each sentence carries distinct information (what it does, where output goes, what comes back), and the canonical 'Call this tool to...' opener front-loads the decision-relevant purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by explaining the return value (new file path plus row and column counts). Combined with 100% schema parameter coverage and consistent annotations, an agent has what it needs to invoke correctly. The only minor gap is the unstated relationship to the sheet_load/sheet_unload workflow — it does not say whether the source file must be loaded in the workspace first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (path, to, sheet, out_path) are already well-documented in the schema. The description adds no parameter-level semantics beyond what the schema states — the 'source is never modified' claim and out_path default behavior are both already present in the schema's parameter descriptions. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource — 'convert a sheet between excel (xlsx), csv and json' — which clearly differentiates this tool from siblings like sheet_read, sheet_write, sheet_load, and sheet_add_column. An agent can immediately tell this is a format-conversion tool, not a read/write/query operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this tool to convert a sheet between excel (xlsx), csv and json' provides an explicit trigger condition for when to invoke it. However, it does not name alternatives or state when NOT to use it (e.g., no mention that in-place editing should use sheet_write). The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_filesList loaded sheetsAInspect
List the sheets loaded for this token, with their sizes and the storage left under the 2 MB cap.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It explicitly mentions the output (sizes, storage left) and the 2 MB cap, which are useful behavioral details. It does not explicitly state it is read-only, but a listing operation is implicitly non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant information. It directly conveys the purpose and output details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description adequately explains what will be returned (sheet names, sizes, remaining storage). It is complete enough for a simple listing tool, though it could optionally mention the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline of 4 applies. The description does not need to explain parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'sheets loaded for this token', including what information is returned (sizes and storage left). This distinguishes it from sibling tools like sheet_load or sheet_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for checking current loaded sheets and storage, but does not explicitly state when to use this tool versus alternatives like sheet_info or sheet_stats. No misleading information, but guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_findFind textAInspect
Call this tool to search every cell of a spreadsheet or CSV for text; built-in file readers cannot parse spreadsheets. Matching is case insensitive. Returns cell addresses with a preview of the row each hit is on.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded) | |
| text | Yes | Text to look for; matched case insensitively anywhere inside a cell. Up to 200 hits are returned | |
| sheet | No | Sheet name; default searches every sheet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral details beyond the annotations: matching is case insensitive, and it returns cell addresses with a row preview. Since annotations provide no positive safety signal and the tool is a search operation, this is reasonably transparent, though it could have explicitly stated it does not modify the file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core purpose with 'Call this tool to search every cell...' followed by a brief rationale and key behavioral details. Every sentence adds value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with full schema coverage, the description adequately explains return shape (cell addresses with row preview) and matching behavior. It is slightly incomplete in that it does not describe error conditions or explicitly confirm no side effects, but these are minor for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all three parameters. The description adds high-level behavior but does not materially extend parameter-level meaning beyond what the schema already provides, meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'search every cell of a spreadsheet or CSV for text.' This clearly distinguishes the tool from siblings like sheet_read and sheet_query, which read or query structured data rather than doing a raw cell-by-cell text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when searching spreadsheets for text, noting that 'built-in file readers cannot parse spreadsheets.' It does not explicitly name alternative sibling tools or state when not to use it, so it misses the top tier of explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_infoSpreadsheet overviewAInspect
Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Start here: sheet names, size, header row, column types and samples.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false, the description carries the full burden and does list the return content (sheet names, size, header row, column types, samples). However, it says nothing about whether the tool modifies anything, requires special permissions, or how it handles invalid paths, so behavioral disclosure is only partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The routing instruction and the prohibition on built-in readers come first, followed by a compact list of the output's contents, making it easy for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter info tool with no output schema, the description adequately states what the agent will get. It could be more complete by noting that the tool is read-only or what happens on missing/invalid files, but those are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single path parameter is 100% covered by the input schema, including accepted extensions and tilde expansion. The description only restates 'any spreadsheet or CSV file path', adding no syntax, formatting, or usage details beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a spreadsheet/CSV overview entry point, stating exactly what it returns: sheet names, size, header row, column types, and samples. It distinguishes itself from built-in file readers, but does not explicitly route between sibling sheet_* tools, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to call this tool for any spreadsheet or CSV file path and forbids using built-in readers for them, which is a strong when-to-use/when-not-to-use rule. It also positions the tool as 'start here', but it does not give explicit conditions for preferring siblings like sheet_read or sheet_stats over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_loadLoad a sheet into this sessionAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| csv | No | Raw CSV or TSV text, including the header row | |
| url | No | url: 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 | |
| name | Yes | Name to refer to this data by: 1-64 characters of letters, digits, underscore or dash, e.g. "sales" or "sales.csv" | |
| xlsx_base64 | No | Base64-encoded .xlsx workbook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the no-filesystem architecture, the storage-per-token model, the 2 MB cap, the url fetch behavior (timeout, redirects, host restrictions, size cap, file-type detection via PK zip header), and that written files return as one-hour download links. All critical side effects and constraints are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence carries essential information. It is front-loaded with the core purpose, then systematically covers input methods, url details, storage semantics, and the download-link behavior for written files. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple input modes, persistence, interplay with 11 sibling tools, and url fetching rules), the description covers all aspects an agent needs to call it correctly. It explains how loaded data is reused, the constraints on each input, and the retention policy. No output schema is needed for a load operation, and the description is sufficiently complete without it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, but the description adds substantial meaning: it explains the mutual exclusivity of csv/xlsx_base64/url, the recommended use of url for large data, and how `name` becomes the `path` argument in all downstream tools. This goes well beyond the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Upload data to work on' and immediately clarifies that this hosted endpoint has no filesystem, so data is sent once and referenced by name as `path` in sibling tools. This precisely distinguishes sheet_load from all read/query/write siblings, which operate on already-loaded sheets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states 'Give exactly one of csv, xlsx_base64 or url' and provides concrete selection guidance for url (recommended above ~10 KB) with detailed fetch constraints (10s timeout, ≤3 redirects, public http(s) only, 2 MB cap). It also clarifies that loaded sheets persist per token and the total is capped at 2 MB, which tells the agent when to unload or reuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_queryFilter, group and sort rowsAInspect
Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse them. Filters, groups, aggregates and sorts in one call. Totals: aggregate/group_by here, never hand sums over sheet_read rows.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | ||
| path | Yes | Path to the .xlsx or .csv file | |
| sort | No | Sort column; may be an aggregate alias such as total_units | |
| limit | No | Default 100 | |
| sheet | No | ||
| where | No | Filter, e.g. [Qty] >= 5 AND ([Status] = "open" OR [Status] = "new") | |
| select | No | Column names to return; default all (with group_by, defaults to the group columns plus the aggregates) | |
| group_by | No | Group rows by these columns before aggregating, e.g. ["Rep"] or ["Region","Rep"] | |
| aggregate | No | Aggregates per group, e.g. [{"col":"Units","fn":"sum","as":"total_units"}]. Defaults to a row count when group_by is given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description conveys that this is a single-call query operation and that built-in readers are insufficient, but it does not disclose whether the tool modifies state, requires a previously loaded sheet, or has other side effects. With all annotations false, the description carries the burden and only partially fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, information-dense segments, each earning its place. The 'Totals:' label front-loads the most critical usage instruction and the rest is free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema handles parameter detail well, but the description is thin for a 9-parameter tool with no output schema and no safety annotations. It omits return-format guidance ('as'), file-state prerequisites, and default behaviors, leaving the agent to infer several important invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds a decision rule beyond the schema: totals should be computed with aggregate/group_by here, not by summing sheet_read rows. It also maps the one-call idea to the where/group_by/aggregate/sort parameters. Syntax details are left to the schema, which remains the main reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (spreadsheet/CSV paths) and a precise verb set: filter, group, aggregate, sort. It also separates itself from built-in file readers and sheet_read by positioning itself as the place for totals, so an agent can tell what this tool does at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use rule ('Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse them') and explicitly steers aggregation work here rather than hand-summing sheet_read rows. It does not explicitly differentiate from sheet_stats or sheet_find, but the core routing guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_readRead rowsARead-onlyIdempotentInspect
Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Reads rows as a table, JSON or CSV; page with limit/offset or an A1 range.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | Output format, default table | |
| path | Yes | ||
| limit | No | Rows to return, default 100 | |
| range | No | A1 range such as A1:D50; overrides limit/offset | |
| sheet | No | Sheet name; defaults to the first sheet | |
| offset | No | Rows to skip, default 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the description does not need to repeat safety traits. It adds useful behavioral context by explaining raw row reading, supported output formats, and pagination via limit/offset or an A1 range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly packed sentences: the first provides the critical routing rule, and the second summarizes output formats and pagination options. Every sentence contributes value with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no output schema, the description gives enough to understand what it returns (rows as table, JSON, or CSV) and how to page through results. It does not specify the exact returned JSON/table shape or mention the sheet parameter, but the high-quality schema fills most of that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 83%, and the schema already documents as, limit, range, sheet, and offset with defaults and override behavior. The description mostly echoes these concepts without adding meaningful new parameter semantics beyond clarifying that path refers to spreadsheet/CSV files.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it reads rows from spreadsheet or CSV file paths and supports table, JSON, or CSV output. It distinguishes itself from built-in file readers, though it does not explicitly differentiate from sibling sheet tools such as sheet_query or sheet_load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule ('Call this tool for any spreadsheet or CSV file path') and an explicit when-not-to-use rule for built-in file readers, which cannot parse spreadsheets. This is direct routing guidance with a named alternative class of functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_statsColumn statisticsAInspect
Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Whole-column statistics: count, empty, distinct, min, max, sum, mean, median.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet | No | ||
| columns | No | Limit to these columns; default all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists the statistics returned, providing some output expectation, but it does not state whether the operation is read-only, how errors like missing files are handled, or the response format. Annotations are all false, so they provide no safety or side-effect context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the full message with no filler; the usage directive is front-loaded and the statistic list is compact. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Core purpose and output statistics are clear, but the definition is incomplete for an agent: it lacks sheet parameter semantics, output format, and read-only/side-effect guarantees. No output schema exists, so the description should carry more of this burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description only adds meaning to path by allowing spreadsheet or CSV paths; columns already has a schema description. The optional sheet parameter is never explained, and no guidance is given about how it applies to CSV files.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific operation: computing whole-column statistics (count, empty, distinct, min, max, sum, mean, median) for spreadsheet or CSV paths. It distinguishes the tool from built-in file readers, but it does not explicitly differentiate it from sibling sheet_* tools like sheet_read or sheet_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to call this tool for any spreadsheet or CSV file path and states that built-in file readers cannot parse spreadsheets and must not be used. This is clear usage context, though it does not discuss when to prefer sheet_query/sheet_read or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_unloadDelete a loaded sheetAInspect
Delete one sheet loaded for this token, freeing its space under the 2 MB cap.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses that the operation affects only sheets loaded for this token, indicating it does not delete stored files, and explicitly mentions the side effect of freeing space under the cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that efficiently conveys the action and its purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single required parameter and no output schema, the description provides enough context for an agent to understand what the tool does and when to invoke it, including the memory cap rationale.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'name' is not explicitly described in the schema or the description; it is implied to be the loaded sheet's name, but this is not stated outright. The description compensates only partially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete one sheet loaded for this token') and distinguishes it from file operations by specifying the in-memory scope and the 2 MB cap context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage when needing to free space under the memory cap, but does not explicitly mention alternatives or when not to use it. The context of the cap makes the appropriate usage fairly evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheet_writeWrite rowsAInspect
Call this tool to write rows to an xlsx, csv, tsv or json file; the extension of out_path picks the format. mode is new_file, append or overwrite. Other sheets are kept. Free: 500 rows per file.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | new_file writes a brand new file and refuses to clobber an existing one; append adds the rows under the existing data; overwrite replaces the file contents | |
| path | Yes | Source file for append/overwrite, or the intended file for new_file (~ is expanded) | |
| rows | Yes | Array of objects, whose keys become the headers, or an array of arrays with the header row first | |
| sheet | No | Sheet to write; default is the first sheet of the source, or "Sheet1" for a new file. Other sheets of an existing workbook are kept unchanged | |
| out_path | No | Where to write; default is a new file next to the source for new_file, or the source itself for append/overwrite. The output format follows this extension: .xlsx, .csv, .tsv or .json. An extension is required |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal a mutating, non-idempotent, non-open-world operation, so the description does not need to restate that. It adds useful behavioral detail beyond the annotations: "Other sheets are kept" clarifies side effects on existing workbooks, and "Free: 500 rows per file" discloses a quota constraint. No contradiction with the annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. It front-loads the core action, then packs the most decision-relevant facts—format selection, modes, preservation of other sheets, and row quota—into compact follow-up statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter write tool with a rich schema and no output schema, the description provides the key operational context: supported formats, mode choices, non-destructive effect on other sheets, and file-size limits. It does not describe the return value or error behavior, but the schema covers parameter semantics sufficiently for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed explanations for path, rows, mode, sheet, and out_path. The description mostly summarizes the mode enum and format selection rather than adding new meaning, so the baseline of 3 is appropriate; it does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "write rows to an xlsx, csv, tsv or json file." It also clarifies that the output format is chosen by the extension of out_path, which distinguishes it from sibling read/query/convert tools. The name and title align tightly with this described behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with "Call this tool to write rows," which gives a clear general context for when the tool applies. However, it does not name alternatives, state when not to use it, or explain how it differs from sibling tools like sheet_load, sheet_convert, or sheet_add_column. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
- First observed
license_activate - First observed
license_status - First observed
sheet_add_column - First observed
sheet_convert - First observed
sheet_files - First observed
sheet_find - First observed
sheet_info - First observed
sheet_load - First observed
sheet_query - First observed
sheet_read - First observed
sheet_stats - First observed
sheet_unload - First observed
sheet_write
Related MCP Connectors
AI project timelines & Gantt charts, plus enterprise resourcing, capacity & weekly status reporting.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
131Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
131
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables collaborative project planning by connecting an MCP-capable chat app to a generative AI that manages tasks and dependencies, with a live web UI for visualization.1GPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create interactive charts, diagrams, and tables displayed on a real-time dashboard, supporting multiple data sources with privacy-focused local execution.1MIT
- AlicenseBqualityFmaintenanceEnables AI agents and humans to collaboratively plan and manage tasks with a shared kanban and dependency graph, all stored locally.3129 npm81MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage tasks through YAML-based storage with subtask suggestions, status updates, and Mermaid Gantt chart generation. Supports hierarchical task structures with attributes like dependencies, milestones, and parallel execution.2654 npm1ISC
Glama MCP Gateway
Add one secure layer between your agents and this server.