# Smartsheet MCP

> Smartsheet MCP Server gives your AI agent full control over enterprise data sheets. It lets you list entire project workspaces, retrieve sheet metadata, add or update specific rows, delete old records, and search for filtered data—all via natural language conversation.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** work-management, spreadsheet-automation, task-tracking, data-reporting, workflow-automation

## Description

When your AI agent connects to this **Smartsheet** server, it gets full control over your company's structured data sheets. You can manage and read enterprise project information right from your chat client; you never gotta leave the conversation window.

This isn't just a reader; it’s a write-through system for complex workflows. Your agent handles all the heavy lifting, whether you need to track resource allocations or pull up details on an old campaign report. You tell your AI what you want, and it runs the necessary commands using this server.

### Navigating Your Data Landscape

You can start by getting a lay of the land. The agent can run `list_workspaces` to give you a directory list of every major project container you manage—it shows all your top-level folders. From there, it uses `list_sheets` to pull up an immediate roster of every sheet inside those workspaces. If you need to dig deeper into what's available, the agent can use `get_workspace_details` to retrieve high-level info about a whole project container, or run `get_sheet_details` for specific metadata on any individual sheet, including who owns it and when it was created.

To make sure your AI client knows exactly what data structure you’re dealing with, it uses `list_sheet_columns`. This tool tells the agent every single column header—the actual field names—available on a given sheet. It's how the system knows what data types it can read or write.

### Working with Records and Data Integrity

The server handles full CRUD (Create, Read, Update, Delete) operations directly on cell data. If you need to add new entries, the agent uses `add_sheet_rows`, which takes a required JSON array format to append an entirely new set of data rows to any existing sheet.

If records change and you gotta fix 'em up, it runs `update_sheet_rows`. You give it the specific row IDs along with the new cell values in another JSON array, and those old cells get modified. Conversely, if a record is junk or outdated, the agent executes `remove_sheet_row`, which requires the exact row ID to delete that entire line of data.

### Finding Specific Answers & Monitoring People

Don't wanna manually scroll through thousands of rows? The agent runs `search_within_sheet`. You give it keywords or criteria, and it finds matching rows inside a single sheet. This lets you pinpoint exact pieces of information instantly, so you don't waste time diving into data yourself.

For people management, the server provides tools to monitor your organization. It uses `list_platform_users` to generate a comprehensive directory list of every company user accessible in Smartsheet, giving you their names and roles. You can also check basic profile info for any account using `get_my_profile` or specifying an agent’s details.

When it comes to project reporting, the server tracks what's available. The agent runs `list_available_reports` to list and filter every single report template that lives in your Smartsheet account.

## Tools

### add_sheet_rows
Appends a new set of data rows to an existing sheet when provided with the required JSON array format.

### remove_sheet_row
Deletes an entire row of data from a sheet, requiring the specific row ID for execution.

### get_my_profile
Retrieves basic profile information for the currently logged-in user or specified agent.

### get_sheet_details
Fetches detailed metadata about a specific sheet, including its owner and creation date.

### get_workspace_details
Retrieves high-level information about an entire project workspace or container.

### list_sheet_columns
Lists the column headers (fields) available on a sheet so you know exactly what data can be read or written.

### list_available_reports
Lists and filters all the report templates currently available within your Smartsheet account.

### list_sheets
Returns an immediate list of all sheets contained within your connected Smartsheet account.

### list_platform_users
Generates a directory list of all company users accessible in the platform, including their names and roles.

### list_workspaces
Provides a directory listing of all major project workspaces or folders you manage.

### search_within_sheet
Runs a targeted search inside a single sheet to find rows that match certain criteria or keywords.

### update_sheet_rows
Modifies existing data within specific rows, requiring the row IDs and the new cell values in a JSON array.

## Prompt Examples

**Prompt:** 
```
List all active sheets in my Smartsheet account.
```

**Response:** 
```
I've retrieved your sheets. You have 5 active ones including 'Project Roadmap', 'Budget Tracker', and 'Team Tasks'. Which one would you like to open?
```

**Prompt:** 
```
Show me all active project sheets with their task completion rates and upcoming deadlines.
```

**Response:** 
```
8 active project sheets. "Product Launch Q2" (156 rows): 72% complete, 12 tasks due this week, 3 overdue (critical path items). "Website Redesign" (89 rows): 45% complete, on track, next milestone Friday. "Data Migration" (234 rows): 88% complete, final testing phase. "Marketing Campaign" (67 rows): 34% complete, 5 blocked tasks. "Office Relocation" (45 rows): 60% complete. 3 additional sheets at various stages. Total tasks across all sheets: 734. Overdue: 18 (2.5%). Resource conflicts: 4 team members over-allocated.
```

**Prompt:** 
```
Create a new project sheet from the Agile Sprint template and add the engineering team as collaborators.
```

