Skip to main content
Glama
prmbr42-bot

Smartsheet MCP Server

by prmbr42-bot

Smartsheet MCP Server

A production-ready Model Context Protocol (MCP) server that gives AI agents full read/write access to Smartsheet — equivalent to the native Claude MCP, but deployable as a remote HTTP endpoint for Microsoft 365 Copilot declarative agents and Copilot Studio.


Tools Exposed

Tool

Description

Read-only

smartsheet_list_sheets

List all accessible sheets

smartsheet_get_sheet

Read sheet data (columns + rows + cells) with filters & pagination

smartsheet_get_columns

Get column definitions and IDs for a sheet

smartsheet_add_rows

Add rows with cell values and hierarchy placement

smartsheet_update_rows

Update existing row cells, lock/unlock rows

smartsheet_delete_rows

Permanently delete rows

smartsheet_add_columns

Add new columns with type/options

smartsheet_get_report

Read paginated report data

smartsheet_list_reports

List all accessible reports

smartsheet_list_workspaces

List workspaces

smartsheet_browse_workspace

Browse all contents of a workspace

smartsheet_browse_folder

Browse folder contents

smartsheet_list_dashboards

List all dashboards (Sights)

smartsheet_list_sheet_discussions

Get all discussions on a sheet

smartsheet_list_row_discussions

Get discussions on a specific row

smartsheet_create_sheet_discussion

Start a new sheet-level discussion

smartsheet_create_row_discussion

Start a new row-level discussion

smartsheet_add_comment

Reply to an existing discussion

smartsheet_delete_comment

Delete a comment (own comments only)

smartsheet_list_attachments

List all attachments on a sheet

smartsheet_list_row_attachments

List attachments on a row

smartsheet_attach_url_to_row

Attach a URL link to a row

smartsheet_delete_attachment

Permanently delete an attachment

smartsheet_search

Full-text search across all Smartsheet assets

smartsheet_search_sheet

Full-text search within one sheet

smartsheet_get_cell_history

Audit trail — all historic values of a cell

smartsheet_get_sheet_version

Check if a sheet was modified (lightweight)


Related MCP server: Google Sheets MCP Server

Prerequisites

  • Node.js 18+

  • A Smartsheet API token — generate one at: Account → Apps & Integrations → API Access

  • For M365 Copilot deployment: an Azure App Service or Azure Container Apps to host the HTTP server


Local Development (stdio — Claude Desktop or Copilot Studio local)

npm install
npm run build

# Set your token
export SMARTSHEET_API_TOKEN=your_token_here

# Run in stdio mode (default)
npm start

Claude Desktop config (claude_desktop_config.json)

{
  "mcpServers": {
    "smartsheet": {
      "command": "node",
      "args": ["/absolute/path/to/smartsheet-mcp-server/dist/index.js"],
      "env": {
        "SMARTSHEET_API_TOKEN": "your_token_here"
      }
    }
  }
}

Remote HTTP Deployment (for M365 Copilot)

# Run in HTTP mode
TRANSPORT=http SMARTSHEET_API_TOKEN=your_token_here npm start

# Server listens at http://localhost:3000/mcp
# Health check: GET http://localhost:3000/health

Per-request Token (multi-user / OAuth scenarios)

Each request can pass its own token via header, overriding the server default:

X-Smartsheet-Token: user_specific_token

This supports SSO scenarios where each M365 user authenticates to Smartsheet with their own credentials.


Deploying to Azure App Service

# Build the project
npm run build

# Create a zip of the deployable files
zip -r deploy.zip dist/ package.json package-lock.json

# Deploy via Azure CLI
az webapp deploy --resource-group <rg> --name <app-name> --src-path deploy.zip

# Set environment variables in Azure
az webapp config appsettings set \
  --resource-group <rg> \
  --name <app-name> \
  --settings SMARTSHEET_API_TOKEN=your_token TRANSPORT=http

Your MCP endpoint will be:

https://<app-name>.azurewebsites.net/mcp

Wiring into M365 Copilot (Declarative Agent)

  1. Open Copilot Studio → Create or edit an agent

  2. Go to ActionsAdd an actionModel Context Protocol (MCP)

  3. Enter your server URL: https://<app-name>.azurewebsites.net/mcp

  4. Select the tools you want the agent to use

  5. Configure authentication (API key or OAuth)

  6. Publish the agent

ℹ️ MCP is now generally available in Copilot Studio as of mid-2025.

Option B — VS Code + Microsoft 365 Agents Toolkit (for IT/Dev)

  1. Install Microsoft 365 Agents Toolkit extension in VS Code

  2. Create a new Declarative Agent from the toolkit

  3. Choose Add Action → Start with an MCP server

  4. Enter your MCP endpoint URL

  5. The toolkit auto-generates the plugin manifest by reading your tool schemas

  6. Pick which tools to expose

  7. Configure OAuth (Smartsheet supports OAuth 2.0) or API key auth

  8. Deploy to your M365 tenant via Microsoft 365 Admin Center → Copilot → Agents

Option C — Direct Manifest (Advanced)

The Agents Toolkit auto-generates ai-plugin.json and openapi.json from your MCP server's tool list. These files go into the declarative agent's appPackage/ directory and are uploaded to the Teams App Catalog.


Authentication Options for M365

Method

When to use

API Key in header (X-Smartsheet-Token)

Single shared service account token; simplest setup

OAuth 2.0 (per user)

Each user authenticates with their own Smartsheet account; required for per-user audit trails

Managed Identity + Key Vault

Best practice for production Azure deployments; store token in Key Vault, bind to App Service MSI

Smartsheet OAuth App Setup (for per-user auth)

  1. Go to Smartsheet Developer Portal

  2. Create a new app → Set redirect URI to https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect

  3. Copy the Client ID and Client Secret

  4. In Agents Toolkit: choose OAuth (static registration) and paste these values


Environment Variables

Variable

Required

Description

SMARTSHEET_API_TOKEN

Yes (unless using per-request header)

Smartsheet API Bearer token

TRANSPORT

No (default: stdio)

Set to http for remote/Copilot deployments

PORT

No (default: 3000)

HTTP listen port


Known M365 Copilot Limitations

  • Only tools are supported — MCP resources and prompts are ignored by Copilot

  • Nested object schemas with minimum/maximum/default on nested properties can fail manifest validation in the Agents Toolkit — strip these if provisioning fails

  • Max 5 tools injected inline when ≤5 plugins are defined in a declarative agent manifest; above 5, the orchestrator selects dynamically

  • Confirmation prompts: Read-only tools (annotated readOnlyHint: true) don't require user confirmation; write tools do on first call


