mcp-google-sheets-server

mcp-google-sheets-server

Enables professional Google Sheets management with 40+ tools for sheet operations, formatting, charts, and enterprise features.

Category
Visit Server

README

๐Ÿš€ MCP Google Sheets Server v2.1.0

Complete MCP Server for Google Sheets - 40+ tools for professional sheet management, advanced charts, and enterprise features!

npm version npm downloads License: MIT TypeScript


โœจ NEW in v2.1.0 - Complete Sheet Management & Enhanced Charts!

  • ๐Ÿ“‹ Complete Sheet Management - Create, rename, hide/show, move, duplicate, delete sheets
  • ๐Ÿ“Š Advanced Chart Creation - Create charts with data, from tables, update chart data
  • ๐Ÿ” Sheet Information - Get detailed sheet properties, list all sheets
  • ๐ŸŽจ Professional Formatting - Colors, fonts, borders, conditional formatting
  • ๐Ÿ”’ Data Protection - Validation rules, range protection, access control
  • โšก Performance Optimized - Batch operations, efficient API usage
  • ๐Ÿš€ Enterprise Ready - 40+ tools for professional Google Sheets management

๐Ÿš€ Quick Installation

Method 1: Install from npm (Recommended)

npm install -g mcp-google-sheets-server

Method 2: Local installation

npm install mcp-google-sheets-server

Method 3: Use npx (No installation needed)

npx mcp-google-sheets-server

๐Ÿ” Google Service Account Authentication

Detailed Guide

See GOOGLE_SERVICE_ACCOUNT_SETUP.md for step-by-step instructions on how to get Google Service Account Key.

Quick Configuration

{
  "mcpServers": {
    "mcp-google-sheets": {
      "command": "npx",
      "args": ["mcp-google-sheets-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "your-service-account-json"
      }
    }
  }
}

๐Ÿ“‹ Complete Tool Collection (40+ Tools!)

๐Ÿ”ง Basic Operations

Tool Description Parameters
sheets_get_data Get data with formatting options spreadsheetId, range, valueRenderOption, dateTimeRenderOption
sheets_update_data Update data with input options spreadsheetId, range, values, valueInputOption
sheets_create Create spreadsheet with theme title, initialData, theme

๐ŸŽจ Advanced Formatting

Tool Description Parameters
sheets_format_cells Apply professional formatting spreadsheetId, range, backgroundColor, textColor, fontSize, bold, italic, alignment, borders
sheets_conditional_formatting Set conditional rules spreadsheetId, range, ruleType, value, colors
sheets_merge_cells Merge cells with options spreadsheetId, range, mergeType

๐Ÿ“ˆ Enhanced Charts & Visualization

Tool Description Parameters
sheets_create_chart Create basic charts spreadsheetId, chartType, dataRange, title, position
sheets_create_chart_with_data Create charts with data spreadsheetId, chartType, dataRange, title, position, chartOptions
sheets_create_chart_from_table Create charts from tables spreadsheetId, chartType, tableRange, title, useFirstRowAsLabels
sheets_update_chart Update existing charts spreadsheetId, chartId, title, dataRange
sheets_update_chart_data Update chart data spreadsheetId, chartId, newDataRange, updateTitle
sheets_delete_chart Delete charts spreadsheetId, chartId
sheets_list_charts List all charts spreadsheetId

๐Ÿ“‹ Complete Sheet Management

Tool Description Parameters
sheets_create_sheet Create new sheets spreadsheetId, title, index
sheets_duplicate_sheet Duplicate existing sheets spreadsheetId, sheetId, newTitle
sheets_delete_sheet Delete sheets spreadsheetId, sheetId
sheets_rename_sheet Rename sheets spreadsheetId, sheetId, newTitle
sheets_hide_sheet Hide sheets from view spreadsheetId, sheetId
sheets_show_sheet Show hidden sheets spreadsheetId, sheetId
sheets_move_sheet Move sheets to new position spreadsheetId, sheetId, newIndex
sheets_get_sheet_info Get all sheet information spreadsheetId, includeGridData
sheets_get_sheet_properties Get specific sheet properties spreadsheetId, sheetId

