{"name":"io.github.takiguchi-yu/google-workspace-mcp-server","slug":"takiguchi-yu-google-workspace-mcp-server","title":null,"description":"An MCP server for Google Workspaces.","url":"https://mcp.market/server/takiguchi-yu-google-workspace-mcp-server","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":30,"stars":0,"forks":0,"downloads_week":855,"last_push_at":"2026-09-16T00:12:39.000Z","license":"ISC"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/takiguchi-yu/google-workspace-mcp-server","website":null,"version":"0.9.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@takiguchi-yu/google-workspace-mcp-server","version":"0.9.0","transport":{"type":"stdio"}}],"tools":[{"name":"accounts_list","description":"Lists the Google accounts registered on this server, with their labels and which one is the default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"drive_list_items","description":"List files and folders within a specific Drive folder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"drive_search_files","description":"Search for files in Google Drive using query syntax or free text. Supports filtering by name, type, and other criteria.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_add_conditional_format","description":"Add 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_add_sheet","description":"Adds a new sheet (tab) to an existing Google Spreadsheet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_append_values","description":"Appends rows of data after the last row in a Google Sheet range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_batch_update_sheet_values","description":"Batch updates values in multiple ranges of a Google Sheet.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_clear_basic_filter","description":"Remove the basic filter from a sheet. Rows hidden by the filter become visible again; cell contents are not changed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_clear_data_validation","description":"Remove data validation rules (dropdowns, checkboxes, input restrictions) from one or more cell ranges. The cell values themselves are left untouched.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_clear_sheet_values","description":"Clears values from a specific range in a Google Sheet. Formatting is preserved.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_create_spreadsheet","description":"Creates a new Google Spreadsheet with a specified title.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_delete_conditional_format","description":"Delete 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_delete_dimension","description":"Deletes rows or columns from a specific range in a sheet.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_delete_sheet","description":"Delete 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_duplicate_sheet","description":"Duplicate a sheet (tab) within the same spreadsheet, including its values, formulas, and formatting. Useful for creating a new sheet from a template sheet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_format_cells","description":"Apply 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_freeze_panes","description":"Freeze 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_get_spreadsheet_info","description":"Gets information about a specific spreadsheet including its sheets, properties, and structure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_import_csv","description":"Imports CSV (or TSV) data into a Google Sheet. Supports custom delimiters and handles quoted fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_insert_dimension","description":"Inserts new rows or columns at a specific position in a sheet.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_list_conditional_formats","description":"List 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_list_spreadsheets","description":"Lists spreadsheets from Google Drive that the user has access to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_merge_cells","description":"Merge 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_read_sheet_values","description":"Reads 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_resize_dimension","description":"Set 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).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_set_basic_filter","description":"Put 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_set_borders","description":"Draw 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_set_data_validation","description":"Set 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_sort_range","description":"Sort 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sheets_update_sheet_properties","description":"Rename 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sheets_update_sheet_values","description":"Updates values in a specific range of a Google Sheet.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_add_line","description":"Draw 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_add_shape","description":"Add a geometric shape (rectangle, circle, triangle, etc.) to a slide with custom position, size, and colors.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_add_slide","description":"Add 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_add_table","description":"Add 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_add_text_box","description":"Add 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_batch_update_presentation","description":"Execute multiple update requests on a presentation in a single API call. Supports complex multi-step operations with various request types.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_connect_line","description":"Attach 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_create_paragraph_bullets","description":"Turn 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_create_presentation","description":"Create a new Google Slides presentation with a specified title.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_delete_element","description":"Delete a specific element (shape, text box, image, etc.) from a slide.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_delete_paragraph_bullets","description":"Remove 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","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_delete_table_dimension","description":"Delete 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_disconnect_line","description":"Detach 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_duplicate_slide","description":"Duplicate an existing slide within the presentation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_get_page","description":"Get details about a specific page (slide) in a presentation including elements and layout.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_get_presentation","description":"Read content from a presentation including text and tables to understand specifications.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_group_elements","description":"Group 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","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_insert_image","description":"Insert 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_insert_table_dimension","description":"Add 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_list_presentations","description":"Lists presentations from Google Drive that the user has access to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_replace_all_text","description":"Replace 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_resize_table","description":"Set 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_ungroup_elements","description":"Take groups apart, leaving the elements inside on the slide. Pass the object IDs of the groups themselves, not of their children.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slides_update_element_transform","description":"Move, 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_elements_z_order","description":"Change 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_paragraph_style","description":"Change 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_shape_style","description":"Change 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_slide_properties","description":"Change 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_table_borders","description":"Draw 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 ","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_table_cells","description":"Set 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_text_shape","description":"Update text content in an existing shape/text element on a slide.","write_action":true,"price_micros":0,"input_schema":null},{"name":"slides_update_text_style","description":"Change 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.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-19T19:48:04.934Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:48:04.897Z","components":{"code":{"score":25,"max":25,"notes":["215 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@takiguchi-yu/google-workspace-mcp-server","version":"0.9.0","found":true,"license":"ISC","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-16T00:11:01.026Z","repositoryUrl":"git+https://github.com/takiguchi-yu/google-workspace-mcp-server.git","weeklyDownloads":855}],"repo":{"found":true,"owner":"takiguchi-yu","repo":"google-workspace-mcp-server","archived":false,"pushedAt":"2026-09-16T00:12:39Z","stars":0,"forks":0,"openIssues":8,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/8340629?v=4","ownerCreatedAt":"2014-08-03T02:00:44Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/8340629?v=4&s=128","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":855,"license":"ISC","lastPushAt":"2026-09-16T00:12:39.000Z","score":30}}}},"grade_history":[],"reviews":[]}