Project Structure

smartsheet-mcp-server/
├── src/
│   ├── index.ts                     # Entry point, transport selection
│   ├── types.ts                     # Smartsheet entity types
│   ├── constants.ts                 # API base URL, limits
│   ├── services/
│   │   └── smartsheet.ts            # API client, auth, error handling
│   └── tools/
│       ├── sheets.ts                # Sheet CRUD, rows, columns
│       ├── reports-workspaces.ts    # Reports, workspaces, folders, dashboards
│       ├── discussions-attachments.ts  # Comments, attachments
│       └── search.ts               # Search, cell history, version check
├── dist/                            # Compiled JS (after npm run build)
├── package.json
├── tsconfig.json
└── README.md

Available Tools

27 tools
smartsheet_add_columnsAdd Columns to SheetA

Add one or more new columns to a Smartsheet sheet. Supported column types: TEXT_NUMBER, DATE, DATETIME, PICKLIST, CHECKBOX, CONTACT_LIST, DURATION, PREDECESSOR, AUTO_NUMBER, ABSTRACT_DATETIME. Picklist/dropdown columns require an 'options' array.

Args:

  • sheet_id (number): Target sheet ID

  • columns (array): Column definitions, each with:

    • title (string): Column header text

    • type (string): Column type (TEXT_NUMBER, DATE, PICKLIST, CHECKBOX, CONTACT_LIST, etc.)

    • index (number, optional): 0-based position; appends if omitted

    • options (string[], optional): Dropdown options for PICKLIST columns

    • width (number, optional): Column width in pixels

Returns: Created column definitions with assigned IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
columnsYes

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses supported column types, required options for picklist, and the return value (created column definitions with assigned IDs). Since annotations are all false (no readOnly, no destructive hints), the description adds useful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is concise, with a one-line summary, a bullet list of types, and a structured args section. Every sentence adds value without redundancy.

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?

The description covers the purpose, parameter details, and return value. However, it lacks information about error conditions, permissions required, or whether the sheet must exist. Still, for a straightforward mutation tool, it is nearly complete.

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

Parameters5/5

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

Despite the context indicating 0% schema description coverage, the description provides detailed semantics for the 'columns' parameter, including optional fields like index, options, and width, and explains the meaning of index (0-based position, appends if omitted). This adds significant value over the schema 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 clearly states 'Add one or more new columns to a Smartsheet sheet' using a specific verb and resource. This distinguishes it from siblings like smartsheet_get_columns (reading) and smartsheet_add_rows (adding rows).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like smartsheet_update_rows to modify columns. The description lists supported column types but does not specify use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_add_commentAdd Comment to DiscussionA

Add a reply comment to an existing discussion on a sheet.

Args:

  • sheet_id (number): Target sheet ID

  • discussion_id (number): Target discussion ID

  • comment_text (string): Text of the comment to add

Returns: New comment ID and creation timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
discussion_idYes
comment_textYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations are provided (non-readOnly, non-destructive, non-idempotent) and the description correctly indicates a write operation ('Add'). The description adds little beyond the action itself; it neither contradicts nor significantly enriches the behavioral context provided by annotations.

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

Conciseness5/5

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

The description is extremely concise: a single sentence for purpose and a short bulleted list for parameters and returns. Every sentence earns its place, and the key purpose is front-loaded.

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 simple tool with clear annotations and schema, the description covers purpose, parameters, and return values (comment ID and timestamp). No critical omissions given the tool's low complexity.

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 0%, so the description bears the full burden. It lists all three parameters with brief explanations (e.g., 'Target sheet ID'). This is functional but minimal; it adds only natural language labels beyond what the schema already defines (types, constraints).

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 explicitly states 'Add a reply comment to an existing discussion on a sheet,' clearly identifying the verb (add), resource (reply comment), and context (existing discussion on a sheet). This distinguishes it from siblings like smartsheet_create_row_discussion (creates new discussion) and smartsheet_delete_comment (deletes comment).

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 implies that an existing discussion is required, which suggests using create tools first. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to reply vs. create a new discussion), nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_add_rowsAdd Rows to SheetA

Add one or more rows to a Smartsheet sheet. Each row specifies cells as columnId/value pairs. Rows can be positioned at top, bottom, or relative to a parent/sibling row for hierarchical (indent) structures.

Args:

  • sheet_id (number): Target sheet ID

  • rows (array): Array of row objects, each containing:

    • cells (array): Array of {columnId, value} objects

    • to_top (boolean, optional): Insert at top of sheet

    • to_bottom (boolean, optional): Insert at bottom (default)

    • parent_id (number, optional): Make this a child of this row ID

    • sibling_id (number, optional): Insert as sibling below this row ID

    • expanded (boolean, optional): Whether row is expanded (default true)

Returns: Newly created row IDs and updated sheet version.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesTarget sheet ID
rowsYesRows to add

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnly=false, consistent with the mutation behavior described. The description discloses that the tool returns newly created row IDs and updated sheet version. It does not contradict annotations. Additional details like idempotency (false) or potential failure conditions (e.g., sheet locked) are missing, but the essential behavior is transparent.

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

Conciseness5/5

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

The description is succinct: one sentence for the core purpose followed by a bulleted args list. Every sentence earns its place, with no fluff. The structure is front-loaded with the main action, and the args are clearly separated, aiding quick comprehension.

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?

Given the complexity (2 parameters, one a nested array), the description adequately covers the purpose, parameter semantics, and return value. It does not include error handling or rate limits, but for a mutation tool with well-documented parameters, it provides enough context for correct invocation.

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?

Input schema covers 100% of parameters, providing a baseline of 3. The description adds significant value beyond the schema: it explains the purpose of positioning parameters (to_top, to_bottom, parent_id, sibling_id) and clarifies that cells are columnId/value pairs. It also describes the structure of row objects in the args list, making the tool more intuitive.

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 clearly states 'Add one or more rows to a Smartsheet sheet.' with a specific verb (add) and resource (rows to a sheet). It distinguishes from sibling tools like update_rows and delete_rows by focusing on addition. The description also provides details about positioning, making the purpose unambiguous.

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 explains that rows can be positioned at top, bottom, or relative to parent/sibling rows for hierarchical structures. It implies usage for adding new rows, but does not explicitly state when to not use it (e.g., for updates). However, the context from sibling tool names provides differentiation, so the guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_attach_url_to_rowAttach URL to RowA

