Smartsheet for Healthcare MCP server

Integrates Smartsheet for healthcare analytics, enabling efficient data management and analysis in clinical research and hospital operations.
Back to servers
Setup instructions
Provider
Boston Children's Hospital
Release date
Feb 01, 2025
Language
TypeScript
Stats
9 stars

The Smartsheet MCP Server provides seamless integration with Smartsheet, enabling automated operations through a standardized interface. It bridges the gap between AI-powered automation tools and Smartsheet's collaboration platform, allowing programmatic interactions while maintaining data integrity.

Installation

Prerequisites

  • Node.js and npm
  • Conda (for environment management)
  • Smartsheet API access token
  • Azure OpenAI API access (for batch analysis features)

Environment Setup

  1. Create a dedicated conda environment:
conda create -n cline_mcp_env python=3.12 nodejs -y
conda activate cline_mcp_env
  1. Install Node.js dependencies:
npm install
  1. Install Python dependencies:
cd smartsheet_ops
pip install -e .
cd ..
  1. Build the TypeScript server:
npm run build

Configuration

The server supports two transport modes: STDIO (default) and HTTP.

1. Get Your Smartsheet API Key

  1. Log in to Smartsheet
  2. Go to Account → Personal Settings → API Access
  3. Generate a new access token

2. Configure for STDIO Transport (Cline/Local)

Create a configuration file in the appropriate location for your OS:

macOS:

~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Windows:

%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

Linux:

~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Configuration file content:

{
  "mcpServers": {
    "smartsheet": {
      "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node",
      "args": [
        "/path/to/smartsheet-server/build/index.js",
        "--transport",
        "stdio"
      ],
      "env": {
        "PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3",
        "SMARTSHEET_API_KEY": "your-api-key",
        "AZURE_OPENAI_API_KEY": "your-azure-openai-key",
        "AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint",
        "AZURE_OPENAI_API_VERSION": "your-api-version",
        "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name"
      },
      "disabled": false,
      "autoApprove": [
        "get_column_map",
        "smartsheet_write",
        "smartsheet_update",
        "smartsheet_delete",
        "smartsheet_search",
        "smartsheet_add_column",
        "smartsheet_delete_column",
        "smartsheet_rename_column",
        "smartsheet_bulk_update",
        "start_batch_analysis",
        "get_job_status",
        "cancel_batch_analysis",
        "get_all_row_ids",
        "list_workspaces",
        "get_workspace",
        "create_workspace",
        "create_sheet_in_workspace",
        "list_workspace_sheets"
      ]
    }
  }
}

3. Configure for HTTP Transport

For web-based MCP clients:

# Start with default port (3000)
SMARTSHEET_API_KEY=your-api-key PYTHON_PATH=/path/to/python node build/index.js --transport http

# Start with custom port
SMARTSHEET_API_KEY=your-api-key PYTHON_PATH=/path/to/python node build/index.js --transport http --port 8080

Client configuration:

{
  "mcpServers": {
    "smartsheet-server": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "Authorization": "Bearer your-optional-auth-token"
      }
    }
  }
}

Starting the Server

STDIO Transport (Default)

macOS/Linux:

# Activate the environment
conda activate cline_mcp_env

# Start with STDIO transport
PYTHON_PATH=/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3 SMARTSHEET_API_KEY=your-api-key node build/index.js

Windows:

:: Activate the environment
conda activate cline_mcp_env

:: Start with STDIO transport
set PYTHON_PATH=C:\Users\[username]\anaconda3\envs\cline_mcp_env\python.exe
set SMARTSHEET_API_KEY=your-api-key
node build\index.js --transport stdio

HTTP Transport

macOS/Linux:

# Activate the environment
conda activate cline_mcp_env

# Start HTTP server on default port (3000)
PYTHON_PATH=/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3 SMARTSHEET_API_KEY=your-api-key node build/index.js --transport http

Windows:

:: Activate the environment
conda activate cline_mcp_env

:: Start HTTP server
set PYTHON_PATH=C:\Users\[username]\anaconda3\envs\cline_mcp_env\python.exe
set SMARTSHEET_API_KEY=your-api-key
node build\index.js --transport http --port 3000

Verifying Installation

STDIO Transport

The server should output "Smartsheet MCP server running on stdio" when started.

HTTP Transport

The server should output "Smartsheet MCP server running on HTTP port 3000" when started. Test the health endpoint: curl http://localhost:3000/health

Usage Examples

Getting Column Information

// Get column mapping and sample data
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "get_column_map",
  arguments: {
    sheet_id: "your-sheet-id",
  },
});

Writing Data

// Write new rows to Smartsheet
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "smartsheet_write",
  arguments: {
    sheet_id: "your-sheet-id",
    column_map: {
      "Column 1": "1234567890",
      "Column 2": "0987654321",
    },
    row_data: [
      {
        "Column 1": "Value 1",
        "Column 2": "Value 2",
      },
    ],
  },
});

Searching Data

// Basic text search
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "smartsheet_search",
  arguments: {
    sheet_id: "your-sheet-id",
    pattern: "search text",
    options: {
      case_sensitive: false,
      whole_word: false,
      columns: ["Column1", "Column2"], // Optional: limit search to specific columns
    },
  },
});

Updating Data