๐Ÿ”’ Data Validation & Protection

Tool Description Parameters
sheets_set_data_validation Set validation rules spreadsheetId, range, ruleType, values, message
sheets_protect_range Protect ranges from editing spreadsheetId, range, description, warningOnly

๐Ÿ“Š Advanced Data Operations

Tool Description Parameters
sheets_insert_rows Insert rows at position spreadsheetId, sheetId, startIndex, endIndex
sheets_insert_columns Insert columns at position spreadsheetId, sheetId, startIndex, endIndex
sheets_delete_rows Delete rows from position spreadsheetId, sheetId, startIndex, endIndex
sheets_delete_columns Delete columns from position spreadsheetId, sheetId, startIndex, endIndex

๐Ÿ“ Formula & Calculation

Tool Description Parameters
sheets_set_formula Set formulas in cells spreadsheetId, range, formulas
sheets_calculate_formula Calculate formula results spreadsheetId, formula

โšก Batch Operations

Tool Description Parameters
sheets_batch_update Multiple operations in one request spreadsheetId, requests
sheets_batch_get Get data from multiple ranges spreadsheetId, ranges, valueRenderOption

๐Ÿ” Search & Sharing

Tool Description Parameters
sheets_search Search spreadsheets query, maxResults
sheets_share Share with permissions spreadsheetId, email, role, message
sheets_get_metadata Get comprehensive metadata spreadsheetId, includeGridData

๐Ÿงน Utility Operations

Tool Description Parameters
sheets_clear_range Clear content and formatting spreadsheetId, range
sheets_copy_to Copy sheets between spreadsheets spreadsheetId, sheetId, destinationSpreadsheetId

๐Ÿ› ๏ธ Advanced Setup Examples

Create Professional Spreadsheet with Multiple Sheets

{
  "mcpServers": {
    "mcp-google-sheets": {
      "command": "npx",
      "args": ["mcp-google-sheets-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "your-service-account-json"
      }
    }
  }
}

๐Ÿ“š Advanced Usage Examples

Complete Sheet Management Workflow

// 1. Create spreadsheet
const spreadsheet = await mcp.callTool("sheets_create", {
  title: "Business Dashboard 2024",
  theme: "LIGHT",
});

// 2. Create multiple sheets
await mcp.callTool("sheets_create_sheet", {
  spreadsheetId: spreadsheet.spreadsheetId,
  title: "Sales Data",
  index: 1,
});

await mcp.callTool("sheets_create_sheet", {
  spreadsheetId: spreadsheet.spreadsheetId,
  title: "Charts",
  index: 2,
});

// 3. Add data to Sales Data sheet
await mcp.callTool("sheets_update_data", {
  spreadsheetId: spreadsheet.spreadsheetId,
  range: "Sales Data!A1:D6",
  values: [
    ["Month", "Revenue", "Expenses", "Profit"],
    ["January", 50000, 30000, 20000],
    ["February", 55000, 32000, 23000],
    ["March", 60000, 35000, 25000],
    ["April", 65000, 38000, 27000],
    ["May", 70000, 40000, 30000],
  ],
});

// 4. Create professional chart
await mcp.callTool("sheets_create_chart_from_table", {
  spreadsheetId: spreadsheet.spreadsheetId,
  chartType: "COLUMN",
  tableRange: "Sales Data!A1:D6",
  title: "Monthly Financial Performance",
  useFirstRowAsLabels: true,
});

// 5. Rename and organize sheets
await mcp.callTool("sheets_rename_sheet", {
  spreadsheetId: spreadsheet.spreadsheetId,
  sheetId: 0, // First sheet
  newTitle: "Summary",
});

// 6. Move Charts sheet to the end
await mcp.callTool("sheets_move_sheet", {
  spreadsheetId: spreadsheet.spreadsheetId,
  sheetId: 2, // Charts sheet
  newIndex: 3, // Move to end
});