Attach a URL link to a specific row in a Smartsheet sheet. Creates a hyperlink attachment that appears in the row's attachment panel.

Args:

  • sheet_id (number): Target sheet ID

  • row_id (number): Target row ID

  • url (string): URL to attach

  • name (string): Display name for the attachment

  • description (string, optional): Description text

Returns: New attachment ID and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idYes
urlYesURL to attach
nameYesDisplay name
descriptionNo

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that it creates a hyperlink attachment and returns a new attachment ID and metadata. No annotation contradictions. Lacks details on error conditions or rate limits.

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

Conciseness5/5

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

Concise with only necessary information. Structured with purpose, Args, and Returns. No extraneous text.

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?

Covers purpose, parameters, and return value. For a simple tool with no output schema and 5 params, this is sufficient. Lacks example usage or prerequisites.

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?

The Args section adds meaning beyond the schema, explaining each parameter's role (e.g., 'Target sheet ID'). Schema covers 40% but description compensates by listing all.

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?

Clearly states 'Attach a URL link to a specific row' and distinguishes from siblings like smartsheet_list_attachments. The verb 'attach' and resource 'URL to row' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes the action but does not provide explicit guidance on when to use this tool versus alternatives like uploading files or adding comments. Only implied by context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_browse_folderBrowse Folder ContentsA
Read-onlyIdempotent

Get the contents of a Smartsheet folder: sheets, reports, sub-folders, and dashboards.

Args:

  • folder_id (number): Smartsheet folder ID

  • load_all (boolean, optional): Include nested sub-folder contents

Returns: Folder contents with IDs for all child resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYes
load_allNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description carries a lower burden. The description adds that the tool returns 'folder contents with IDs for all child resources', but does not disclose additional behaviors such as pagination, error handling, or authentication requirements beyond what annotations imply.

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 description is concise, with a one-sentence purpose, an Args section that explains parameters, and a Returns line. It is well-structured and front-loaded, but the inclusion of a Returns line may be considered slightly redundant given the context.

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?

Given the tool's simplicity, the description covers the main purpose, parameters, and return value. It does not address error cases or edge conditions, but for a straightforward browse operation with strong annotations, it is adequate. The absence of an output schema is partially compensated by the description.

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?

The input schema has 0% description coverage, so the description must compensate. It clearly explains 'folder_id' as 'Smartsheet folder ID' and 'load_all' as 'Include nested sub-folder contents', providing meaning beyond the raw types. However, it does not specify the format of the folder ID or any constraints beyond the schema's exclusiveMinimum.

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 uses a specific verb 'Get' and identifies the resource as 'contents of a Smartsheet folder'. It lists the types of contents (sheets, reports, sub-folders, dashboards) and distinguishes itself from the sibling tool 'smartsheet_browse_workspace' by focusing on folders rather than workspaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving folder contents and explains the 'load_all' parameter for nested contents, but it does not provide explicit guidance on when to use this tool versus alternatives like 'smartsheet_list_sheets' or 'smartsheet_browse_workspace'. No exclusions or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_browse_workspaceBrowse Workspace ContentsA
Read-onlyIdempotent

Get the full contents of a workspace: all sheets, reports, folders, and dashboards. Use this to discover what resources exist in a workspace before accessing them.

Args:

  • workspace_id (number): Smartsheet workspace ID

  • load_all (boolean, optional): If true, include nested folder contents

Returns: Workspace contents tree with IDs for all sheets, reports, folders, dashboards.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYes
load_allNoInclude nested folder contents

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds beyond annotations by specifying the return type ('Workspace contents tree with IDs') and explaining the load_all parameter's effect. This provides useful context without contradicting annotations.

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

Conciseness5/5

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

The description is concise with four short sentences, no fluff, and front-loaded with purpose. It efficiently structures the core action and parameter details without redundancy.

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?

Given the tool's simplicity and no output schema, the description adequately explains what it returns (a tree with IDs) and the optional nested loading. It covers the essential aspects, though it could mention potential large response handling or error scenarios.

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

Parameters5/5

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

The description adds meaning for the workspace_id parameter (type and purpose) which is missing from the schema, and reiterates the load_all parameter's behavior. With 50% schema description coverage, the description fully compensates by documenting all parameters clearly.

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 clearly states the tool's purpose with a specific verb ('Get the full contents') and resource ('workspace'), and lists all item types (sheets, reports, folders, dashboards). It effectively distinguishes from the sibling smartsheet_browse_folder by focusing on workspace-level content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context ('Use this to discover what resources exist in a workspace before accessing them'), but does not explicitly mention when not to use it or alternatives like smartsheet_browse_folder for folder-level browsing. The 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.

smartsheet_create_row_discussionCreate Row DiscussionA

Create a new discussion (with initial comment) on a specific row in a sheet.

Args:

  • sheet_id (number): Target sheet ID

  • row_id (number): Target row ID

  • comment_text (string): Initial comment text

Returns: New discussion ID and comment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idYes
comment_textYes

TDQS

A3.7/5.0
Behavior3/5

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

The description adds context beyond annotations by specifying that the tool creates a discussion with an initial comment and returns IDs. However, it does not disclose side effects such as notifications or permission requirements, leaving some behavioral traits unclear.

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

Conciseness5/5

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

The description is concise and well-structured, front-loading the purpose, then listing arguments and return value. Every sentence provides necessary information without redundancy.

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?

Given the tool's simplicity, the description covers the basic functionality and indicates return values. It is largely complete but could benefit from mentioning error conditions or prerequisites (e.g., existence of sheet/row).

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

Parameters2/5

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

With 0% schema description coverage, the description provides minimal added meaning by listing parameter names and brief descriptions like 'Target sheet ID'. These add little beyond the property names themselves, failing to compensate for the lack of schema descriptions.

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 clearly states the action (create), the resource (discussion on a row), and includes a specific verb+resource. It distinguishes from sibling tools like smartsheet_create_sheet_discussion (sheet-level) and smartsheet_add_comment (adds to existing discussion).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. It implies usage through its description but lacks explicit context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_create_sheet_discussionCreate Sheet DiscussionA

Create a new discussion (with initial comment) at the sheet level in Smartsheet.

Args:

  • sheet_id (number): Target sheet ID

  • comment_text (string): Initial comment text for the discussion

