Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_PROJECT_IDYesYour Google Cloud project ID
GOOGLE_APPLICATION_CREDENTIALSYesAbsolute path to your Google service account key JSON file

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
sheets_check_access

Check access permissions for a spreadsheet. Returns information about what operations are allowed.

sheets_get_values

Get values from a specified range in a Google Sheets spreadsheet

sheets_batch_get_values

Get values from multiple ranges in a Google Sheets spreadsheet

sheets_get_metadata

Get metadata about a Google Sheets spreadsheet including sheet names, IDs, and properties

sheets_update_values

Update values in a specified range of a Google Sheets spreadsheet. Examples:

  • Fixed range "A1:C3" - must provide exactly 3 rows

  • Flexible range "A1" - will expand to fit all provided rows

  • To update rows 42-74 (33 rows), use "A42" not "A42:E53" IMPORTANT: Empty rows in your data array still count as rows!

sheets_batch_update_values

Update values in multiple ranges of a Google Sheets spreadsheet

sheets_append_values

Append values to the end of a table in a Google Sheets spreadsheet. IMPORTANT: By default, this will OVERWRITE existing empty cells. To INSERT new rows instead, set insertDataOption to "INSERT_ROWS".

sheets_clear_values

Clear values in a specified range of a Google Sheets spreadsheet

sheets_create_spreadsheet

Create a new Google Sheets spreadsheet

sheets_insert_sheet

Add a new sheet to an existing Google Sheets spreadsheet

sheets_delete_sheet

Delete a sheet from a Google Sheets spreadsheet

sheets_duplicate_sheet

Duplicate a sheet within a Google Sheets spreadsheet

sheets_copy_to

Copy a sheet to another Google Sheets spreadsheet

sheets_update_sheet_properties

Update properties of a sheet in a Google Sheets spreadsheet

sheets_format_cells

Format cells in a Google Sheet (colors, fonts, alignment, number formats)

sheets_update_borders

Update borders of cells in a Google Sheet

sheets_merge_cells

Merge cells in a Google Sheet

sheets_unmerge_cells

Unmerge cells in a Google Sheet

sheets_add_conditional_formatting

Add conditional formatting rules to a Google Sheet

sheets_batch_delete_sheets

Delete multiple sheets from a Google Sheets spreadsheet in a single operation

sheets_batch_format_cells

Format multiple cell ranges in a Google Sheet in a single operation

sheets_create_chart

Create a chart in a Google Sheets spreadsheet. Sheet names with spaces should be quoted in ranges (e.g., "My Sheet"!A1:B5). Position uses overlayPosition with anchorCell containing sheetId, rowIndex, and columnIndex.

sheets_update_chart

Update an existing chart in a Google Sheets spreadsheet

sheets_delete_chart

Delete a chart from a Google Sheets spreadsheet

sheets_insert_link

Insert clickable links in Google Sheets cells with custom display text

sheets_insert_date

Insert properly formatted dates in Google Sheets with locale support and automatic detection

sheets_insert_rows

Insert new rows at a specific position with optional data

sheets_delete_columns

Delete one or more columns from a Google Sheet using a full-column A1 range

sheets_delete_rows

Delete one or more rows from a Google Sheet using a full-row A1 range

sheets_get_merged_cells

Get all merged cell ranges for a specific sheet. Returns each merge as A1 notation and GridRange coordinates.

sheets_get_sheet_dimensions

Get column widths (pixelSize), row heights (pixelSize), hidden columns/rows, and frozen row/column counts for a sheet.

sheets_get_sheet_formatting

Read cell formatting (background color, text color, font family, font size, bold, italic, horizontal/vertical alignment, wrapStrategy, textRotation, numberFormat) for a range. Returns a 2D array matching the requested range rows/columns. Set useEffectiveFormat=true to get the resolved/inherited format instead of the user-entered one.

sheets_get_conditional_formatting

Read conditional formatting rules and banded ranges (alternating row/column colors) for a sheet. CF formulas are normalized to English locale (semicolons → commas) by default. Each rule with a formula includes a "_formulaLocaleRaw" field with the original unmodified formula. Set normalizeFormulas:false to get raw formulas as returned by the API.

sheets_get_full_sheet_snapshot

One-shot tool: reads all structural and formatting metadata for a sheet in a single API call. Returns: sheet properties (frozen rows/cols, dimensions, tab color), merged cells, column widths, row heights, banded ranges, and optionally cell-level formatting for a specified range (includeFormattingRange). compactMode is OFF by default — full per-cell detail is returned unless compactMode:true is provided. When compactMode is ON, adjacent cells with identical formatting are collapsed into range descriptors (90%+ smaller output). Conditional formatting rules are included by default (includeConditionalFormatting:true); set to false to exclude them. CF formulas are normalized to English locale (commas). Use fields to limit which format properties are returned. Use this before programmatically recreating a sheet.

sheets_get_sheet_structure

Lightweight tool returning ONLY structural/dimensional metadata for a sheet — no per-cell data. Returns: sheet dimensions, frozen rows/cols, tab color, sheet index, column widths array, row heights array, hidden columns/rows, and all merge ranges in A1 notation. Use this instead of sheets_get_full_sheet_snapshot when per-cell formatting is not needed. Much faster and cheaper — single API call with minimal field mask.

sheets_get_formatting_compact

Returns cell formatting for a range as compact A1Range→format pairs. Adjacent cells with identical formatting are collapsed into rectangular ranges (run-length encoded). Reduces output by 90%+ compared to per-cell formatting for typical sheets. Use instead of sheets_get_full_sheet_snapshot when you only need formatting data. Supported fields: backgroundColor, backgroundColorStyle, textFormat, horizontalAlignment, verticalAlignment, wrapStrategy, textRotation, numberFormat, padding, borders.

sheets_get_data_validation

Read data validation rules (checkboxes, dropdown lists, custom formulas, etc.) from a sheet or range. Returns a compact list of unique validation rules grouped by their cell ranges (run-length encoded). Useful for discovering checkboxes (BOOLEAN), dropdown lists (ONE_OF_LIST / ONE_OF_RANGE), number constraints, and custom formula validations.

sheets_get_basic_filter

Read the Basic Filter (AutoFilter) configuration for a sheet, including the filtered range, sort specs, and per-column filter criteria (hidden values, conditions, color filters). Returns hasBasicFilter: false if no filter is applied.

sheets_get_border_map

Returns a visual tabular map of borders for a range. Instead of per-cell JSON with 4 separate border objects, returns compact grids showing which cells have top/bottom/left/right borders and their styles. Solves the ambiguity between "right border of cell N" vs "left border of cell N+1". Output: a horizontal-lines grid and a vertical-lines grid, each as a 2D array of line styles. Set includeStyle:true to include color and width details (larger output).

sheets_compare_ranges

Compare cell formatting between two ranges of identical dimensions. Useful for verifying repeated patterns, e.g. "do all data rows 6–85 have identical formatting?" or "is row 10 formatted identically to the template row 5?". Returns a diff listing only the cells and properties that differ between the two ranges. Cells are compared position-by-position; rangeA and rangeB must have the same number of rows and columns. Use fields to restrict comparison to specific format properties.

Prompts

Interactive templates invoked by user choice

NameDescription
create-tableGuide for creating a new table with headers and data in a Google Spreadsheet
format-reportFormat existing data as a professional report with headers, borders, and styling
summarize-dataAnalyze spreadsheet data and provide insights or create a summary
create-chart-guideStep-by-step guide to create a chart from spreadsheet data

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/freema/mcp-gsheets'

If you have feedback or need assistance with the MCP directory API, please join our Discord server