mcp-google-sheets (socar-edwin/mcp-google-sheets-extended) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 40 tools. No publisher has claimed this listing.
A Python-based MCP server that acts as a bridge between MCP-compatible clients and the Google Sheets API, enabling AI-driven automation and data manipulation workflows.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
socar-edwin
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
get_sheet_dataGet data from a specific sheet in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet range: Optional cell range in A1 notation (e.g., 'A1:C10'). If not provided, gets all data. include_grid_data: If True, includes cell formatting and…
get_sheet_formulasGet formulas from a specific sheet in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet range: Optional cell range in A1 notation (e.g., 'A1:C10'). If not provided, gets all formulas from the sheet. Returns: A 2D array of the sheet …
update_cellsUpdate cells in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet range: Cell range in A1 notation (e.g., 'A1:C10') data: 2D array of values to update Returns: Result of the update operation
batch_update_cellsBatch update multiple ranges in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet ranges: Dictionary mapping range strings to 2D arrays of values e.g., {'A1:B2': [[1, 2], [3, 4]], 'D1:E2': [['a', 'b'], ['c', 'd']]} Returns: Result o…
add_rowsAdd rows to a sheet in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet count: Number of rows to add start_row: 0-based row index to start adding. If not provided, adds at the beginning. Returns: Result of the operation
add_columnsAdd columns to a sheet in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet count: Number of columns to add start_column: 0-based column index to start adding. If not provided, adds at the beginning. Returns: Result of the operation
list_sheetsList all sheets in a Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) Returns: List of sheet names
copy_sheetCopy a sheet from one spreadsheet to another. Args: src_spreadsheet: Source spreadsheet ID src_sheet: Source sheet name dst_spreadsheet: Destination spreadsheet ID dst_sheet: Destination sheet name Returns: Result of the operation
rename_sheetRename a sheet in a Google Spreadsheet. Args: spreadsheet: Spreadsheet ID sheet: Current sheet name new_name: New sheet name Returns: Result of the operation
get_multiple_sheet_dataGet data from multiple specific ranges in Google Spreadsheets. Args: queries: A list of dictionaries, each specifying a query. Each dictionary should have 'spreadsheet_id', 'sheet', and 'range' keys. Example: [{'spreadsheet_id': 'abc', 'sheet': 'Sheet1', 'range': 'A1:B5'}, {'spreadsheet_id': 'xyz', …
get_multiple_spreadsheet_summaryGet a summary of multiple Google Spreadsheets, including sheet names, headers, and the first few rows of data for each sheet. Args: spreadsheet_ids: A list of spreadsheet IDs to summarize. rows_to_fetch: The number of rows (including header) to fetch for the summary (default: 5). Returns: A list of …
create_spreadsheetCreate a new Google Spreadsheet. Args: title: The title of the new spreadsheet folder_id: Optional Google Drive folder ID where the spreadsheet should be created. If not provided, uses the configured default folder or creates in root. Returns: Information about the newly created spreadsheet includin…
create_sheetCreate a new sheet tab in an existing Google Spreadsheet. Args: spreadsheet_id: The ID of the spreadsheet title: The title for the new sheet Returns: Information about the newly created sheet
list_spreadsheetsList all spreadsheets in the specified Google Drive folder. If no folder is specified, uses the configured default folder or lists from 'My Drive'. Args: folder_id: Optional Google Drive folder ID to search in. If not provided, uses the configured default folder or searches 'My Drive'. Returns: List…
share_spreadsheetShare a Google Spreadsheet with multiple users via email, assigning specific roles. Args: spreadsheet_id: The ID of the spreadsheet to share. recipients: A list of dictionaries, each containing 'email_address' and 'role'. The role should be one of: 'reader', 'commenter', 'writer'. Example: [ {'email…
list_foldersList all folders in the specified Google Drive folder. If no parent folder is specified, lists folders from 'My Drive' root. Args: parent_folder_id: Optional Google Drive folder ID to search within. If not provided, searches the root of 'My Drive'. Returns: List of folders with their ID, name, and p…
search_spreadsheetsSearch for spreadsheets in Google Drive by name or content.
find_in_spreadsheetFind cells containing a specific value in a Google Spreadsheet.
batch_updateExecute a batch update on a Google Spreadsheet using the full batchUpdate endpoint. This provides access to all batchUpdate operations including adding sheets, updating properties, inserting/deleting dimensions, formatting, and more. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL)…
add_chartAdd a chart to a Google Spreadsheet. Creates a chart from the specified data range with customizable type, title, and positioning. The chart is added as a floating element on the sheet. Args: spreadsheet_id: The ID of the spreadsheet (found in the URL) sheet: The name of the sheet containing the dat…
upload_excelUpload an Excel (.xlsx/.xls) or CSV file and convert it to a Google Spreadsheet.
export_sheetExport (download) a Google Spreadsheet as Excel, CSV, or PDF.
format_cellsApply formatting to a range of cells.
merge_cellsMerge (or unmerge) cells in a range.
auto_resizeAuto-resize columns or rows to fit content.
sort_rangeSort a range of cells by a column.
add_filterAdd a basic filter (auto-filter) to a range.
add_pivot_tableCreate a pivot table from source data.
add_conditional_formatAdd a conditional formatting rule to a range.
duplicate_sheetDuplicate a sheet/tab within the same spreadsheet.
move_sheetMove a sheet/tab to a different position (reorder tabs).
protect_rangeProtect a range or entire sheet from editing.
add_commentAdd a comment to a spreadsheet. Optionally anchor it to a specific cell.
get_revision_historyGet the revision (edit) history of a spreadsheet.
delete_rows_columnsDelete rows or columns from a sheet.
clear_rangeClear data from a range of cells. Optionally clear formatting too.
get_commentsGet all comments on a spreadsheet.
resolve_commentResolve a comment, optionally adding a reply before resolving.
set_tab_colorChange the color of a sheet tab.
append_rowsAppend rows of data after the last row with content in a sheet. Useful for adding log entries or new records without knowing the exact row number.
CREDENTIALS_CONFIG➡️ See [Detailed Authentication & Environment Variables](#-authentication--environment-variables-detailed) for other options (OAuth, ).TOKEN_PATHPath to store the user's refresh token after first login (default: token.json). Must be writable.CREDENTIALS_PATHPath to the downloaded OAuth credentials JSON file (default: credentials.json).SERVICE_ACCOUNT_PATHexport ="/path/to/your/service-account-key.json"DRIVE_FOLDER_IDexport ="YOUR_DRIVE_FOLDER_ID"ENABLED_TOOLSTool Filtering: Reduce context window usage by enabling only the tools you need with --include-tools or environment variable.HOSTe =0.0.0.0 ^FASTMCP_HOSTFASTMCP_PORTPORTAll four hints declared on every tool
40/40 tools missing one or more hints — get_sheet_data (missing: destructiveHint, idempotentHint, openWorldHint); get_sheet_formulas (missing: destructiveHint, idempotentHint, openWorldHint); update_cells (missing: readOnlyHint, idempotentHint, openWorldHint), +37 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool annotations match behaviour
1 read-only tool performs write/delete/exec — export_sheet (line 1815: with open(output_path, "wb") as f:)
Either remove the readOnlyHint:true annotation, or remove the write/delete call from the tool handler.
Tool handlers catch errors
26/40 tool handlers wrap calls in try/catch (65%)
Wrap each tool handler body in try/catch and return a structured error response.
Tests exist
No test files found
Add tests that exercise each declared tool.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/socar-edwin/mcp-google-sheets-extended)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check