Returns: New discussion ID and comment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
comment_textYesText for the initial comment

TDQS

A3.7/5.0
Behavior2/5

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

Annotations indicate mutation (readOnlyHint=false) and non-idempotent. Description states it creates a new discussion and returns IDs, but does not disclose prerequisites, side effects, or error conditions beyond that. Minimal added value over annotations.

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

Conciseness5/5

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

Three sentences: one for purpose, two for parameters and return. No fluff, well-organized, and efficiently conveys necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Mentions return values (discussion ID and comment ID) and sheet level distinction, but lacks details on prerequisites (sheet existence), potential errors, or relation to other tools. Adequate but not fully complete given no output 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 has 50% description coverage (only comment_text described). Description adds clarifying text for sheet_id ('Target sheet ID') and confirms comment_text role. Provides meaningful, concise parameter descriptions that complement the schema.

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?

Clearly states 'Create a new discussion (with initial comment) at the sheet level', using a specific verb and resource. Distinguishes from sibling smartsheet_create_row_discussion by specifying 'sheet level'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for sheet-level discussions but does not explicitly mention when not to use (e.g., for row-level discussions use smartsheet_create_row_discussion) or alternatives. Lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_delete_attachmentDelete AttachmentA
Destructive

Permanently delete an attachment from a Smartsheet sheet. This action is IRREVERSIBLE. Verify the attachment ID before proceeding.

Args:

  • sheet_id (number): Sheet ID containing the attachment

  • attachment_id (number): Attachment ID to delete

Returns: Deletion confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
attachment_idYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already set destructiveHint=true. The description reinforces this by stating 'IRREVERSIBLE' in all caps, adding emphasis beyond the annotation. No other behavioral traits (e.g., permissions, rate limits) are mentioned, but the confirmation aligns with annotations.

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?

Description is concise with three sentences plus Args/Returns sections. The irreversible warning is front-loaded. Returns section is minimal but adequate.

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 simple delete operation, the description covers purpose, parameters, and outcome (deletion confirmation). No output schema, but the description provides sufficient context 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.

Parameters4/5

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

Input schema has 0% description coverage, but the description lists both parameters with clear explanations: 'Sheet ID containing the attachment' and 'Attachment ID to delete.' This adds meaning beyond the schema's raw constraints, compensating for the lack of schema descriptions.

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 clearly states 'Permanently delete an attachment from a Smartsheet sheet,' specifying the verb (delete) and resource (attachment). This distinguishes it from sibling tools like smartsheet_delete_comment or smartsheet_delete_rows.

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?

Explicitly warns to verify the attachment ID before proceeding due to irreversibility. While it doesn't name alternative tools for non-destructive actions, the caution provides clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_delete_commentDelete CommentA
Destructive

Permanently delete a comment from a discussion on a sheet. Only the comment author can delete their own comments. This action is IRREVERSIBLE.

Args:

  • sheet_id (number): Sheet ID containing the comment

  • comment_id (number): Comment ID to delete

Returns: Deletion confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
comment_idYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable context: permanence, author-only restriction, and return type ('Deletion confirmation'). No contradictions.

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

Conciseness5/5

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

The description is concise with three sentences. Front-loaded with purpose, then constraints, then parameter list. No wasted words.

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?

Given the simple operation (delete comment), the description covers purpose, prerequisites, return value, and parameter meanings. No gaps remain.

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

Parameters5/5

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

Schema has 0% description coverage, but the description provides clear parameter meanings: 'Sheet ID containing the comment' and 'Comment ID to delete.' This fully compensates for the lack of schema descriptions.

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 clearly states the action: 'Permanently delete a comment from a discussion on a sheet.' It uses specific verb (delete) and resource (comment), and distinguishes from siblings like smartsheet_add_comment or smartsheet_delete_attachment.

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 includes a critical usage condition: 'Only the comment author can delete their own comments.' It also warns that the action is irreversible. However, it does not explicitly state when not to use or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_delete_rowsDelete Rows from SheetA
Destructive

Permanently delete one or more rows from a Smartsheet sheet. This operation is IRREVERSIBLE. Deleted rows and their cell data are permanently removed. Confirm row IDs before calling. Child rows are also deleted when parent rows are removed.

Args:

  • sheet_id (number): Target sheet ID

  • row_ids (number[]): Array of row IDs to delete (max 450 per request)

  • ignore_rows_not_found (boolean, optional): If true, silently skip non-existent row IDs

Returns: Confirmation message and updated sheet version.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idsYes
ignore_rows_not_foundNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already set destructiveHint=true, but the description adds critical details: the operation is irreversible, child rows are deleted with parents, and row IDs should be confirmed. This goes beyond the annotation's simple boolean flag to provide actionable behavioral context.

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

Conciseness5/5

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

The description is concise, with only 6 sentences. It front-loads the irreversible warning, then details parameters and return value. Every sentence adds value, no fluff.

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?

Given the tool's destructive nature and lack of output schema, the description covers all necessary context: irreversible deletion, child row behavior, parameter descriptions, confirmation guidance, and return type. It is sufficiently complete for an agent to use safely.

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?

The input schema has 0% description coverage, but the description explains all three parameters: sheet_id (target), row_ids (array, max 450), and ignore_rows_not_found (optional, silent skip). It adds meaning beyond the schema, though it could be more precise about data types already defined.

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 clearly states the tool's purpose: 'Permanently delete one or more rows from a Smartsheet sheet.' It specifies the verb (delete), resource (rows), and emphasizes permanence. Among siblings like smartsheet_add_rows and smartsheet_update_rows, it is well-differentiated.

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 explicitly warns about irreversibility and child row deletion, advising to confirm row IDs before use. However, it does not directly state when not to use this tool (e.g., if you need to keep row data), but the warnings imply cautious usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_get_cell_historyGet Cell HistoryA
Read-onlyIdempotent

Retrieve the full modification history for a specific cell in a Smartsheet sheet. Shows all previous values, who changed the value, and when each change occurred. Useful for audit trails and tracking project status changes over time.

Args:

  • sheet_id (number): Target sheet ID

  • row_id (number): Target row ID

  • column_id (number): Target column ID

  • page_size (number, optional): History entries per page (default 100)

  • page (number, optional): Page number (default 1)

Returns: Chronological list of cell value changes with timestamps and user info.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idYes
column_idYes
page_sizeNo
pageNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context: it returns a chronological list of changes with timestamps and user info, and implies pagination through page_size and page parameters. No contradiction with annotations. The description supplements but does not fully detail all behaviors (e.g., limits), hence a 4.

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