// Update existing rows
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "smartsheet_update",
  arguments: {
    sheet_id: "your-sheet-id",
    column_map: {
      Status: "850892021780356",
      Notes: "6861293012340612",
    },
    updates: [
      {
        row_id: "7670198317295492",
        data: {
          Status: "In Progress",
          Notes: "Updated via MCP server",
        },
      },
    ],
  },
});

Deleting Data

// Delete rows from Smartsheet
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "smartsheet_delete",
  arguments: {
    sheet_id: "your-sheet-id",
    row_ids: ["7670198317295492", "7670198317295493"],
  },
});

Healthcare Analytics Examples

// Pediatric Innovation Scoring
const result = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "start_batch_analysis",
  arguments: {
    sheet_id: "your-sheet-id",
    type: "custom",
    sourceColumns: ["Ideas", "Implementation_Details"],
    targetColumn: "Pediatric_Score",
    customGoal:
      "Score each innovation 1-100 based on pediatric healthcare impact. Consider: 1) Direct benefit to child patients, 2) Integration with pediatric workflows, 3) Implementation feasibility in children's hospital, 4) Safety considerations for pediatric use. Return only a number.",
  },
});

// Monitor Analysis Job Progress
const jobStatus = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "get_job_status",
  arguments: {
    sheet_id: "your-sheet-id",
    jobId: "job-uuid-from-start-analysis",
  },
});

Workspace Management

// List all accessible workspaces
const workspaces = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "list_workspaces",
  arguments: {},
});

// Create a new workspace
const newWorkspace = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "create_workspace",
  arguments: {
    name: "Project Management",
  },
});

// Create a sheet in a workspace
const newSheet = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "create_sheet_in_workspace",
  arguments: {
    workspace_id: "6621332407379844",
    name: "Task Tracker",
    columns: [
      { title: "Task Name", type: "TEXT_NUMBER" },
      { title: "Due Date", type: "DATE" },
      {
        title: "Status",
        type: "PICKLIST",
        options: ["Not Started", "In Progress", "Completed"],
      },
    ],
  },
});

Accessing Resources

// Access static resources
const projectTemplate = await access_mcp_resource({
  server_name: "smartsheet",
  uri: "smartsheet://templates/project-plan",
});

// Access dynamic resources
const sheetSummary = await access_mcp_resource({
  server_name: "smartsheet",
  uri: "smartsheet://8596778555232132/summary",
});

Using Prompts

// Project plan creation guidance
const projectPlanPrompt = await use_mcp_tool({
  server_name: "smartsheet",
  tool_name: "get_prompt",
  arguments: {
    name: "create_project_plan",
    arguments: {
      project_name: "Website Redesign",
      project_type: "software",
      duration_estimate: "3 months",
    },
  },
});

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "smartsheet" '{"command":"/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node","args":["/path/to/smartsheet-server/build/index.js"],"env":{"PYTHON_PATH":"/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3","SMARTSHEET_API_KEY":"your-api-key","AZURE_OPENAI_API_KEY":"your-azure-openai-key","AZURE_OPENAI_API_BASE":"your-azure-openai-endpoint","AZURE_OPENAI_API_VERSION":"your-api-version","AZURE_OPENAI_DEPLOYMENT":"your-deployment-name"},"disabled":false,"autoApprove":["get_column_map","smartsheet_write","smartsheet_update","smartsheet_delete","smartsheet_search","smartsheet_add_column","smartsheet_delete_column","smartsheet_rename_column","smartsheet_bulk_update","start_batch_analysis","get_job_status","cancel_batch_analysis","list_workspaces","get_workspace","create_workspace","create_sheet_in_workspace","list_workspace_sheets"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "smartsheet": {
            "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node",
            "args": [
                "/path/to/smartsheet-server/build/index.js"
            ],
            "env": {
                "PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3",
                "SMARTSHEET_API_KEY": "your-api-key",
                "AZURE_OPENAI_API_KEY": "your-azure-openai-key",
                "AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint",
                "AZURE_OPENAI_API_VERSION": "your-api-version",
                "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name"
            },
            "disabled": false,
            "autoApprove": [
                "get_column_map",
                "smartsheet_write",
                "smartsheet_update",
                "smartsheet_delete",
                "smartsheet_search",
                "smartsheet_add_column",
                "smartsheet_delete_column",
                "smartsheet_rename_column",
                "smartsheet_bulk_update",
                "start_batch_analysis",
                "get_job_status",
                "cancel_batch_analysis",
                "list_workspaces",
                "get_workspace",
                "create_workspace",
                "create_sheet_in_workspace",
                "list_workspace_sheets"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "smartsheet": {
            "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node",
            "args": [
                "/path/to/smartsheet-server/build/index.js"
            ],
            "env": {
                "PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3",
                "SMARTSHEET_API_KEY": "your-api-key",
                "AZURE_OPENAI_API_KEY": "your-azure-openai-key",
                "AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint",
                "AZURE_OPENAI_API_VERSION": "your-api-version",
                "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name"
            },
            "disabled": false,
            "autoApprove": [
                "get_column_map",
                "smartsheet_write",
                "smartsheet_update",
                "smartsheet_delete",
                "smartsheet_search",
                "smartsheet_add_column",
                "smartsheet_delete_column",
                "smartsheet_rename_column",
                "smartsheet_bulk_update",
                "start_batch_analysis",
                "get_job_status",
                "cancel_batch_analysis",
                "list_workspaces",
                "get_workspace",
                "create_workspace",
                "create_sheet_in_workspace",
                "list_workspace_sheets"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later