**Response:** 
```
Project sheet created: "Sprint 14 - API Platform". Template: Agile Sprint (columns: Story, Points, Assignee, Status, Priority, Sprint, Epic). 6 team members added as editors: Sarah Chen, James Park, Alex Rivera, Lisa Wang, David Kim, Maria Santos. Default views created: Board (Kanban by Status), Gantt (timeline), Calendar (due dates). Automation rules: status change notifications, overdue alerts, sprint burndown chart updates. Sprint dates set: May 19-30. Ready for backlog import.
```

## Capabilities

### List all sheets and workspaces
Retrieves structured lists of your existing Smartsheet files and parent project containers.

### Get sheet structure details
Reads the metadata for a specific sheet, detailing every column name and its data type.

### Write, Update, or Delete Rows
Performs full CRUD operations on cell data within sheets using tools like `add_sheet_rows`, `update_sheet_rows`, and `remove_sheet_row`.

### Search for specific records
Runs filtered searches inside a sheet to locate exact pieces of information, preventing manual data dives.

### Monitor users and reports
Accesses user directories (`list_platform_users`) and lists all available project reports in your account.

## Use Cases

### The status report audit
A Project Manager needs to know the completion percentage for five different tracks. Instead of opening 5 sheets, they prompt their agent: 'Show me all active project sheets and what percentage complete they are.' The agent uses `list_sheets` and then executes structured searches on each one to compile a single summary report.

### Resource cleanup
An Ops Analyst needs to clear out records for employees who left last quarter. They use the directory tools (`list_platform_users`) to verify current staff, then ask their agent to identify and run `remove_sheet_row` on all archived employee records from the master sheet.

### Onboarding new team members
A Data Coordinator is building a resource tracker. They first call `list_workspaces` to find the correct project folder, then use `list_sheet_columns` on the target sheet to confirm all necessary fields exist before using `add_sheet_rows` to populate initial team data.

### Finding a specific document detail
A PM needs one piece of information from an old, massive 'Master Data' sheet. Instead of scrolling through thousands of rows, they ask the agent to `search_within_sheet` for 'Q4 budget variance for Marketing.' The agent runs the search and provides only the relevant cell data.

## Benefits

- Stop jumping between apps. You can list all managed sheets (`list_sheets`) and immediately check a specific column's value, all without leaving your agent client.
- Control data mutation with precision. Instead of manual copy/pasting, use `update_sheet_rows` to change statuses or resource assignments across multiple records at once.
- Always know the structure before you write. Use `list_sheet_columns` first; it tells you exactly what field names and types your agent needs when calling `add_sheet_rows`.
- Find data faster than searching tabs. The `search_within_sheet` tool lets your agent filter through thousands of rows to pull out the exact answer you need.
- Maintain a clear project view by listing all workspaces (`list_workspaces`) and getting overall details with `get_workspace_details`, keeping track of every active project container.

## How It Works

The bottom line is that you get an AI agent with direct write access to your core business data in Smartsheet, eliminating context switching entirely.

1. Subscribe to the Smartsheet MCP Server and provide your Smartsheet Access Token.
2. Your AI client connects using that token, giving the agent read/write permissions to your workspace.
3. You ask a question (e.g., 'Update Sarah's status on the Project Roadmap sheet'). The agent executes the necessary tools (`update_sheet_rows`) and confirms completion.

## Frequently Asked Questions

**How do I list all active sheets in my Smartsheet account?**
You use the `list_sheets` tool. This instantly returns a directory of every sheet you have access to, so you don't have to manually browse your folder structure.

**Can I update only one cell in a row using update_sheet_rows?**
Yes. The `update_sheet_rows` tool requires you to provide the specific Row IDs and the new values for the cells you want to change, making modifications precise.

**What if I don't know what columns are in a sheet?**
Run `list_sheet_columns`. This tool reads the metadata and gives you a clean list of every column header available on that specific sheet, so your agent knows where to write data.

**Does get_workspace_details give me everything about a project?**
It provides high-level details about the entire workspace—the container for related sheets and reports. It helps you understand the scope of the overall project, not just one sheet.

**What credentials does `get_my_profile` require to successfully fetch my user information?**
You need a valid Smartsheet Access Token with at least read permissions. The token must be correctly configured in your client's environment variables for the call to succeed. It doesn't require specific scopes beyond basic profile access.

**If I need to delete multiple rows, is it safe to use `remove_sheet_row` repeatedly?**
Yes, you can process deletions in batches using the tool. However, you must provide the unique row IDs for each call. Always confirm the ID before running the deletion command.

**Does running many searches using `search_within_sheet` impact performance or hit rate limits?**
API calls are subject to rate limits enforced by Smartsheet. If you run too many searches rapidly, your AI client will receive a throttling error. It's best practice to implement a short delay between search operations.

**What specific data points does `list_platform_users` return about all company users?**
This tool returns core user details, including name, email address, and basic group membership. It's designed for listing operational records rather than deep HR profile access.

**How do I find my Smartsheet Access Token?**
Log in to Smartsheet, navigate to **Account** > **Personal Settings** > **API Access**, and generate a new access token for your integration.