Conciseness5/5

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

The description is well-structured: a concise purpose sentence, a list of arguments with defaults, and the return type. Every sentence adds value, no redundancy. It is appropriately sized for the tool's complexity (5 params, no nested objects).

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?

Given no output schema, the description explains the return value (chronological list with timestamps and user info). All 5 parameters are documented, covering the required IDs and optional pagination. The description compensates fully for the 0% schema coverage and provides enough context for correct invocation.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description carries full burden. It lists all 5 parameters with clear, meaningful explanations: sheet_id, row_id, column_id as required IDs, and page_size/page for pagination with defaults. This adds substantial meaning beyond the schema properties.

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 starts with an active verb and specific resource ('Retrieve the full modification history for a specific cell'), clearly distinguishing it from sibling tools like smartsheet_get_sheet or smartsheet_get_sheet_version, which handle broader data. It succinctly states what the tool does and why it's useful (audit trails).

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 explicitly says 'Useful for audit trails and tracking project status changes over time,' providing clear context for when to use this tool. However, it does not explicitly state when not to use it or compare to alternatives beyond the sibling list. A 4 reflects the clear guidance without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_get_columnsGet Sheet ColumnsA
Read-onlyIdempotent

Retrieve all column definitions for a Smartsheet sheet. Returns column IDs, titles, types (TEXT_NUMBER, DATE, PICKLIST, CHECKBOX, CONTACT_LIST, etc.), options for dropdown columns, and whether each column is primary. Use this to get column IDs needed before adding or updating rows.

Args:

  • sheet_id (number): Target sheet ID

Returns: Array of column definitions with IDs, types, and options.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description confirms read operation but adds no additional behavioral context (e.g., rate limits, data freshness, or side effects).

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

Conciseness5/5

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

Succinct description with key information front-loaded. Uses bullet points for args/returns without unnecessary elaboration. Every sentence adds value.

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?

Given the simplicity of the tool (single param, no output schema), description covers purpose, return structure, and typical usage. Could mention pagination or that it returns all columns, but not essential for this tool.

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?

Only one parameter sheet_id with 0% schema description coverage. Description compensates by providing human-readable 'Target sheet ID' and type hint (number), which adds meaning beyond the schema's exclusiveMinimum constraint.

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?

Description clearly states it retrieves all column definitions for a Smartsheet sheet. It specifies return fields including IDs, types, options, and primary status. Distinguishes from siblings like get_sheet (which returns whole sheet) and add_columns (which modifies).

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?

Explicitly states 'Use this to get column IDs needed before adding or updating rows.' Provides clear use case. Does not explicitly mention when not to use, but context and sibling names imply alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_get_reportGet Report DataA
Read-onlyIdempotent

Retrieve data from a Smartsheet report by ID. Reports aggregate rows from multiple sheets. Returns columns, rows, and cell values just like a sheet, but the rows may originate from different source sheets. Supports pagination since reports can have very large row counts.

Args:

  • report_id (number): The numeric Smartsheet report ID

  • page_size (number, optional): Rows per page (default 100, max 500)

  • page (number, optional): Page number (default 1)

  • level (number, optional): Hierarchy level (0 = all, 1 = summary only)

Returns: Report metadata, columns, and rows with source sheet context.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYesSmartsheet report ID
page_sizeNo
pageNo
levelNoHierarchy depth (0=all rows, 1=summary rows only)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds valuable behavioral context: reports aggregate rows from multiple source sheets, supports pagination for large row counts, and returns source sheet context. No contradiction with annotations.

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 purpose, clear structure with paragraphs and Args list. No unnecessary words, but the description is moderately long. Could be slightly trimmed without losing meaning.

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 read-only tool with 4 parameters and no output schema, the description covers report nature, pagination, and return context. Missing explicit details on how source sheet context appears or how to handle multi-sheet rows, but sufficient for most uses.

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

Parameters2/5

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

Schema coverage is 50% (report_id and level have descriptions). Description repeats defaults for page_size and page but adds no new meaning. The 'level' description in the schema is more precise (includes max 2), while the description omits that, making it slightly less helpful.

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?

Description clearly states 'Retrieve data from a Smartsheet report by ID' with a specific verb and resource. It distinguishes from siblings like smartsheet_get_sheet and smartsheet_list_reports by explaining reports aggregate rows from multiple sheets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains report characteristics and pagination but does not explicitly guide when to use this tool versus alternatives like smartsheet_get_sheet or smartsheet_search. No 'use this when' or 'instead of' statements for sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_get_sheetGet Sheet DataA
Read-onlyIdempotent

Retrieve sheet data from Smartsheet including columns, rows, and cell values. Supports optional filtering by column IDs, row IDs, and pagination via rowsModifiedSince. Use this to read project data, task lists, resource grids, or any tabular data stored in a sheet.

Args:

  • sheet_id (number): The numeric Smartsheet sheet ID

  • column_ids (number[], optional): Limit response to specific column IDs

  • row_ids (number[], optional): Limit response to specific row IDs

  • rows_modified_since (string, optional): ISO 8601 date; return only rows modified after this date

  • page_size (number, optional): Rows per page (default 100, max 500)

  • page (number, optional): Page number (default 1)

  • include_filters (boolean, optional): Include filter definitions in response

Returns: Sheet metadata, columns array, and rows array with cell values.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesSmartsheet sheet ID
column_idsNoFilter to specific column IDs
row_idsNoFilter to specific row IDs
rows_modified_sinceNoISO 8601 datetime — only return rows modified after this
page_sizeNoRows per page (default 100, max 500)
pageNoPage number (default 1)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds value by explaining filtering via column_ids, row_ids, rows_modified_since, pagination, and include_filters, and that it returns metadata and rows.

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?

Description is structured with main text, Args list, and Returns line. It is clear but slightly verbose due to repeating schema details. Each sentence serves a purpose.

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?

Tool has 6 parameters and no output schema. Description covers all key aspects: purpose, parameters, filtering, pagination, and return structure. It provides sufficient context for an agent to use the tool correctly.

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 coverage is 100%, so the schema already documents each parameter. Description adds minimal extra context (e.g., ISO 8601 format for rows_modified_since) but mostly repeats schema info. 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?

Description clearly states the verb 'retrieve' and resource 'sheet data', and lists included content (columns, rows, cell values). It distinguishes from sibling tools like smartsheet_get_columns and smartsheet_get_sheet_version.

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?