// 7. Hide a temporary sheet if needed
await mcp.callTool("sheets_hide_sheet", {
  spreadsheetId: spreadsheet.spreadsheetId,
  sheetId: 1, // Hide Sales Data sheet
});

Advanced Chart Management

// Create chart with custom options
await mcp.callTool("sheets_create_chart_with_data", {
  spreadsheetId: "your-spreadsheet-id",
  chartType: "LINE",
  dataRange: "A1:C10",
  title: "Trend Analysis",
  chartOptions: {
    colors: ["#4285F4", "#34A853"],
    legendPosition: "RIGHT_LEGEND",
  },
});

// Update chart data when source data changes
await mcp.callTool("sheets_update_chart_data", {
  spreadsheetId: "your-spreadsheet-id",
  chartId: 12345,
  newDataRange: "A1:C15", // Extended range
  updateTitle: "Updated Trend Analysis",
});

// List all charts in spreadsheet
const charts = await mcp.callTool("sheets_list_charts", {
  spreadsheetId: "your-spreadsheet-id",
});

// Delete unwanted charts
await mcp.callTool("sheets_delete_chart", {
  spreadsheetId: "your-spreadsheet-id",
  chartId: 12345,
});

Sheet Information and Properties

// Get information about all sheets
const sheetInfo = await mcp.callTool("sheets_get_sheet_info", {
  spreadsheetId: "your-spreadsheet-id",
  includeGridData: false,
});

// Get properties of specific sheet
const sheetProps = await mcp.callTool("sheets_get_sheet_properties", {
  spreadsheetId: "your-spreadsheet-id",
  sheetId: 0,
});

// Check if sheet is hidden
if (sheetProps.properties.hidden) {
  // Show the sheet
  await mcp.callTool("sheets_show_sheet", {
    spreadsheetId: "your-spreadsheet-id",
    sheetId: 0,
  });
}

๐Ÿ”ง Troubleshooting

Common errors:

Error Solution
"GOOGLE_SERVICE_ACCOUNT_KEY not found" โ€ข Check environment variable in mcp.json<br>โ€ข Ensure JSON is properly escaped
"Permission denied" โ€ข Check service account access permissions<br>โ€ข Ensure Google Sheets are shared with service account
"Invalid credentials" โ€ข Check service account JSON file<br>โ€ข Ensure Google Sheets API is enabled

๐Ÿš€ Advantages Over Other Solutions

  • โœ… 40+ Advanced Tools - Most comprehensive Google Sheets MCP server
  • โœ… Complete Sheet Management - Full control over sheets (create, rename, hide, move, delete)
  • โœ… Enhanced Chart Creation - Create charts with data, from tables, update dynamically
  • โœ… Professional Formatting - Colors, fonts, borders, conditional formatting
  • โœ… Data Validation - Set rules and protect sensitive data
  • โœ… Batch Operations - High-performance multiple operations
  • โœ… Sheet Information - Get detailed properties and status of all sheets
  • โœ… Performance Optimized - Efficient API usage and batch processing

๐Ÿ“„ License

MIT License - See LICENSE file for details.


๐Ÿค Contributing

All contributions are welcome! Please:

  1. ๐Ÿด Fork the project
  2. ๐ŸŒฟ Create a feature branch (git checkout -b feature/AmazingFeature)
  3. ๐Ÿ’พ Commit your changes (git commit -m 'Add some AmazingFeature')
  4. ๐Ÿš€ Push to the branch (git push origin feature/AmazingFeature)
  5. ๐Ÿ”„ Open a Pull Request

๐Ÿ“ž Support

If you encounter issues:

  1. ๐Ÿ” Check Issues first
  2. ๐Ÿ†• Create a new issue if none exists
  3. ๐Ÿ“ Describe the problem in detail and how to reproduce it

โญ Star the Project

If this project is helpful, please give it a star! โญ


<div align="center">

Made with โค๏ธ by Longtran2404

๐Ÿš€ Now with 40+ Tools for Complete Google Sheets Management! ๐Ÿš€

</div>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured