Skip to main content
Glama

Google Sheets MCP

A local MCP server for creating, reading, and updating Google Sheets.

Tools

  • sheets_create_spreadsheet - create a new Google spreadsheet

  • sheets_get_values - read a range from a sheet

  • sheets_update_values - overwrite a range

  • sheets_append_values - append rows

  • sheets_clear_values - clear a range

  • sheets_add_sheet - add a new tab

  • sheets_paste_markdown_report - paste a markdown report as one line per row

Related MCP server: google-sheets-mcp

Setup

  1. Enable the Google Sheets API for the Google Cloud project.

  2. Enable the Google Drive API if you want to create new spreadsheets.

  3. Fill .env with your OAuth client values.

  4. Generate a Sheets-scoped refresh token:

npm run auth

Open the printed Google URL, approve access, then copy the printed SHEETS_REFRESH_TOKEN into .env.

  1. Install and build:

npm install
npm run build

Codex config

[mcp_servers.google-sheets]
command = "node"
args = ["/Users/sandeshsonabakhilari/Desktop/my-mcp/google-sheets-mcp/dist/index.js"]

The MCP reads credentials from /Users/sandeshsonabakhilari/Desktop/my-mcp/google-sheets-mcp/.env.

Example

Create a spreadsheet:

{
  "title": "Gmail Reports",
  "sheetTitle": "Read Mail Priority"
}

Paste a report:

{
  "spreadsheetId": "...",
  "range": "Read Mail Priority!A1",
  "markdown": "# Report...",
  "clearFirst": true
}

Available Tools

7 tools
sheets_add_sheetC

Add a new tab/sheet to a spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNew sheet/tab title
spreadsheetIdYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only states the action but omits behavioral details like what happens if the sheet already exists, required permissions, or response format. As a mutation tool, more context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no wasted words. However, it may be too brief given the need for more behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations. The description does not cover return values, error conditions, prerequisites, or what happens on conflict. It is insufficient for an agent to reliably use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%. The description for 'title' repeats what's in the schema. The 'spreadsheetId' parameter has no description in schema or description. The tool description adds no new semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it adds a new tab/sheet to a spreadsheet. The verb 'add' and resource 'tab/sheet' are specific. It distinguishes from siblings that deal with values, creation of whole spreadsheets, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Does not mention prerequisites, when not to use, or compare to creating a new spreadsheet (sheets_create_spreadsheet).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_append_valuesC

Append rows to a Google Sheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
valuesYes2D array of rows to append
spreadsheetIdYes
valueInputOptionNoDefault USER_ENTERED

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the basic action without disclosing behaviors such as mutation effects, row insertion details, or what happens if the range doesn't exist. The description is too brief to provide meaningful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one short sentence), but this conciseness sacrifices necessary detail. While there is no wasted text, the minimalism leaves gaps in context and parameter meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, no output schema, and the presence of several sibling tools, the description is insufficient. It does not explain return values, handling of out-of-range inputs, or how the append operation integrates with the sheet's existing data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (2 of 4 parameters have descriptions). The tool description adds no explanation for 'spreadsheetId' or 'range', which are left to the schema's placeholder type 'string'. The description fails to compensate for the missing param docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Append rows') and resource ('Google Sheet range'), effectively distinguishing it from sibling tools that have different verbs like 'add', 'clear', 'update', etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use append versus alternatives like sheets_update_values. The description does not specify prerequisite conditions or suggest sibling comparisons, leaving the agent to infer usage without help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_clear_valuesC

Clear values from a Google Sheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
spreadsheetIdYes

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description fails to disclose side effects, permissions required, reversibility, or rate limits. The phrase 'Clear values' is ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence), but does not earn its place due to lack of useful detail. Could be expanded without compromising clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal description with no annotations, no output schema, and no details on return values, errors, or edge cases. Fails to meet minimum completeness for a potentially destructive action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 2 parameters with 0% coverage; description adds no information about range format (e.g., A1 notation) or spreadsheetId format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it clears values from a Google Sheet range. Distinguishes from sibling tools like sheets_update_values and sheets_append_values. However, does not specify if formatting is also cleared or if it only affects values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No mention of prerequisites or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_create_spreadsheetB