Description provides explicit use cases ('read project data, task lists, resource grids') and mentions filtering and pagination, but does not explicitly state when not to use or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_get_sheet_versionGet Sheet VersionA
Read-onlyIdempotent

Get the current version number of a sheet without loading all row data. Use this to efficiently detect whether a sheet has been modified since last read, without pulling the full sheet payload.

Args:

  • sheet_id (number): Target sheet ID

Returns: Current version number and last modification timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive. Description adds that it doesn't load all row data (lightweight behavior) and returns version + timestamp. Provides additional behavioral context beyond annotations.

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

Conciseness5/5

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

Extremely concise: two sentences for purpose and usage, then structured Args/Returns. Each sentence adds value with no redundancy or fluff.

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 simple tool with 1 param and no output schema, the description adequately covers input (sheet_id), output (version and timestamp), and use case (efficient change detection). No gaps remain.

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 has 0% description coverage for parameters. The description adds 'Target sheet ID' for sheet_id, providing necessary semantic meaning. Compensates for lack of schema descriptions.

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 clearly states the tool gets the version number without loading all row data. It distinguishes from smartsheet_get_sheet which loads full sheet data, making the purpose precise and differentiating from siblings.

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?

Explicitly recommends using this tool to detect modifications without full payload. Implicitly contrasts with loading full sheet data, though alternative not named directly. Provides clear context for when to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_attachmentsList Sheet AttachmentsA
Read-onlyIdempotent

List all attachments on a Smartsheet sheet (both sheet-level and row-level). Returns attachment name, type, size, and temporary download URL.

Args:

  • sheet_id (number): Target sheet ID

  • page_size (number, optional): Results per page (default 100)

  • page (number, optional): Page number (default 1)

Returns: Array of attachment metadata with download URLs (URLs expire after a short period).

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
page_sizeNo
pageNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds key behavioral context: temporary download URLs that expire, and pagination details, enhancing transparency beyond the annotations.

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

Conciseness5/5

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

The description is concise and well-structured: a brief purpose statement, return value summary, and bulleted Args list. Every sentence adds value without redundancy.

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 read-only list tool with no output schema, the description fully covers the return shape (name, type, size, URL), pagination parameters, and URL expiration behavior, making it complete for agent usage.

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?

With 0% schema description coverage, the description compensates by explaining each parameter (sheet_id, page_size, page) with purpose and defaults, adding meaning that the schema lacks.

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 clearly states it lists all attachments on a sheet (both sheet-level and row-level), with a specific verb and resource. It distinguishes from the sibling tool smartsheet_list_row_attachments, which only lists row-level attachments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing all attachments but does not explicitly state when to use this tool versus alternatives like smartsheet_list_row_attachments. No direct when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_dashboardsList DashboardsA
Read-onlyIdempotent

List all Smartsheet dashboards (Sights) the authenticated user has access to.

Args:

  • page_size (number, optional): Results per page (default 100)

  • page (number, optional): Page number (default 1)

Returns: Array of dashboard summaries with IDs and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
pageNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds scope (authenticated user) but no new behavioral traits beyond annotations.

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

Conciseness5/5

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

Two-sentence purpose, concise arg list, returns line. No fluff, front-loaded with key action.

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 simple list tool with two optional params and no output schema, description covers purpose, parameters, and return type. Lacks pagination behavior detail but sufficient.

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 has no descriptions (0% coverage). Description adds meaning by explaining page_size and page as pagination controls with defaults, enhancing understanding beyond schema bounds.

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?

Clearly states verb (list), resource (dashboards/Sights), and scope (all user has access to). Distinguishes from siblings like list_sheets by specifying resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use vs alternatives. Does not mention when not to use or provide comparisons to other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_reportsList All ReportsA
Read-onlyIdempotent

List all reports the authenticated user has access to. Returns report name, ID, permalink, access level, and modification timestamps.

Args:

  • page_size (number, optional): Results per page (default 100, max 100)

  • page (number, optional): Page number (default 1)

  • modified_since (string, optional): ISO 8601 date — only reports modified after this date

Returns: Array of report summaries with IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
pageNo
modified_sinceNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint false, and idempotentHint true. The description adds behavioral details: returns specific fields, supports pagination (page_size, page), and date filtering (modified_since). It does not contradict annotations.

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

Conciseness5/5

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

The description is two sentences followed by a structured Args list and a Returns statement. Every sentence adds value, and the key information is front-loaded. No redundant or extraneous text.

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?

Given the lack of an output schema, the description lists the specific fields returned (name, ID, permalink, access level, modification timestamps) and mentions 'Array of report summaries with IDs'. This is sufficient for a list tool, though it could elaborate on pagination behavior (e.g., total count) or error conditions.

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

Parameters5/5

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

Despite 0% schema description coverage, the description fully explains each parameter: page_size (default 100, max 100), page (default 1), modified_since (ISO 8601 date, filters by modification date). This adds significant semantic meaning beyond the schema's type and constraints.

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 explicitly states 'list all reports the authenticated user has access to' and specifies returned fields (name, ID, permalink, access level, modification timestamps). It clearly distinguishes from sibling tools like list_sheets or list_attachments by focusing on reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing a list of reports with filtering and pagination, but does not explicitly state when to use this tool versus alternatives like smartsheet_list_sheets or smartsheet_get_report. No when-not-to-use conditions or sibling comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_row_attachmentsList Row AttachmentsA
Read-onlyIdempotent

List all attachments on a specific row in a Smartsheet sheet.

Args:

  • sheet_id (number): Target sheet ID

  • row_id (number): Target row ID

Returns: Array of attachment metadata for the row.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the tool is clearly read-only and idempotent. The description adds that it returns 'Array of attachment metadata', but does not disclose any additional behavioral traits beyond what annotations provide. No contradiction.

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

Conciseness5/5

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

The description is extremely concise: three lines cover purpose and argument details in a clear, bullet-like format with no redundant information. Every sentence adds value.

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 simple list tool with two required parameters and no output schema, the description is mostly complete. It states the function and arguments, and annotations cover safety. However, it could mention potential empty results or access requirements for higher completeness.

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 coverage is 0% (no parameter descriptions in schema), so the description carries the full burden. It adds 'Target sheet ID' and 'Target row ID', clarifying the parameters' roles, but provides no additional meaning beyond the basic type and requirement already in the schema.

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 clearly states 'List all attachments on a specific row' with a specific verb and resource, distinguishing it from sibling tools like 'smartsheet_list_attachments' (which likely lists all attachments in a sheet) and 'smartsheet_attach_url_to_row'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly guide when to use this tool versus alternatives such as 'smartsheet_list_attachments' or 'smartsheet_search'. It relies on the agent inferring context from the tool name and sibling list, with no explicit exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_row_discussionsList Row DiscussionsA
Read-onlyIdempotent

