Google Workspace MCP server
An MCP server for Google Workspaces.
0 stars855 downloads/wk
Reviews
Write oneNobody has reviewed Google Workspace yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Google Workspace tools (63, 28 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
accounts_listLists the Google accounts registered on this server, with their labels and which one is the default.
drive_list_itemsList files and folders within a specific Drive folder.
drive_search_filesSearch for files in Google Drive using query syntax or free text. Supports filtering by name, type, and other criteria.
sheets_add_conditional_formatAdd a conditional formatting rule to a sheet. Either pass condition + format to color cells that match a condition, or pass gradient to apply a color scale. All ranges of one rule must be on the same sheet.
sheets_add_sheetAdds a new sheet (tab) to an existing Google Spreadsheet.
sheets_append_valuesAppends rows of data after the last row in a Google Sheet range.
sheets_batch_update_sheet_valueswrite actionBatch updates values in multiple ranges of a Google Sheet.
sheets_clear_basic_filterwrite actionRemove the basic filter from a sheet. Rows hidden by the filter become visible again; cell contents are not changed.
sheets_clear_data_validationwrite actionRemove data validation rules (dropdowns, checkboxes, input restrictions) from one or more cell ranges. The cell values themselves are left untouched.
sheets_clear_sheet_valuesClears values from a specific range in a Google Sheet. Formatting is preserved.
sheets_create_spreadsheetwrite actionCreates a new Google Spreadsheet with a specified title.
sheets_delete_conditional_formatwrite actionDelete a conditional formatting rule by its index. Indexes shift down when a rule is removed, so call sheets_list_conditional_formats first, and delete from the highest index when removing several.
sheets_delete_dimensionwrite actionDeletes rows or columns from a specific range in a sheet.
sheets_delete_sheetwrite actionDelete a sheet (tab) and everything on it from a spreadsheet. The sheet name is required — there is no default. A spreadsheet must keep at least one sheet, so the last remaining one cannot be deleted.
sheets_duplicate_sheetDuplicate a sheet (tab) within the same spreadsheet, including its values, formulas, and formatting. Useful for creating a new sheet from a template sheet.
sheets_format_cellsApply visual formatting (background color, font color, bold, size, alignment, number format) to one or more cell ranges. Only the properties you specify are changed; everything else is left as is.
sheets_freeze_panesFreeze the first rows and/or columns of a sheet so they stay visible while scrolling. Pass 0 to unfreeze. Freezing applies to a whole sheet, not a range.
sheets_get_spreadsheet_infoGets information about a specific spreadsheet including its sheets, properties, and structure.
sheets_import_csvImports CSV (or TSV) data into a Google Sheet. Supports custom delimiters and handles quoted fields.
sheets_insert_dimensionwrite actionInserts new rows or columns at a specific position in a sheet.
sheets_list_conditional_formatsList the conditional formatting rules of a spreadsheet with the index needed to delete them, the ranges they cover in A1 notation, and a summary of each rule.
sheets_list_spreadsheetsLists spreadsheets from Google Drive that the user has access to.
sheets_merge_cellsMerge or unmerge cell ranges. MERGE_ALL makes the range a single cell, MERGE_COLUMNS merges each column, MERGE_ROWS merges each row, and UNMERGE splits existing merges back apart.
sheets_read_sheet_valuesReads values from a specific range in a Google Sheet. Row numbers in the output are the actual row numbers in the sheet, not offsets within the range. By default cells are returned as they are displayed; pass valueRenderOption to read the underlying formulas or raw values instead.
sheets_resize_dimensionSet the width of columns or the height of rows, or auto-resize them to fit their contents. The range is given in A1 notation (e.g., "Sheet1!B:D" for columns, "Sheet1!2:5" for rows).
sheets_set_basic_filterwrite actionPut a filter on a range so the header row gets filter buttons, optionally hiding rows that do not match a criterion. Unlike sheets_sort_range this does not move any cell contents. A sheet holds only one basic filter; calling this again replaces it.
sheets_set_bordersDraw or clear borders around and inside one or more cell ranges. Use "all" to apply the same border to every edge, or set individual edges. Use style NONE to remove a border.
sheets_set_data_validationSet a data validation rule on one or more cell ranges. Use ONE_OF_LIST for a dropdown of fixed choices, ONE_OF_RANGE for a dropdown backed by a range, and BOOLEAN for a checkbox. To remove a rule, use sheets_clear_data_validation.
sheets_sort_rangeSort the rows of a range by one or more columns. Exclude the header row from the range (e.g., "Sheet1!A2:D100"), otherwise the header is sorted along with the data. This rewrites the cells; it does not add a filter.
sheets_update_sheet_propertieswrite actionRename a sheet (tab), change its tab color, move it to another position among the tabs, or hide/show it. Only the properties you specify are changed. To freeze rows or columns, use sheets_freeze_panes instead.
sheets_update_sheet_valueswrite actionUpdates values in a specific range of a Google Sheet.
slides_add_lineDraw a line or arrow on a slide between two points. Coordinates are in points from the top-left corner of the slide, which is 720 x 405 pt. Color, thickness, dash style, and the arrowheads at each end are all set here, so no follow-up call is needed.
slides_add_shapeAdd a geometric shape (rectangle, circle, triangle, etc.) to a slide with custom position, size, and colors.
slides_add_slideAdd a slide using one of the built-in layouts, filling in its title and body text in the same call. Not every layout has both: BLANK has neither, CAPTION_ONLY has no title, and TITLE_ONLY / SECTION_HEADER / MAIN_POINT have no body. Passing text for a slot the layout does not have is refused with the list of slots it does have.
slides_add_tableAdd a table to a slide, filled with its contents. The number of rows and columns comes from the "rows" array, so no separate counts are needed. Short rows are padded with empty cells. Position and size are in points; anything you leave out is centred on the slide, so omitting all four puts a 570 pt wide table in the middle. Cell borders and shading are not set here.
slides_add_text_boxAdd a new text box to a slide with custom position and content. Font, color, and paragraph alignment can be set here too. Position and size are in EMUs (1 inch = 914400 EMU, 1 pt = 12700 EMU); the newer slides_add_line and slides_add_table take points instead.
slides_batch_update_presentationwrite actionExecute multiple update requests on a presentation in a single API call. Supports complex multi-step operations with various request types.
slides_connect_lineAttach the ends of a line to shapes so the line follows them when they move. Give the line and the shape for either end, or both. Connection site indexes are optional — leave them out and Google picks a sensible point on each shape. Tables have no connection sites and cannot be attached. When both ends end up attached, the line is also rerouted along the shortest path.
slides_create_paragraph_bulletswrite actionTurn the paragraphs of a shape or text box into a bulleted or numbered list. Names describe the glyphs per nesting level, so BULLET_DISC_CIRCLE_SQUARE is a disc at level 1, a circle at level 2, a square at level 3. NUMBERED_* presets are numbered lists. Applies to all paragraphs unless startIndex and endIndex are given. Use slides_delete_paragraph_bullets to remove them.
slides_create_presentationwrite actionCreate a new Google Slides presentation with a specified title.
slides_delete_elementwrite actionDelete a specific element (shape, text box, image, etc.) from a slide.
slides_delete_paragraph_bulletswrite actionRemove bullets or numbering from the paragraphs of a shape or text box, keeping the text. Nested paragraphs keep an indent that reflects how deep they were, but top-level ones go back to the margin: the indent the bullet itself added is removed, and any indent you set earlier is overwritten. Call slides_update_paragraph_style afterwards if you need a particular indent. Applies to all paragraphs un
slides_delete_table_dimensionwrite actionDelete a row or column from a table, together with the text in it. Say which one, counted the way A1 notation does ("2" is the second row, "B" is the second column). A table must keep at least one row and one column.
slides_disconnect_lineDetach a line from both of the shapes it is attached to, so it stops following them. The line itself stays where it is. Use slides_update_element_transform afterwards to move it, or slides_delete_element to remove it.
slides_duplicate_slideDuplicate an existing slide within the presentation.
slides_get_pageGet details about a specific page (slide) in a presentation including elements and layout.
slides_get_presentationRead content from a presentation including text and tables to understand specifications.
slides_group_elementsGroup two or more elements on the same slide so they move and resize together. Shapes, text boxes, lines, images, and existing groups can be grouped; tables and placeholders inherited from the layout cannot, and neither can an element that already belongs to another group. The returned group object ID can be passed to slides_update_element_transform or slides_delete_element. Use slides_ungroup_ele
slides_insert_imagewrite actionInsert an image into a slide from a publicly accessible URL. The image is fetched once at insertion time, so the URL must be reachable without login. Formats: PNG, JPEG, GIF. Max 50 MB and 25 megapixels.
slides_insert_table_dimensionwrite actionAdd rows or columns to an existing table. Say which row or column to insert next to, counted the way A1 notation does ("2" is the second row, "B" is the second column), and whether the new ones go before or after it. New cells are empty; use slides_update_text_shape to fill them.
slides_list_presentationsLists presentations from Google Drive that the user has access to.
slides_replace_all_textReplace every occurrence of a string across a presentation, or only on the slides you name. Useful for filling in placeholders such as {{title}} in a template.
slides_resize_tableSet the height of rows or the width of columns of a table, in points. Name the rows or columns the way A1 notation does ("2" is the second row, "B" is the second column); omit "at" to apply to all of them. Row height is a minimum: a row grows taller when its text does not fit. To resize the table as a whole, use slides_update_element_transform.
slides_ungroup_elementsTake groups apart, leaving the elements inside on the slide. Pass the object IDs of the groups themselves, not of their children.
slides_update_element_transformwrite actionMove, resize, or rotate an existing element (shape, text box, image, line, table, or group). Lengths are in points: a slide is 720 x 405 pt. Only the properties you specify are changed. Position is the anchor corner of the element before rotation, not the corner of its rotated bounding box.
slides_update_elements_z_orderwrite actionChange which elements are drawn on top of which. All elements must be on the same slide, and their order relative to each other is preserved. BRING_FORWARD and SEND_BACKWARD move by one step; BRING_TO_FRONT and SEND_TO_BACK move all the way.
slides_update_paragraph_stylewrite actionChange paragraph-level formatting of a shape or text box: alignment, line spacing, indentation, and space before/after. Only the properties you specify are changed. Applies to all paragraphs unless startIndex and endIndex are given. Lengths are in points.
slides_update_shape_stylewrite actionChange the look of an existing shape or text box: fill, outline, where its text sits vertically, and whether it links somewhere. Only the properties you specify are changed. Use fillColor "NONE" or outlineColor "NONE" to make them transparent, and link "NONE" to remove a link.
slides_update_slide_propertieswrite actionChange a slide itself: its background (a solid color or a picture), and whether it is skipped when presenting. Background color and background image both occupy the same slot, so give only one of them. Applying a different layout is not possible through the API.
slides_update_table_borderswrite actionDraw borders on a table: color, thickness, and dash pattern. Each entry takes a range in A1 notation over the table ("A1:C3", "B:B", "2:3"; omit it to cover the whole table) and a position saying which edges inside that range are drawn. Several entries can be given, applied in order, so an outer border and an inner grid can be drawn in one call. Borders cannot be erased — to hide one, give it the
slides_update_table_cellswrite actionSet the background color and vertical alignment of table cells. Ranges are A1 notation over the table itself: "A1:C1" is the first three cells of the header row, "B:B" is the whole second column, "2:3" is rows 2 and 3. Several ranges can be styled in one call, applied in order, so a later range wins where they overlap.
slides_update_text_shapewrite actionUpdate text content in an existing shape/text element on a slide.
slides_update_text_stylewrite actionChange how the text of a shape or text box looks: font family, size, color, bold, italic, underline, strikethrough. Only the properties you specify are changed. Applies to the whole text unless startIndex and endIndex are given.
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan215 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 4 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Install directly
Runs npx -y @takiguchi-yu/google-workspace-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add google-workspace-mcp-server -- npx -y @takiguchi-yu/google-workspace-mcp-server
Google Workspace: common questions
- Is Google Workspace MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Google Workspace safety report
- How do I install Google Workspace?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Google Workspace need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Google Workspace maintained?
- The last commit was 5 days ago (2026-09-16). The latest release is v0.9.0.