Create a new Google spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesSpreadsheet title
sheetTitleNoOptional first sheet/tab title

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Create a new Google spreadsheet' without mentioning authentication, rate limits, what happens if the title already exists, or any other side effects. This is insufficient for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence: 'Create a new Google spreadsheet.' It is concise and front-loaded with the core action. However, it could include a bit more context without becoming verbose, such as what it returns or a note about the sheetTitle parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema and no annotations, the description should explain what the tool returns (e.g., the new spreadsheet's ID or URL). It also omits any constraints like title length limits or default behavior. This leaves the agent uncertain about the output and edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, with descriptions for both 'title' and 'sheetTitle'. The description adds no additional meaning beyond these schema descriptions. According to guidelines, baseline is 3 when coverage is high, and no extra value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new Google spreadsheet,' specifying the verb (create), resource (spreadsheet), and platform (Google). This distinguishes it from sibling tools like sheets_add_sheet or sheets_append_values, which operate on existing spreadsheets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use for creating a new spreadsheet but provides no explicit guidance on when to use versus alternatives, such as 'use this to start a new spreadsheet, not to add sheets to an existing one.' No when-not-to-use or prerequisite information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_get_valuesC

Read values from a Google Sheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 notation, e.g. Sheet1!A1:D20
spreadsheetIdYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only states the basic read operation without disclosing behavioral traits such as return format (e.g., 2D array), handling of empty cells, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence is concise but lacks front-loading of key details. It is not verbose, but the brevity leaves out important information, making it minimally acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with no output schema, the description fails to mention what the output looks like (e.g., 2D array of values). The lack of behavioral information makes it incomplete for an agent to correctly invoke and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (only range described). The overall description does not add any meaning for the spreadsheetId parameter or provide further context for range beyond the schema example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read values from a Google Sheet range' clearly states the verb (Read) and resource (Google Sheet range), distinguishing it from sibling tools like sheets_append_values (write) and sheets_update_values (update).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like sheets_append_values or sheets_update_values. The description provides no context, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_paste_markdown_reportB

Paste a markdown report into a sheet as one line per row.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesStarting range, e.g. Report!A1
markdownYesMarkdown report content
clearFirstNoClear the target range before writing
spreadsheetIdYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states it pastes markdown, but does not disclose how markdown is parsed (e.g., tables, headers), whether it overwrites or appends, or any side effects. The clearFirst parameter is not mentioned in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is too brief for the complexity of parsing markdown. It front-loads the action but omits important behavioral details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (parsing markdown, writing to sheets) and no output schema or annotations, the description is insufficient for an agent to use it confidently. It lacks error handling, return behavior, and details on how the range expands.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%. The description adds the context 'one line per row', implying each line of markdown becomes a row, which aids understanding beyond the schema. However, it does not explain how the range is used or the format of markdown expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (paste), the resource (markdown report into a sheet), and the behavior (one line per row). It distinguishes from sibling tools like sheets_append_values or sheets_update_values, which handle raw data differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like sheets_append_values (for appending values) or sheets_clear_values (for clearing). There are no prerequisites, exclusions, or usage context mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sheets_update_valuesC

Overwrite values in a Google Sheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
valuesYes2D array of cell values
spreadsheetIdYes
valueInputOptionNoDefault USER_ENTERED

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Minimal disclosure: only states 'overwrite'. No information about destructive behavior, permissions needed, or side effects on cells outside the range. Annotations are absent, so description should carry this burden but fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but lacks critical details. Conciseness is acceptable but not optimal; it is only one sentence which omits necessary clarification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Incomplete given the tool's complexity (4 params, write operation, no output schema). Lacks explanation of required permissions, behavior with overlapping ranges, or how values array must align with the range.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 50% coverage (descriptions for values and valueInputOption). Description adds no extra meaning for range or spreadsheetId. It does not explain range format or constraints, relying on implicit knowledge.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (overwrite values) and resource (Google Sheet range). However, it does not differentiate from sibling tools like sheets_append_values or sheets_clear_values, which might cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Lacks context about prerequisites, when it is appropriate, or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

Each tool targets a distinct action (add sheet, append, clear, create, get, paste markdown, update) with no overlap in purpose, ensuring an agent can easily distinguish them.

Naming Consistency5/5

All tools follow a consistent 'sheets_verb_noun' pattern (e.g., sheets_add_sheet, sheets_get_values), with only 'sheets_paste_markdown_report' slightly deviating in verb form but still predictable.

Tool Count5/5

Seven tools is well-scoped for a Google Sheets server, covering creation, reading, writing, appending, clearing, tab management, and a specialized markdown paste function without being overwhelming.

Completeness4/5

The tool set covers core operations (create, read, update, append, clear) and adds tab management and markdown support, though missing explicit delete operations (e.g., delete sheet or row) which are minor gaps.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/SandeshKhilari01/google-sheet-mcp'

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