# Mcp Google Sheets MCP server

Agent View of the PolicyLayer registry record for Mcp Google Sheets: identity, probed posture, risk grade, and all 20 tools classified. HTML page: https://policylayer.com/tools/a1-x-tech-mcp-google-sheets

## Facts

- Server id: `@a1-x-tech/mcp-google-sheets`
- Install: `npx -y @a1-x-tech/mcp-google-sheets`
- Homepage: https://github.com/A1-x-Tech/mcp-google-sheets
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 20 (20 with introspected schema)
- Tool categories present: Destructive, Read, Write
- Context-window cost: 10940 tokens per request — https://policylayer.com/token-cost/a1-x-tech-mcp-google-sheets
- Tags: a1 x tech mcp google sheets, admin
- Record last modified: 2026-10-04T11:42:29.230Z

## Tools (20)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `clear_values` | Destructive | Critical | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/clear-values.md |
| `manage_dimensions` | Destructive | Critical | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-dimensions.md |
| `manage_sheets` | Destructive | Critical | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-sheets.md |
| `raw_request` | Execute | High | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/raw-request.md |
| `append_values` | Read | Low | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/append-values.md |
| `get_spreadsheet` | Read | Low | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/get-spreadsheet.md |
| `read_values` | Read | Low | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/read-values.md |
| `search_spreadsheets` | Read | Low | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/search-spreadsheets.md |
| `batch_write_values` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/batch-write-values.md |
| `create_spreadsheet` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/create-spreadsheet.md |
| `format_cells` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/format-cells.md |
| `manage_charts` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-charts.md |
| `manage_conditional_formats` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-conditional-formats.md |
| `manage_permissions` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-permissions.md |
| `manage_protected_ranges` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-protected-ranges.md |
| `manage_tables` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/manage-tables.md |
| `set_borders` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/set-borders.md |
| `set_data_validation` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/set-data-validation.md |
| `set_frozen` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/set-frozen.md |
| `write_values` | Write | Medium | https://policylayer.com/tools/a1-x-tech-mcp-google-sheets/write-values.md |

## Tool descriptions

- `clear_values` — Empties the VALUES of one or more A1 ranges in a single call — cell contents and formulas are gone (no undo through the API), while formatting, data validation, notes, conditional formats and merges all stay. To also remove formatting us…
- `manage_dimensions` — Row/column operations on a run of rows (dimension=ROWS) or columns (dimension=COLUMNS), addressed by sheet_id + 0-based start_index (inclusive) and end_index (exclusive) — e.g. columns A-C = start 0, end 3. action=resize sets an exact pi…
- `manage_sheets` — Manages the sheets (tabs) of a spreadsheet. action=add creates a tab (title required; optional index position and row_count/column_count — default 1000×26). action=duplicate copies a tab within the same spreadsheet (sheet_id; optional ti…
- `raw_request` — Escape hatch to call any Google Sheets API v4 path directly, for requests the typed tools don't cover — e.g. a batchUpdate with mergeCells, named ranges, banding, basic filters, slicers, sortRange, findReplace, gradient conditional-forma…
- `append_values` — Appends rows after the last row of the data table that contains the given range — pass the table's region (e.g. "Sheet1!A1:D1" or just "Sheet1") and the API finds the first free row itself; the response's updates.updatedRange shows where…
- `get_spreadsheet` — Returns the spreadsheet's structure: properties (title, locale, timeZone), sheets[] with properties (sheetId, title, index, gridProperties incl. rowCount/columnCount and frozenRowCount/frozenColumnCount), plus each sheet's protectedRange…
- `read_values` — Reads one or more A1 ranges in a single call (one request against the quota, however many ranges) and returns valueRanges[] — each with its resolved range and a 2-D values array (outer = rows unless major_dimension=COLUMNS). Trailing emp…
- `search_spreadsheets` — Finds Google Sheets spreadsheets the authorized user can open (own files and shared drives; trashed files are excluded): id, name, createdTime, modifiedTime, owners and webViewLink per file, newest-modified first by default. name_contain…
- `batch_write_values` — Overwrites several A1 ranges in ONE call — one write against the per-minute quota instead of one per range, so always prefer this over looping write_values. data is a list of {range, values} pairs; all are written with the same value_inp…
- `create_spreadsheet` — Creates a new Google Sheets spreadsheet and returns it: spreadsheetId, spreadsheetUrl, properties (title, locale, timeZone) and sheets[] with each sheet's numeric sheetId. sheet_titles creates one tab per title in order (omitted = a sing…
- `format_cells` — Applies cell formatting to a range: background_color, text color/bold/italic/strikethrough/underline/font_size/font_family, horizontal/vertical alignment, wrap_strategy, and number format (number_format_type NUMBER/PERCENT/CURRENCY/DATE/…
- `manage_charts` — Manages embedded charts. action=add builds a chart from chart_type (COLUMN/BAR/LINE/AREA/STEPPED_AREA/SCATTER/PIE), domain_range (x-axis labels / pie labels), series_ranges (one grid range per data series; PIE takes exactly one) and opti…
- `manage_conditional_formats` — Manages conditional-format rules that style cells when a condition holds (boolean rules; gradient color scales need raw_request). Rules are addressed by SHEET + INDEX in that sheet's rule list — get current rules and indexes from get_spr…
- `manage_permissions` — Shares the spreadsheet (Drive permissions on the file — the OAuth token needs a Drive scope; the spreadsheets scope alone gets 403 here while every Sheets tool still works). action=list shows who has access: id, type, role, emailAddress/…
- `manage_protected_ranges` — Manages protections that stop other editors from changing cells. action=add protects a grid range (or a named range via named_range_id; a range with only sheet_id protects the whole sheet): warning_only=true merely warns before edits, ot…
- `manage_tables` — Manages structured tables (the "Convert to table" feature: named ranges with per-column types, filters and formatting). action=add creates a table over a grid range whose FIRST ROW becomes the header: name (must be unique in the spreadsh…
- `set_borders` — Draws borders around and/or inside a grid range. top/bottom/left/right are the range's outer edges; inner_horizontal/inner_vertical are the grid lines between cells inside it. Each side takes {style, color?} — styles SOLID, SOLID_MEDIUM,…
- `set_data_validation` — Sets — or clears — a data-validation rule on a grid range. With condition_type set, every cell in the range gets the rule: ONE_OF_LIST with condition_values plus show_custom_ui=true is the classic in-cell dropdown; ONE_OF_RANGE takes a "…
- `set_frozen` — Freezes the first N rows and/or columns of a sheet so they stay visible while scrolling (typical: frozen_rows=1 pins the header). 0 unfreezes. At least one of frozen_rows / frozen_columns is required; the other stays as it is. You cannot…
- `write_values` — Overwrites one A1 range with a 2-D values matrix (rows first) and returns updatedRange/updatedRows/updatedColumns/updatedCells. The matrix is anchored at the range's top-left corner; cells beyond the matrix keep their old content, and a …

## Related servers

- UnClick (1662 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Apibase (1384 tools) — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase.md
- Delx Mcp A2a (1068 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- MCP Framework Personal (912 tools) — https://policylayer.com/tools/inggerman-mcps.md
- Hermoso (896 tools) — https://policylayer.com/tools/hermoso.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Altium-MCP-Suite (817 tools) — https://policylayer.com/tools/altium-mcp-suite.md
- Eda Agent (777 tools) — https://policylayer.com/tools/eda-agent.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=a1-x-tech-mcp-google-sheets · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/a1-x-tech-mcp-google-sheets