Retrieve all discussions attached to a specific row in a sheet.

Args:

  • sheet_id (number): Target sheet ID

  • row_id (number): Target row ID

  • include_comments (boolean, optional): Include comment text (default true)

Returns: Discussions and comments on the specified row.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
row_idYes
include_commentsNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to reinforce that it is a safe read operation. The description adds that it returns discussions and comments, and that include_comments parameter controls comment text. However, it does not disclose pagination, rate limits, or behavior when no discussions exist. Given high annotation coverage, this is adequate but not extra.

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

Conciseness5/5

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

The description is concise and well-structured. It starts with the main purpose, then lists parameters with brief explanations, and ends with a return statement. Every sentence adds value without redundancy.

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 read-only list tool with no output schema, the description covers parameters and return type (discussions and comments). It lacks details on pagination or limits, but overall it is sufficiently complete given the tool's simplicity and annotation coverage.

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?

The input schema has 0% description coverage, so the description carries the full burden. It provides clear explanations for each parameter: sheet_id and row_id as targets, and include_comments optional with default true. This adds meaning beyond the schema and correctly compensates for the low coverage.

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 clearly states the tool retrieves discussions attached to a specific row, using the verb 'retrieve' and specifying the resource 'discussions attached to a specific row in a sheet'. This distinguishes it from siblings like list_sheet_discussions (all discussions on a sheet) and create_row_discussion (create discussions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions (e.g., when not to use it) or suggest sibling tools like list_sheet_discussions for different scopes. The usage context is only implied by the specific row targeting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_sheet_discussionsList Sheet DiscussionsA
Read-onlyIdempotent

Retrieve all discussions on a sheet (both sheet-level and row-level discussions). Returns discussion titles, comment counts, last activity, and comment text.

Args:

  • sheet_id (number): Target sheet ID

  • include_comments (boolean, optional): Include comment text in response (default true)

  • page_size (number, optional): Results per page (default 100)

  • page (number, optional): Page number (default 1)

Returns: Array of discussions with comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
include_commentsNo
page_sizeNo
pageNo

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, signaling a safe read operation. The description adds details about returned fields (titles, comment counts, etc.) and pagination, but does not reveal additional behavioral traits beyond what annotations provide. Score is baseline due to good annotation coverage.

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

Conciseness5/5

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

Two opening sentences clearly state purpose and return contents, followed by a bullet list of parameters. Every sentence adds value, with no redundancy. The structure front-loads the key action and is easy to scan.

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?

Despite lacking an output schema, the description outlines the return structure (array of discussions) and enumerates key fields (titles, comment counts, etc.). For a list tool with well-documented parameters, this provides sufficient context. A slightly more detailed return shape would be ideal but is not critical.

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

Parameters5/5

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

Input schema has 0% description coverage for parameters. The description compensates effectively by listing each parameter with a concise explanation (e.g., sheet_id as 'Target sheet ID', include_comments with behavior and default). This adds significant meaning beyond schema types and defaults.

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?

Description clearly states it retrieves all discussions on a sheet (sheet-level and row-level). This distinguishes it from sibling tools like smartsheet_list_row_discussions, which presumably focus only on row-level discussions. The verb 'retrieve' with resource 'discussions on a sheet' is specific and unambiguous.

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 implies the scope (all discussions on a sheet) and explicitly states the coverage of both levels, indirectly guiding users away from sibling tools that list only row-level discussions. However, it does not explicitly state when to use this tool versus alternatives or mention any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_sheetsList All SheetsA
Read-onlyIdempotent

List all sheets the authenticated user has access to, with pagination support. Returns sheet name, ID, permalink, access level, and modification timestamps. Use this to discover available sheets before reading data from a specific one.

Args:

  • page_size (number, optional): Results per page (default 100, max 100)

  • page (number, optional): Page number (default 1)

  • modified_since (string, optional): ISO 8601 date filter

Returns: Array of sheet summaries with IDs and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
pageNo
modified_sinceNoISO 8601 date filter

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, so the description complements them by detailing the return fields and pagination behavior. It adds value beyond annotations by describing the output format and filtering capability.

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

Conciseness5/5

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

The description is concise and well-structured, with a clear one-sentence overview, a list of arguments, and the return type. Every sentence adds value without redundancy.

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?

Given the tool's simplicity, no output schema, and comprehensive annotations, the description fully covers the necessary context for an AI agent to use the tool correctly. It explains the return value and parameter details adequately.

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?

The input schema has a description only for 'modified_since' (33% coverage). The description compensates by noting defaults (page_size: 100, page: 1) and format (ISO 8601), adding meaning that the schema alone lacks.

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 clearly states the tool's purpose: listing all sheets accessible to the authenticated user, with pagination support. It uses specific verbs and resources, and distinguishes itself from sibling tools like smartsheet_get_sheet or smartsheet_search_sheet by emphasizing discovery before data reading.

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 explicitly says 'Use this to discover available sheets before reading data from a specific one,' providing clear guidance on when to use this tool. It does not list alternatives or when not to use it, but the context is sufficient given the sibling tool set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_list_workspacesList WorkspacesA
Read-onlyIdempotent

List all Smartsheet workspaces the authenticated user has access to. Returns workspace name, ID, access level, and child resource counts.

Args:

  • page_size (number, optional): Results per page (default 100)

  • page (number, optional): Page number (default 1)

Returns: Array of workspace summaries with IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
pageNo

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 and destructiveHint=false, so the safety profile is clear. The description adds value by specifying the return type (workspace name, ID, access level, child resource counts) and pagination details (page_size, page), which goes beyond what 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.

Conciseness5/5

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

The description is very concise: one sentence for purpose, one for return fields, then two lines for parameters. No filler. Front-loaded with the main action.

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 list operation with no output schema and two optional parameters, the description is complete. It covers return structure, pagination, and scope. No additional context is needed for an agent to invoke it correctly.

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 0%, so the description carries the burden. The Args block explains page_size and page with defaults and optionality, adding meaning beyond the schema's type and constraints. It does not describe all possible values but adequately explains the parameters.

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 clearly states it lists all Smartsheet workspaces the authenticated user has access to, using a specific verb 'list' and resource 'workspaces'. It distinguishes from siblings like smartsheet_browse_workspace (which navigates a single workspace) and smartsheet_list_sheets (lists sheets).

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 states it lists all workspaces, which is clear context for usage. It does not explicitly mention when not to use or compare to alternatives like smartsheet_browse_workspace, but the sibling set makes the distinction implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_search_sheetSearch Within SheetA
Read-onlyIdempotent

Search for text within a specific Smartsheet sheet. Searches cell values, formulas, comments, and summary fields within one sheet.

Args:

  • sheet_id (number): Sheet ID to search within

  • query (string): Text to search for

Returns: Matching rows and cells within the sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYes
queryYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds context by specifying that it searches multiple document types (comments, formulas, etc.), which is not evident from annotations alone.

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

Conciseness5/5

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

The description is extremely concise (4 lines), front-loaded with the core purpose, and every sentence adds value. No redundant or vague language.

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 simple search tool with 2 parameters, good annotations, and no output schema, the description covers purpose, parameters, and return value. However, it lacks details like case sensitivity or substring matching, which would fully complete the behavioral picture.

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 0%, but the description lists both parameters with clear explanations: sheet_id is the ID to search within, query is the text to search for. This compensates for the lack of schema descriptions.

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 clearly states the tool searches for text within a specific Smartsheet sheet, distinguishes from sibling 'smartsheet_search' (which searches across all sheets), and specifies searchable fields (cell values, formulas, comments, summary fields).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching within one sheet but does not explicitly compare to alternatives or state when not to use it. For example, it does not mention that broader searches should use 'smartsheet_search' or specify prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smartsheet_update_rowsUpdate Rows in SheetA

Update one or more existing rows in a Smartsheet sheet. Each row update specifies the row ID and cells to change. Only provided cells are updated; unspecified cells are left unchanged. Can also lock/unlock rows or change hierarchy.

Args:

  • sheet_id (number): Target sheet ID

  • rows (array): Array of row update objects, each containing:

    • row_id (number): ID of the row to update

    • cells (array): Array of {column_id, value} cells to update

    • locked (boolean, optional): Lock or unlock the row

    • expanded (boolean, optional): Expand or collapse row

Returns: Updated row data and new sheet version.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesTarget sheet ID
rowsYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate this is a write operation (readOnlyHint=false). The description adds behavioral details: partial updates, lock/unlock, hierarchy changes, and return of updated data with new version. It does not contradict annotations.

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

Conciseness5/5

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

Concise: two sentences plus parameter list. Front-loaded with purpose. Each sentence adds value.

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?

No output schema, so description appropriately includes return info. Covers core behavior and parameters. Could mention required permissions or concurrency, but sufficient for typical use.

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 has descriptions for sheet_id and row_id only (50% coverage). The description's Args section explains each parameter's role, including hidden details like cells structure, locked and expanded options. However, it misses the 'formula' field in cells (present in schema). Overall adds significant value.

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 clearly states 'Update one or more existing rows' with the resource 'in a Smartsheet sheet'. This verb+resource pattern distinguishes it from sibling tools like add_rows and delete_rows.

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 explains partial update behavior ('Only provided cells are updated') implying when to use (updating specific fields) and not (full replacement). It does not explicitly contrast with alternative tools (e.g., add_rows), but context is sufficient.

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.

  1. 27 tool updatesv1.0.0
    • First observedsmartsheet_add_columns
    • First observedsmartsheet_add_comment
    • First observedsmartsheet_add_rows
    • First observedsmartsheet_attach_url_to_row
    • First observedsmartsheet_browse_folder
    • First observedsmartsheet_browse_workspace
    • First observedsmartsheet_create_row_discussion
    • First observedsmartsheet_create_sheet_discussion
    • First observedsmartsheet_delete_attachment
    • First observedsmartsheet_delete_comment
    • First observedsmartsheet_delete_rows
    • First observedsmartsheet_get_cell_history
    • First observedsmartsheet_get_columns
    • First observedsmartsheet_get_report
    • First observedsmartsheet_get_sheet
    • First observedsmartsheet_get_sheet_version
    • First observedsmartsheet_list_attachments
    • First observedsmartsheet_list_dashboards
    • First observedsmartsheet_list_reports
    • First observedsmartsheet_list_row_attachments
    • First observedsmartsheet_list_row_discussions
    • First observedsmartsheet_list_sheet_discussions
    • First observedsmartsheet_list_sheets
    • First observedsmartsheet_list_workspaces
    • First observedsmartsheet_search
    • First observedsmartsheet_search_sheet
    • First observedsmartsheet_update_rows

TDQS

A4/5.0

Scored across 27 tools

Disambiguation5/5

All tools have distinct, non-overlapping purposes. Even similar tools like global search vs sheet-specific search are clearly differentiated by scope. Discussions, comments, attachments, and rows each have separate create/read/delete tools with no ambiguity.

Naming Consistency5/5

Every tool follows the consistent pattern 'smartsheet_verb_noun' (e.g., 'smartsheet_add_columns', 'smartsheet_get_sheet'). Verbs are uniformly used (add, get, list, create, delete, update, browse, search). No mixing of styles.

Tool Count4/5

27 tools is on the higher end but appropriate for a comprehensive Smartsheet API wrapper covering sheets, rows, columns, attachments, discussions, reports, dashboards, workspaces, folders, and search. However, a few tools like browse_workspace and browse_folder could potentially be merged without loss of clarity.

Completeness2/5

Notable gaps exist: there is no tool to create a sheet, delete a sheet, or update sheet metadata. While row CRUD is complete (add, update, delete), sheet-level lifecycle is missing. Also missing: update column, delete column, update attachment. This limits the server's ability to fully manage Smartsheet resources.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides seamless integration with Smartsheet, enabling automated operations on Smartsheet documents through a standardized interface that bridges AI-powered automation tools with Smartsheet's collaboration platform.
    12
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates with Microsoft 365 Copilot APIs to enable retrieval of content from SharePoint and OneDrive, document search across M365, and conversational AI interactions with your Microsoft 365 data while respecting access permissions.
    18
    19
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely access and manage Commvault environments, including job control, backup schedules, client/storage management, SLA monitoring, and optional DocuSign envelope backup integration.
    17
    Apache 2.0