Connect your AI Agents to Smartsheet in minutes

Available tools
list_attachments
List all attachments on a sheet with pagination. Includes file attachments and URL links.
attach_url
Attach a URL to a sheet. Supported types: LINK, BOX_COM, DROPBOX, EGNYTE, EVERNOTE, GOOGLE_DRIVE, ONEDRIVE.
get_attachment
Get attachment details including download URL for file attachments. Use list_attachments to find IDs.
delete_attachment
Delete an attachment from a sheet. This cannot be undone. Use list_attachments to find IDs.
list_columns
List all columns in a sheet with pagination. Returns column IDs, titles, types, and indices.
add_column
Add a column to a sheet. Specify title, type, and optional index for position. Use PICKLIST type with options for dropdown columns.
get_column
Get a single column by ID. Returns column title, type, options, and other properties.
update_column
Update a column's title, type, or position. Use list_columns to find column IDs.
delete_column
Delete a column from a sheet. This cannot be undone. Cannot delete the primary column.
list_discussions
List all discussions on a sheet with pagination. Includes discussion titles and comment counts.
create_discussion
Create a discussion on a sheet with an initial comment. Optionally provide a title.
create_row_discussion
Create a discussion on a specific row with an initial comment. Use get_sheet to find row IDs.
get_discussion
Get a discussion with all its comments. Use list_discussions to find valid discussion IDs.
delete_discussion
Delete a discussion and all its comments. This cannot be undone.
add_comment
Add a comment to an existing discussion. Use list_discussions to find discussion IDs.
update_comment
Update a comment's text. Use get_discussion to find comment IDs.
delete_comment
Delete a comment. This cannot be undone. Use get_discussion to find comment IDs.
list_home_folders
List folders at the home level with pagination. Does not include workspace folders.
create_folder
Create a folder at home, inside another folder, or in a workspace. Set parent_folder_id for subfolder, workspace_id for workspace folder.
get_folder
Get a folder with its contents (sheets, subfolders, reports). Use list_home_folders to find valid IDs.
update_folder
Update a folder name. Use list_home_folders or get_workspace to find folder IDs.
delete_folder
Permanently delete a folder and all its contents. This cannot be undone.
list_groups
List all groups in the organization with pagination. Groups can be used for sharing sheets.
create_group
Create a new group with optional description and initial members (by email). Requires admin privileges.
get_group
Get a group with its members. Use list_groups to find valid group IDs.
update_group
Update a group's name or description. Use list_groups to find valid group IDs.
delete_group
Delete a group. This cannot be undone. Members are not deleted.
add_group_members
Add members to a group by email address. Use get_group to see current members.
remove_group_member
Remove a member from a group by user ID. Use get_group to find member user IDs.
list_reports
List all reports accessible to the user with pagination. Reports aggregate data from multiple sheets.
add_rows
Add rows to a sheet. Each row has cells with column_id and value. Use to_top/to_bottom/parent_id/sibling_id for positioning.
get_row
Get a single row from a sheet by row ID. Use include parameter for additional data like discussions and attachments.
update_rows
Update existing rows in a sheet. Each row must have id and cells to update. Can also reposition rows with to_top/to_bottom/parent_id.
delete_rows
Delete rows from a sheet by row IDs. This cannot be undone.
move_rows
Move rows from one sheet to another. Rows are removed from the source sheet. Use list_sheets to find sheet IDs.
copy_rows
Copy rows from one sheet to another. Original rows remain in the source sheet. Use list_sheets to find sheet IDs.
search
Search across all sheets, rows, and other objects. Returns matching items with context data and parent references.
search_sheet
Search within a specific sheet. Returns matching rows and cells with context. Use list_sheets to find sheet IDs.
list_sheet_shares
List all shares on a sheet with pagination. Shows who has access and their access level.
share_sheet
Share a sheet with users by email. Set access_level to VIEWER, EDITOR, EDITOR_SHARE, ADMIN, or OWNER.
update_share
Update a share's access level. Use list_sheet_shares to find share IDs.
delete_share
Remove a share from a sheet. The user will lose access. Use list_sheet_shares to find share IDs.
list_sheets
List all sheets accessible to the user with pagination. Use page and page_size to navigate results.
create_sheet
Create a new sheet with specified columns. At least one column must have primary=true. Use TEXT_NUMBER type for general text columns.
get_sheet
Get a sheet with its columns and rows. Use include parameter for attachments, discussions, etc. Supports pagination for rows.
update_sheet
Update sheet properties like name. Use list_sheets to find valid sheet IDs.
delete_sheet
Permanently delete a sheet. This cannot be undone. Use list_sheets to find valid sheet IDs.
copy_sheet
Copy a sheet to home, a workspace, or a folder. Specify destination_type and destination_id for non-home destinations.
sort_sheet
Sort a sheet by one or more columns. Each criterion needs column_id and direction (ASCENDING or DESCENDING).
get_current_user
Get the current authenticated user's profile including email, name, locale, and account info.
list_users
List all users in the organization with pagination. Requires admin privileges.
get_user
Get a user by ID. Requires admin privileges. Use list_users to find valid user IDs.
validate_credential
Validate Smartsheet API credentials by fetching current user profile. Returns {success, message}.
list_webhooks
List all webhooks for the authenticated user with pagination.
create_webhook
Create a webhook to receive callbacks when a sheet changes. Use '.' for events to subscribe to all events.
get_webhook
Get a webhook's details including status, events, and callback URL. Use list_webhooks to find valid IDs.
update_webhook
Update a webhook's enabled status or event subscriptions. Use list_webhooks to find valid IDs.
delete_webhook
Delete a webhook. It will stop receiving callbacks. This cannot be undone.
list_workspaces
List all workspaces with pagination. Returns workspace IDs, names, and access levels.
create_workspace
Create a new workspace. Workspaces organize sheets, reports, and dashboards.
get_workspace
Get a workspace with its contents (sheets, folders, reports, dashboards). Use list_workspaces to find valid IDs.
update_workspace
Update a workspace name. Use list_workspaces to find valid IDs.
delete_workspace
Permanently delete a workspace and all its contents. This cannot be undone.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Smartsheet MCP server
FAQs on using Merge's Smartsheet MCP server
What is a Smartsheet MCP?
It's an MCP server that gives your agents access to Smartsheet data and functionality through tools. Your agents can invoke these tools to read and update sheets, add rows, manage discussions, trigger webhooks, and more.
Smartsheet offers their own MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
How can I use the Smartsheet MCP server?
The use cases naturally depend on the agent you've built, but here are a few popular ones:
- Automated project row creation: When a new deal closes in Salesforce, an agent creates a corresponding row in a Smartsheet project tracker with the account name, deal value, and expected kickoff date, keeping project intake synchronized without manual entry
- Weekly status reporting: An agent pulls rows from a Smartsheet report filtered by status, aggregates the results, and posts a structured summary to a Slack channel every Friday, giving stakeholders a consistent progress view without opening Smartsheet
- CI/CD deployment tracking: After a pipeline completes, an agent updates the matching deployment row in Smartsheet with the build status, timestamp, and environment, keeping release tracking current in real time
- Discussion and comment routing: When a row in a Smartsheet intake sheet is flagged as blocked, an agent creates a row-level discussion, tags the responsible team member, and logs the blocker details, centralizing the conversation where the work lives
What are popular tools for Smartsheet's MCP server?
Here are some of the most commonly-used tools:
get_sheet: retrieves a full Smartsheet sheet including all rows, columns, and cell values. Useful for agents that need a complete snapshot of a project or data tracker before taking action
add_rows: inserts one or more new rows into a specified sheet. Call this when an agent needs to log a new record, intake request, or event directly into Smartsheet from an external trigger
update_rows: modifies the cell values of existing rows in a sheet. Good for workflows that keep Smartsheet in sync with status changes happening in other systems
search_sheet: searches for text within a specific sheet and returns matching rows. Helpful when an agent needs to locate an existing record before deciding whether to create or update it
create_row_discussion: attaches a discussion thread to a specific row in a sheet. Use this when an agent needs to surface a comment, flag a blocker, or document a decision at the row level
create_webhook: registers a webhook on a sheet so that an external system receives notifications when rows change. Call this during agent setup when you need Smartsheet to push updates rather than polling for them
What makes Merge Agent Handler's Smartsheet MCP server better than alternative Smartsheet MCP servers?
Here is why Merge Agent Handler's Smartsheet MCP server is worth using over building your own or relying on an alternative:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Smartsheet, this means you can prevent confidential project data, budget figures, or personnel information from being exposed even when the agent has broad sheet access
- Managed authentication and credentials: Merge stores and refreshes your Smartsheet OAuth tokens on your behalf. You never hand raw credentials to an agent or deal with token expiration breaking a workflow mid-run
- Real-time observability and audit trail: Every tool call made against Smartsheet is logged with the timestamp, tool name, input parameters, and response metadata. You can see exactly which rows an agent read or wrote without adding any instrumentation yourself
- Tool Packs and controlled access: Tool Packs let you bundle specific Smartsheet tools with tools from other connectors into a single scoped MCP endpoint. A reporting agent that only needs
get_sheetandlist_reportsnever gets access todelete_rowsordelete_sheet
How can I start using Merge Agent Handler's Smartsheet MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Smartsheet and complete the OAuth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Smartsheet data directly. The first time you use a Smartsheet tool, a Magic Link may appear to complete connector authentication.
Note: If you want to connect Merge Agent Handler's Smartsheet MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now



















