Longtran2404/mcp-google-sheets
If you are the rightful owner of mcp-google-sheets and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Google Sheets Server is a comprehensive server solution for managing Google Sheets with a wide range of features and tools.
๐ MCP Google Sheets Server v2.1.0
Complete MCP Server for Google Sheets - 40+ tools for professional sheet management, advanced charts, and enterprise features!
โจ 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 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 โข Ensure JSON is properly escaped |
"Permission denied" | โข Check service account access permissions โข Ensure Google Sheets are shared with service account |
"Invalid credentials" | โข Check service account JSON file โข 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 file for details.
๐ค Contributing
All contributions are welcome! Please:
- ๐ด Fork the project
- ๐ฟ Create a feature branch (
git checkout -b feature/AmazingFeature
) - ๐พ Commit your changes (
git commit -m 'Add some AmazingFeature'
) - ๐ Push to the branch (
git push origin feature/AmazingFeature
) - ๐ Open a Pull Request
๐ Support
If you encounter issues:
- ๐ Check Issues first
- ๐ Create a new issue if none exists
- ๐ Describe the problem in detail and how to reproduce it
โญ Star the Project
If this project is helpful, please give it a star! โญ
Made with โค๏ธ by Longtran2404
๐ Now with 40+ Tools for Complete Google Sheets Management! ๐