get_column_mapLABSCO SUMMARY
Sheet edits that respect the sheet.
Smartsheet is not a spreadsheet you can safely write to blindly: column types and formula references make some writes valid and others destructive. Reading the structure first and validating against it is what makes an automated update survivable.
What it is
An MCP server for Smartsheet covering document management, data operations and column customisation. It validates against column types, preserves and updates formula references as rows change, and adds batch processing and custom scoring for larger analytical workloads.
What you get
- A sheet's structure and metadata read before anything is changed (get_sheet_info)
- A column map of the sheet, so updates address the right columns (get_column_map)
- Create, update and delete across rows and columns, validated against the column types
- Formula references preserved and updated automatically as the sheet changes
- Batch processing for large datasets
- Custom scoring systems applied to sheet data
- Error handling and validation at each layer, with referential integrity maintained across operations
Requirements
Both runtimes installed: the server pairs a Node MCP layer with the smartsheet_ops Python package, so it needs Node.js and Python — plus Smartsheet access for the sheets you intend to touch.
Setup effort
Follow the published steps — conda create -n cline_mcp_env python=3.12 nodejs -y
USE CASES
Understanding a sheet before you touch it
Structure and metadata come back first, so an update is written against the sheet as it is rather than as someone described it.
Addressing the right column when updating rows
The column map ties column names to their ids and types, which is what stops an update landing in the wrong field.
Applying a change across many rows
Batch processing handles large datasets in one pass, with column-type validation applied to every row rather than the first one.
Scoring a dataset against your own criteria
Custom scoring systems run over sheet data, so a scoring model lives with the sheet instead of in someone's spreadsheet copy.
34 tools
Listed in project docs. Your client may show a different list.
get_sheet_infosmartsheet_writesmartsheet_updatesmartsheet_deletesmartsheet_searchsmartsheet_add_columnsmartsheet_delete_columnsmartsheet_rename_columnsmartsheet_bulk_updateget_all_row_idsstart_batch_analysisget_job_statuscancel_batch_analysislist_workspacesget_workspacecreate_workspacecreate_sheet_in_workspacelist_workspace_sheetssmartsheet_upload_attachmentsmartsheet_get_attachmentssmartsheet_download_attachmentsmartsheet_delete_attachmentsmartsheet_create_discussionsmartsheet_add_commentsmartsheet_get_discussionssmartsheet_get_commentssmartsheet_delete_commentsmartsheet_get_cell_historysmartsheet_get_row_historysmartsheet_get_sheet_cross_referencessmartsheet_find_sheet_referencessmartsheet_validate_cross_referencessmartsheet_create_cross_referenceBEFORE YOU INSTALL
What to know first
Tools you get
34 tools named in the project's documentation.
Requires
SMARTSHEET_API_KEY in your environment
INSTALLATION
Connect your client
Server setup
conda create -n cline_mcp_env python=3.12 nodejs -y
conda activate cline_mcp_env
npm install
cd smartsheet_ops
pip install -e .
cd ..
npm run buildMCP Clients
Cline
{
"mcpServers": {
"smartsheet": {
"command": "/Users/<YOUR_USERNAME>/anaconda3/envs/cline_mcp_env/bin/node",
"args": [
"<YOUR_PATH_TO_SMARTSHEET_SERVER>/build/index.js",
"--transport",
"stdio"
],
"env": {
"PYTHON_PATH": "/Users/<YOUR_USERNAME>/anaconda3/envs/cline_mcp_env/bin/python3",
"SMARTSHEET_API_KEY": "<YOUR_SMARTSHEET_API_KEY>",
"AZURE_OPENAI_API_KEY": "<YOUR_AZURE_OPENAI_API_KEY>",
"AZURE_OPENAI_API_BASE": "<YOUR_AZURE_OPENAI_API_BASE>",
"AZURE_OPENAI_API_VERSION": "<YOUR_AZURE_OPENAI_API_VERSION>",
"AZURE_OPENAI_DEPLOYMENT": "<YOUR_AZURE_OPENAI_DEPLOYMENT>"
},
"disabled": false
}
}
}Any MCP client — HTTP
Start the server in HTTP mode
PYTHON_PATH=/Users/<YOUR_USERNAME>/anaconda3/envs/cline_mcp_env/bin/python3 SMARTSHEET_API_KEY=<YOUR_SMARTSHEET_API_KEY> node build/index.js --transport http{
"mcpServers": {
"smartsheet-server": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer <YOUR_OPTIONAL_AUTH_TOKEN>"
}
}
}
}