AutomationFlowsData & Sheets › Google Sheets Mcp - Ai-powered Spreadsheet Management

Google Sheets Mcp - Ai-powered Spreadsheet Management

ByDavid Olusola @dae221 on n8n.io

This n8n workflow lets you chat with your spreadsheets using AI + MCP! From reading and updating data to creating sheets, it’s your smart assistant for Google Sheets 📈🤖

Event trigger★★★★☆ complexityAI-powered15 nodesMcp TriggerGoogle Sheets Tool
Data & Sheets Trigger: Event Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #5424 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "gNccaz3KI4Gcu7kK",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Google Sheets MCP - AI-Powered Spreadsheet Management",
  "tags": [],
  "nodes": [
    {
      "id": "85846eda-cf7f-49a1-a4da-b4bf36e81ae6",
      "name": "MCP Server Trigger",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "notes": "\ud83d\ude80 MCP TRIGGER\n\nThis is the entry point for AI interactions with Google Sheets. The MCP (Model Context Protocol) trigger allows AI models to call any of the connected Google Sheets tools based on user requests.\n\nKey Features:\n\u2022 Enables natural language spreadsheet commands\n\u2022 Routes AI requests to appropriate Sheets operations\n\u2022 Provides context-aware data management\n\u2022 Supports complex multi-step data workflows\n\u2022 Handles dynamic sheet and document selection",
      "position": [
        1000,
        420
      ],
      "parameters": {
        "path": "f0a1fd29-3717-4827-a4d8-ad975f43c401"
      },
      "typeVersion": 1.1
    },
    {
      "id": "8c2b82d3-f571-4af5-87ac-b26b46a2985c",
      "name": "Google Sheets - Read Data",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\ud83d\udcca READ SPREADSHEET DATA\n\nRetrieve and analyze data from Google Sheets. Perfect for AI to read, process, and extract insights from spreadsheet content.\n\nUse Cases:\n\u2022 \"Read data from the Sales sheet\"\n\u2022 \"Get all entries from A1:E100\"\n\u2022 \"Show me the data in the Budget spreadsheet\"\n\u2022 \"Extract customer information from the CRM sheet\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 Sheet_Name: Specific sheet tab name\n\u2022 Range: Cell range to read (optional)",
      "position": [
        680,
        740
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet_Name', ``, 'string') }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "e606582e-2fea-4052-b8a4-875a0ae8f42e",
      "name": "Google Sheets - Clear Data",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\ud83d\uddd1\ufe0f CLEAR SPREADSHEET DATA\n\nRemove data from specific ranges or entire sheets. Useful for resetting data, clearing temporary calculations, or preparing sheets for new data.\n\nUse Cases:\n\u2022 \"Clear all data from the temp sheet\"\n\u2022 \"Remove entries from A1:E100\"\n\u2022 \"Clean up the old data in column C\"\n\u2022 \"Reset the calculation area\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 Sheet_Name: Sheet to clear data from\n\u2022 Range: Specific range to clear\n\n\u26a0\ufe0f Use with caution - data will be permanently removed!",
      "position": [
        800,
        960
      ],
      "parameters": {
        "operation": "clear",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet_Name', ``, 'string') }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "d73fb9da-e492-45bb-8c47-16a375ff48de",
      "name": "Google Sheets - Add Data",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\u2795 ADD NEW DATA\n\nAppend new rows of data to existing sheets. Perfect for adding records, logging events, or inserting new entries without affecting existing data.\n\nUse Cases:\n\u2022 \"Add a new customer to the CRM sheet\"\n\u2022 \"Log today's sales data\"\n\u2022 \"Insert a new project entry\"\n\u2022 \"Record the meeting notes\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 Sheet_Name: Sheet to add data to\n\u2022 Data_To_Add: Array/object of new data\n\nFeatures:\n\u2022 Automatically finds next empty row\n\u2022 Preserves existing data\n\u2022 Supports multiple columns",
      "position": [
        1240,
        940
      ],
      "parameters": {
        "columns": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Data_To_Add', ``, 'object') }}",
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet_Name', ``, 'string') }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "485f44aa-ae5e-4baf-9a3b-6ca43a58d59e",
      "name": "Google Sheets - Create Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\ud83d\udccb CREATE NEW SHEET\n\nCreate new worksheet tabs within existing spreadsheets. Great for organizing data into categories or creating project-specific sheets.\n\nUse Cases:\n\u2022 \"Create a new sheet called 'Q4 Sales'\"\n\u2022 \"Add a Project Timeline sheet\"\n\u2022 \"Make a new Budget 2024 tab\"\n\u2022 \"Create a sheet for customer feedback\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 New_Sheet_Name: Name for the new sheet\n\u2022 Header_Row: Optional column headers\n\nBest Practices:\n\u2022 Use descriptive sheet names\n\u2022 Include header rows for data structure\n\u2022 Consider sheet organization strategy",
      "position": [
        1560,
        960
      ],
      "parameters": {
        "options": {},
        "operation": "create",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "30dfee2a-fdf0-48e0-bb8d-08a574ced352",
      "name": "Google Sheets - Update Data",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\u270f\ufe0f UPDATE EXISTING DATA\n\nModify specific cells or ranges with new values. Perfect for updating records, correcting data, or maintaining current information.\n\nUse Cases:\n\u2022 \"Update the status in cell C5 to 'Complete'\"\n\u2022 \"Change the price in the product list\"\n\u2022 \"Modify the project deadline\"\n\u2022 \"Update customer contact information\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 Sheet_Name: Sheet containing data to update\n\u2022 Range: Specific cells to update (e.g., A1:B2)\n\u2022 New_Values: Array of new values\n\nTip: Use precise ranges to avoid overwriting unintended data",
      "position": [
        1700,
        740
      ],
      "parameters": {
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet_Name', ``, 'string') }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "acc210e5-0873-4da9-9e55-c59a0a413ce8",
      "name": "Sticky Note - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -180,
        140
      ],
      "parameters": {
        "color": 4,
        "width": 420,
        "height": 544,
        "content": "## \ud83c\udfaf WORKFLOW OVERVIEW\n\n**Google Sheets MCP - AI-Powered Spreadsheet Management**\n\nThis workflow provides a complete toolkit for intelligent spreadsheet management through AI interactions using the Model Context Protocol (MCP).\n\n**Core Capabilities:**\n\u2022 \ud83d\udcca Read and analyze spreadsheet data\n\u2022 \u2795 Add new records and entries\n\u2022 \u270f\ufe0f Update existing information\n\u2022 \ud83d\uddd1\ufe0f Clear data and reset ranges\n\u2022 \ud83d\udccb Create new worksheet tabs\n\u2022 \ud83e\udd16 Natural language commands\n\n**Getting Started:**\n1. Ensure Google Sheets OAuth2 is configured\n2. Test each tool individually\n3. Use natural language with your AI\n4. Monitor workflow execution logs\n5. Start with simple read operations"
      },
      "typeVersion": 1
    },
    {
      "id": "e906915d-868e-4491-8cb2-dcc7906a604a",
      "name": "Sticky Note - MCP Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        260
      ],
      "parameters": {
        "color": 7,
        "width": 600,
        "height": 324,
        "content": "## \ud83d\ude80 Google Sheets MCP - AI-Powered Spreadsheet Management\n**What it does:**\nThis is the entry point for AI interactions with Google Sheets. The MCP trigger enables natural language spreadsheet commands.\n\n**Key Features:**\n\u2022 Enables conversational data management\n\u2022 Routes AI requests to appropriate operations\n\u2022 Supports dynamic sheet selection\n\u2022 Handles complex multi-step workflows\n\u2022 Provides context-aware responses\n\n**Example Commands:**\n\"Read data from the Sales sheet\"\n\"Add a new customer record\"\n\"Update the project status\"\n\"Create a new budget sheet\""
      },
      "typeVersion": 1
    },
    {
      "id": "cf61c826-e464-4071-ad3d-011aef99e1c3",
      "name": "Sticky Note - Read Data",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        700
      ],
      "parameters": {
        "width": 300,
        "height": 264,
        "content": "## \ud83d\udcca READ DATA\n\n**Purpose:**\nRetrieve and analyze data from Google Sheets for AI processing and insights.\n\n**Use Cases:**\n\u2022 \"Show me all customer data\"\n\u2022 \"Read the sales figures from Q3\"\n\u2022 \"Get project status from column D\"\n\u2022 \"Extract budget information\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Spreadsheet identifier\n\u2022 **Sheet_Name:** Target worksheet tab\n\u2022 **Range:** Cell range (optional)\n\n**Returns:** Raw data for AI analysis"
      },
      "typeVersion": 1
    },
    {
      "id": "5f72082c-1db4-4645-830e-24b1c773e7a0",
      "name": "Sticky Note - Clear Data",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        1080
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 264,
        "content": "## \ud83d\uddd1\ufe0f CLEAR DATA\n\n**Purpose:**\nRemove data from specific ranges or entire sheets safely and efficiently.\n\n**Use Cases:**\n\u2022 \"Clear the temporary calculations\"\n\u2022 \"Remove old data from column C\"\n\u2022 \"Reset the input area\"\n\u2022 \"Clean up test entries\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Target spreadsheet\n\u2022 **Sheet_Name:** Sheet to clear\n\u2022 **Range:** Specific area to clear\n\n**\u26a0\ufe0f Warning:** Data removal is permanent"
      },
      "typeVersion": 1
    },
    {
      "id": "96caf21f-d904-425a-ad34-2360dfadb512",
      "name": "Sticky Note - Add Data",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        1060
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 264,
        "content": "## \u2795 ADD DATA\n\n**Purpose:**\nAppend new records to existing sheets without affecting current data.\n\n**Use Cases:**\n\u2022 \"Add new customer: John Doe, email@example.com\"\n\u2022 \"Log today's sales: $1,500\"\n\u2022 \"Insert project milestone\"\n\u2022 \"Record meeting attendance\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Target spreadsheet\n\u2022 **Sheet_Name:** Destination sheet\n\u2022 **Data_To_Add:** New row data\n\n**Feature:** Auto-finds next empty row"
      },
      "typeVersion": 1
    },
    {
      "id": "619266af-fddc-4513-9d5d-dad87bec1372",
      "name": "Sticky Note - Create Sheet",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1660,
        1020
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 264,
        "content": "## \ud83d\udccb CREATE SHEET\n\n**Purpose:**\nCreate new worksheet tabs for better data organization and project management.\n\n**Use Cases:**\n\u2022 \"Create 'Q4 Budget' sheet\"\n\u2022 \"Add new project tracking tab\"\n\u2022 \"Make customer feedback sheet\"\n\u2022 \"Create monthly report tab\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Target spreadsheet\n\u2022 **New_Sheet_Name:** Tab name\n\u2022 **Header_Row:** Column headers\n\n**Tip:** Use descriptive names"
      },
      "typeVersion": 1
    },
    {
      "id": "00e466ab-52cf-4848-b830-49a324312c93",
      "name": "Sticky Note - Update Data",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1820,
        700
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 264,
        "content": "## \u270f\ufe0f UPDATE DATA\n\n**Purpose:**\nModify specific cells with new values while preserving surrounding data.\n\n**Use Cases:**\n\u2022 \"Update status in C5 to 'Complete'\"\n\u2022 \"Change price in product list\"\n\u2022 \"Modify project deadline\"\n\u2022 \"Update contact information\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Target spreadsheet\n\u2022 **Sheet_Name:** Source sheet\n\u2022 **Range:** Cells to update (e.g., A1:B2)\n\u2022 **New_Values:** Replacement data\n\n**Tip:** Use precise cell references"
      },
      "typeVersion": 1
    },
    {
      "id": "7a2db25c-df9b-4889-bbd7-978dc7752148",
      "name": "Google Sheets - Delete Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "\ud83d\uddd1\ufe0f DELETE SHEET\n\nRemove entire worksheet tabs when they're no longer needed. Use with caution as this permanently removes all data in the sheet.\n\nUse Cases:\n\u2022 \"Delete the old temp sheet\"\n\u2022 \"Remove the expired project tab\"\n\u2022 \"Clean up test worksheets\"\n\u2022 \"Delete duplicate sheets\"\n\nAI Parameters:\n\u2022 Document_ID: Target spreadsheet ID\n\u2022 Sheet_Name: Sheet tab to delete\n\n\u26a0\ufe0f PERMANENT ACTION - Cannot be undone!\nAlways backup important data first.",
      "position": [
        1640,
        280
      ],
      "parameters": {
        "operation": "deleteSheet",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document_ID', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1e8ed3ca-c35a-4153-a094-4eed0d55609c",
      "name": "Sticky Note - Delete Sheet",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1700,
        340
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 284,
        "content": "## \ud83d\uddd1\ufe0f DELETE SHEET\n\n**Purpose:**\nPermanently remove entire worksheet tabs and all their contained data.\n\n**Use Cases:**\n\u2022 \"Delete the old testing sheet\"\n\u2022 \"Remove expired project tabs\"\n\u2022 \"Clean up temporary worksheets\"\n\u2022 \"Delete duplicate or unused sheets\"\n\n**AI Parameters:**\n\u2022 **Document_ID:** Target spreadsheet\n\u2022 **Sheet_Name:** Tab to remove\n\n**\u26a0\ufe0f CRITICAL WARNING:**\nThis permanently deletes ALL data in the sheet.\nOperation cannot be undone!\nAlways backup important data first."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c61bdb9c-ed39-42fe-8719-eac78ff012ef",
  "connections": {
    "Google Sheets - Add Data": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Read Data": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Clear Data": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Data": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Create Sheet": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Delete Sheet": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This n8n workflow lets you chat with your spreadsheets using AI + MCP! From reading and updating data to creating sheets, it’s your smart assistant for Google Sheets 📈🤖

Source: https://n8n.io/workflows/5424/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This template provides a set of MCP tools to manage personal budgets and expenses. This MCP tools can be integrated to any AI client that support MCP integration. It stores transaction records and bud

Mcp Trigger, Execute Workflow Trigger, Tool Workflow +4
Data & Sheets

This MCP example uses PayCaptain.com as an example and shows how to create an MCP server which can search for and update employee data. A MCP server trigger is used and connected to 3 custom workflow

Execute Workflow Trigger, Mcp Trigger, Tool Workflow +2
Data & Sheets

LinkedIn Leads Scraping & Enrichment (Main). Uses formTrigger, splitOut, googleSheetsTrigger, openAi. Event-driven trigger; 66 nodes.

Form Trigger, Google Sheets Trigger, OpenAI +2
Data & Sheets

This template is ideal for B2B founders, solopreneurs, growth marketers, SDRs, or anyone looking to scale their lead generation and enrichment with no-code tools to low-code tools.

Google Sheets, OpenRouter Chat, Chain Llm +4
Data & Sheets

This template is perfect for Gumroad creators, solopreneurs, digital product sellers, and freelancers who want to track and thank customers automatically — without spending time on manual work.

Google Sheets, Gumroad Trigger, Telegram +8